Hallo zusammen,
ich hab da ein kleines Problem mit dem Atmel-Studio: ich wüsste gern
wieviel RAM mein Programm nutzt. Ein einfaches Progrämmchen wie dieses:
#define SIZE 32000
char vector[SIZE];
void main (void){
for (unsigned int i=0;i<SIZE;i++)
vector[i] = i;
}
zeigt mir:
"...\avr32-size.exe" "USER_APPLICATION1.elf"
text data bss dec hex filename
9124 0 36268 45392 b150 USER_APPLICATION1.elf
Der Wert von bss scheint den genutzten RAM anzuzeigen, wobei bei SIZE=0
bereits 4268 angezeigt wird... keine Ahnung warum. Ziehe ich diesen Wert
von bss ab, komme ich auf meine 32000 Byte, die ich für den Vektor
brauche.
Wenn ich nun den Vektor nur lokal in einer Funktion benötige, wie hier:
#define SIZE 32000
void my_func(void) {
char vector[SIZE];
for (unsigned int i=0;i<SIZE;i++)
vector[i] = i;
}
void main (void) {
my_func();
}
zeigt mir:
"...\avr32-size.exe" "USER_APPLICATION1.elf"
text data bss dec hex filename
9128 0 4268 13396 3454 USER_APPLICATION1.elf
Also RAM-Nutzung = 0!!!???
Kennt sich jemand aus, wie ich den genutzten RAM-Speicher, auch den
innerhalb von Funktionen anzeigen kann?
Schon mal Danke im Vorraus & Beste Grüße
Marvin
Marvin schrieb: > Kennt sich jemand aus, wie ich den genutzten RAM-Speicher, auch den > innerhalb von Funktionen anzeigen kann? es geht nicht! Was ist wenn my_func() wieder my_func() aufruft? Wieviel ram wird dann verbraucht? Auch den Stack müsste man dazurechnen.
irgend einer der Mods hatte hier mal ein tool gepostet, dass auch den Stack mit in die Berechnung einbezieht. Hat natürlich trotzdem Einschränkungen (Rekursionen)
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.