Forum: Mikrocontroller und Digitale Elektronik RAM-Verbrauch vom Mikrocontroller messen


von Daniel W. (wolfhunters)


Lesenswert?

Hallo

Ich würde gern wissen, ob es möglich ist relativ einfach den RAM-Bedarf 
meines Programms zu ermitteln. Genauer gesagt würde ich gern den max. 
Ram-Bedarf ermitteln. Ist das mit einfachen Mitteln möglich, oder muss 
man sich da komplizierte Routinen programmieren, die einem das 
ermöglichen.

Ich habe einen STM32F103..., Olimex JTAG ARM-USB-OCD und entwickle in 
Eclipse mit der SARM-Toolchain von ST bzw. Anglia.

von Katherine J. (katherine)


Lesenswert?

gab's hier schonmal
Beitrag "Compilerfehler bei mem-check"

Läuft super. Man kann zur Laufzeit seinen "min free RAM" und seinen 
"actual free RAM" ermitteln.
Prinzip ist simpel, es wird vor dem eigentlichen Starten des Controllers 
der komplette RAm mit einer Maske beschrieben, vorzugsweise 0xAA. Daraus 
läßt sich ermitteln wie weit der der Heap und der Stack von einander 
entfernt sind.

von (prx) A. K. (prx)


Lesenswert?

Den fixen Anteil am Speicherbrauch liefert dir der Linker auf Anfrage in 
einem File, das die Speicherverteilung anzeigt. Heisst oft Mapfile.

Den variablen Anteil durch Stack und Heap abzuschätzen ist schwieriger. 
Da kann es helfen, wenn beim Start das ganze RAM mit einem eindeutigen 
Muster beschrieben wird und man nach einer gewissen Betriebszeit einen 
RAM-Dump zieht (z.B. per Debugger) und dort reinschaut was alles 
überschrieben wurde. Narrensicher ist das aber nicht, da der schlimmste 
Fall möglicherweise noch nicht eingetreten war.

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.