Forum: Mikrocontroller und Digitale Elektronik Anzeige der Speichernutzung (RAM!) in ATMEL Studio


von Marvin (Gast)


Lesenswert?

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

von Peter II (Gast)


Lesenswert?

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.

von Vlad T. (vlad_tepesch)


Lesenswert?

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)

von Vlad T. (vlad_tepesch)


Lesenswert?

habs sogar noch mal wiedergefunden
Beitrag "StackViewer (RAM Rechner) für WinAVR"

von Marvin (Gast)


Lesenswert?

cooool - Danke Vlad!

Gruß
Marvin

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
Noch kein Account? Hier anmelden.