RAM-Verbrauch vom Mikrocontroller messen

OP #1023203
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.
#1023218
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.
#1023221
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren