Gast
#1702548
Guten Morgen Forum, ich verwende das SEGGER embOS auf einem AT91SAM9260 (ARM9 von Atmel). In der Applikation verwende ich ein ASSERT Makro welches mir u.a. eine Fehlermeldung auf die stdout schreibt (mit printf). Nun habe ich das Problem dass innerhalb einer ISR kein printf möglich ist. Schlägt nun eine Assertion zu, "raucht die Applikation ab" (bzw. landet im embOS Error Handler). Das möchte ich verhindern indem ich ASSERT (den Teil mit der stdout) wie folgt implementiere:
1 | |
2 | |
3 | |
4 | |
Nun zu meiner eigentlichen Frage: Wie finde ich heraus ob ich mich gerade im Interruptkontext befinde? Wie implementiere ich isInIsr()? Im Compilermanual habe ich dazu leider noch nichts gefunden. Ich verwende überigens die IAR Toolchain. Ich freue mich auf eure Antworten.