Forum: Mikrocontroller und Digitale Elektronik HowTo Stack Measurement?


von Guerrero G. (elguerrero)


Lesenswert?

Hallo zusammen,

wäre sehr nett wenn man mir erklären würde, welche Methoden es für die 
Stackmessung von Mikrocontrollern gibt und wie sie sich in ihrer 
Funktionalität unterscheiden?

von Horst (Gast)


Lesenswert?

http://rtos.com/images/uploads/Stack_Analysis_White_paper.1_.pdf

Vielleicht steht da was interessantes mit drin

von Falk B. (falk)


Lesenswert?

Mal ne dumme Frage. Warum baut man nicht eine Hardwarefunktion ein, um 
das Maximum des Stackpointers zu messen? Diese wäre sehr praktisch und 
kostet kaum Silizium.

von Horst (Gast)


Lesenswert?

Weil Hardware- und Software-Abteilungen sich für gewöhnlich hassen. 
Rennt der Controller dann mal wieder in einen Stackoverflow können die 
Hardwerkler sich über die Tippsen lustig machen, zu blöd für embedded 
software zu sein.

von Nop (Gast)


Lesenswert?

Falk B. schrieb:
> Mal ne dumme Frage. Warum baut man nicht eine Hardwarefunktion
> ein, um
> das Maximum des Stackpointers zu messen? Diese wäre sehr praktisch und
> kostet kaum Silizium.

Weil das erstens bei sowas wie einem RTOS nichts brächte - es geht da um 
den Stack JEDES Tasks. Weil es zweitens auch bei einer reinen 
bare-metal-Anwendung unzuverlässig wäre, solange man keine 100% coverage 
einbaut. Coverage-Analsyse bei bare metal ist aber ein nicht minder 
schwieriges Problem.

Und weil es drittens auch alles gar nicht nötig ist, solange man keine 
Rekursion verwendet. Der Compiler sieht ja, wie die call chain jeder 
Funktion aussieht, kann also den worst-case-Stackbedarf einer jeden 
Funktion inkl. child-functions einfach angeben. KEIL macht das, kann man 
zumindest konfigurieren.

Dann addiert man den Stackbedarf jeder Taskfunktion auf (bzw. nur der 
main() bei bare metal) und zählt dann noch für jeden Interrupthandler 
den Stackbedarf dazu. Problem gelöst.

von Nop (Gast)


Lesenswert?

Vielleicht ist 
https://mcuoneclipse.com/2015/08/21/gnu-static-stack-usage-analysis/ 
auch noch von Interesse zum Thema "static stack analysis". Aus 
praktischer Sicht.

von Guerrero G. (elguerrero)


Lesenswert?

Hallo zusammen,

vielen Dank für die Infos.
Die Links die ihr mir geschickt habt sind sehr gute Quellen...

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.