2016-07-14 25 views
0

Ich bin ein Anfänger in der Embedded und Echtzeitsysteme Welt zu finden, so ist meine Aufgabe DMA zu leben Aufgaben Patch Buggy verwenden,Wie die Speicheradresse einer Aufgabe oder eine Variable in FreeRTOS

Mein Problem ist

Wie die Speicheradresse meiner Buggy Aufgabe, es zu analysieren, um zu finden und es schließlich patchen?

Ich benutze FreeRTOS auf einem EFM32 Riese Gecko Mikrocontroller und GCC-Compiler.

+0

Wenn Sie [xTaskCreate] (http://www.freertos.org/a00125.html) verwenden, übergeben Sie ein Aufgabenhandle an die Funktion. Versuchen Sie herauszufinden, ob Sie die Adresse der Aufgabe in diesem Punkt erhalten. – ckruczek

+0

danke für deine Hilfe, aber das ist das Problem, gibt es eine Funktion, die ich verwenden kann, so kann ich die Adresse finden –

+0

Nein, es gibt nicht die eine Funktion. Aber wie gesagt, versuchen Sie herauszufinden, welche Art von Wert xTaskCreate in den Task-Handle schreibt. – ckruczek

Antwort

0

Ich habe eine Lösung für mein Problem gefunden, indem ich den Task Control Block (TCB) meiner Aufgabe verwende, der tskTCB enthält viele Informationen über die damit verbundene Aufgabe, unter anderem die niedrigste Task Stack Adresse (pxStack) Die höchste Task-Stack-Adresse (pxEndOfStack) und die aktuelle Spitze des Task-Stacks (pxTopOfStack).