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
Also bei Bascom kann man eine Option aktivieren, dass ein rreport file erstellt wird. das zeigt das dann an.
Daie statischen Variablen sieht man im Map file, den Stack kann man abschaetzen. Worum geht's denn ? Ah, dynamische Variablen und Garbage collection ?
Hallo Philpp, vllt hilft Dir das hier weiter: http://www.roboternetz.de/wissen/index.php/Speicherverbrauch_bestimmen_mit_avr-gcc MfG Mark
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
> 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.
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?
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.
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.