Hallo zusammen, kann ich auf einem MSP430 (F6638) per Code erkennen, ob das Programm gerade gedebuggt wird? Wenn ja, wie? Danke für Hinweise. Marco
Marco S. schrieb: > Hallo zusammen, > > kann ich auf einem MSP430 (F6638) per Code erkennen, ob das Programm > gerade gedebuggt wird? Wenn ja, wie? Was genau willst Du erreichen? Im Einzelschrittmodus ist der µC angehalten, d.h es könnte gar kein Code laufen, der das Debuggen erkennt. Max
Hallo, ich möchte z. B. eine LED einschalten, wenn die SW im Debugger läuft (mit TI MSP-FET430UIF) und eine andere LED einschalten, wenn das Gerät ohne aktivierten Debugger läuft. Marco
Das wird nicht gehen. Es gibt bei gleicher Kompiler-Einstellung für Debug/Release keinen Unterschied im Code. Auch kommt man an die Debug-Register meines Wissens nicht aus dem normalen Programm heran. Du könntest höchstens detektieren, ob der JTAG Debugger angeschlossen ist, die geben ja auch eine Target-Spannung aus...
Ohne externe Hardware wird das nichts werden. Ansatz 1 von Christian: die Versorgungsspannung des Debuggers anzapfen. Klingt sinnvoll. Ansatz 2: externen Watchdog einsetzen. Wenn das Programm angehalten wird, erkennt der WD das und schaltet die LED um. Geht es Dir um das Vorhandensein des Debuggers oder um das Anhalten des Programms? Max
Max G. schrieb: > Geht es Dir um das Vorhandensein des Debuggers oder um das Anhalten des > Programms? Mir geht es einfach darum, während des Programmlaufs im Programm abhängig davon, ob das Programm im Debugger läuft, unterschiedliche Verhaltenweisen zu ermöglichen. Z.B. funktioniert beim Debuggen der LPM3.5 nicht. Ich möchte daher, wenn der Debugger läuft, evtl. nur in LPM3 oder sogar nur LPM0 schalten. Das möchte ich nach Möglichkeit nicht zur Compiler-Zeit (DEBUG Symbol) entscheiden müssen, sondern erst zur Laufzeit. Marco
Marco S. schrieb: > Mir geht es einfach darum, während des Programmlaufs im Programm > abhängig davon, ob das Programm im Debugger läuft, unterschiedliche > Verhaltenweisen zu ermöglichen. Ach so. Dann würde ich Christians Ansatz verwenden und die externe Spannungsversorgung vom Debugger über einen freien Pin einlesen. Dann weißt du, ob der Debugger angesteckt ist oder nicht. Falls du ohne externe Spannungsversorgung debuggst, müsstest du auch RST verwenden können. Alternativ könntest du ggf. auch prüfen, ob sich der LPM3.5 aktivieren lässt und wenn nicht, dann in LPM0 bleiben. Mit den LPM kenne ich mich aber nicht aus. Max
Max G. schrieb: > Ach so. Dann würde ich Christians Ansatz verwenden und die externe > Spannungsversorgung vom Debugger über einen freien Pin einlesen. Dann > weißt du, ob der Debugger angesteckt ist oder nicht. Falls du ohne > externe Spannungsversorgung debuggst, müsstest du auch RST verwenden > können. Hm, aber der Debugger ist eigentlich immer angeschlossen - nur eben nicht der Debug-Modus in der IAR Workbench nicht aktiv... Das wird man dann wohl nicht unterscheiden können?! Marco
Dann musst Du irgendwie die Aktivität auf der Debug-Leitung erkennen (bin grade zu faul zum Nachschauen, TST?). Max
Schon mal an Compilerswitche gedacht. Dort könntest du bei DEBUG und RELEAS unterschiedliche Switche setzen.
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.