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.