mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RAM-Auslastung AVR


Autor: Philipp Putzer (putzer_philipp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen!!

Weiß jemand, wie ich die RAM-Auslastung meines Programms anzeigen kann?
Programmieren tue ich in C, Simulieren kann ich mein Programm ja 
anschließend mit dem AVR-Studio, nur leider komme ich nicht dahinter, wo 
und wie es mir die RAM-Auslastung anzeigt (soll).

Geht das überhaupt?

Vielen Dank und schöne Grüße
Philipp

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also bei Bascom kann man eine Option aktivieren, dass ein rreport file 
erstellt wird. das zeigt das dann an.

Autor: Nullpainter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daie statischen Variablen sieht man im Map file, den Stack kann man 
abschaetzen. Worum geht's denn ? Ah, dynamische Variablen und Garbage 
collection ?

Autor: Mark .. (mork)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Philpp,

vllt hilft Dir das hier weiter: 
http://www.roboternetz.de/wissen/index.php/Speiche...

MfG Mark

Autor: Philipp Putzer (putzer_philipp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha, das heißt also bei dem Auszug unten, dass ich 40Byte in globalen, 
nicht zu null initialisierten Adressen habe, und 754Byte für die 
restlichen brauche?

Also brauche ich hier insgesamt 794Byte an Ram. Oder kommt hier noch 
etwas hinzu?

Size after:
sd_12.elf  :
section            size      addr
.text             14970         0
.data                40   8388704
.bss                754   8388744
.noinit               0   8389498
.eeprom               0   8454144
.stab               876         0
.stabstr            132         0
.debug_aranges      100         0
.debug_pubnames    1332         0
.debug_info       12332         0
.debug_abbrev      1885         0
.debug_line        7835         0
.debug_str         3903         0
.debug_ranges       144     14970
Total             44303


   text     data      bss      dec      hex  filename
      0    15010        0    15010     3aa2  sd_12.hex

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Also brauche ich hier insgesamt 794Byte an Ram. Oder kommt hier noch
> etwas hinzu?

Der Stack und (falls du malloc & co benutzt) dynamisch allokierter 
Speicher.

Autor: Philipp Putzer (putzer_philipp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Malloc und Co verwende ich nicht. Kann der Stack auch irgendwie 
angezeigt werde. Eher nicht, hängt ja eigentlich von der Ausführung des 
Progs ab. Kann man den vielleicht grob irgendwie abschätzen?

Autor: JojoS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die max. Stacknutzung hängt ja vom Programmablauf ab und den kennt der 
Compiler nicht. Man kann aber den Speicher komplett mit einem 'Magic' 
Wert, z.B. 0xaffe vollschreiben und dann in einer Testfunktion zählen 
bis wohin die Affen überschrieben wurden. Das findet natürlich auch 
nicht in jedem Fall die max. Auslastung aber wenn man verschiedene 
Betriebszustände simuliert liefert das schon einen guten Anhaltspunkt.

Autor: Philipp Putzer (putzer_philipp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, das mit dem Testwert wäre ne Möglichkeit.

Fürs erste wirds schon reichen, wenn ich weiß wieviel RAM meine 
Variablen brauchen, für den Stack lasse ich einfach eine großzügige 
Reserve.


Vielen Dank für die Hilfe
Philipp

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.