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?
http://rtos.com/images/uploads/Stack_Analysis_White_paper.1_.pdf Vielleicht steht da was interessantes mit drin
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 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.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.