Forum: Mikrocontroller und Digitale Elektronik Programm hängt bei Release - funktioniert bei Debug


von Martin (Gast)


Lesenswert?

Hallo,

ich programmiere mit CrossWorks. Ich muss zum Debuggen eine 
Debugvariante compilieren und für die normale Version, ohne Debugger, 
eine Releaseversion.
Mein Problem ist, das das Programm im Debugmodus läuft und sich in der 
Releaseversion nach wenigen Sekunden aufhängt. Leider kann ich dann 
nicht sehen wo.
Kennt jemand das Problem und wie gehe ich am Besten vor die Ursache zu 
finden?
Gibt es Compiler-Einstellungen die ich kontrollieren sollte? Mein Ziel 
wäre es, das auch in der Debugversion das Programm hängen beleibt. Dann 
kann ich die Ursache besser finden.

Martin

von Daniel V. (danvet)


Lesenswert?

Das habe ich schon öfters gehört ("... mal sehen, ob die Release-Version 
auch läuft..."), konnte es aber nie nachvollziehen (ja, bei mir lief das 
Release bisher immer).
Wahrscheinlich hängt das mit der Optimierung zusammen.

- Wenn du für das Release die gleiche Optimierung verwendest, dann 
sollte das Programm laufen. Das ist zwar keine Lösung aber immerhin ein 
Workaround. Oder einfach die Debugversion auch als Release flashen.

- Auch schon erlebt: Der Debugger bzw. die Debuggverbindung deaktiviert 
den Watchdog. Sobald man den Stecker zieht, zieht der Watchdog den Reset 
:-)

- Alle Warnings aktivieren, stärkste Stufe! Alle Warnings beheben. Läuft 
das Release?

- Zum Debuggen im Release könntest du UART-Ausgaben verwenden (etwas 
aufwändiger, aber komfortabel), oder freie Ausgangspins des µC (weniger 
Möglichkeiten einen Fehler mitzuteilen), oder schon vorandene LEDs.

von Peter II (Gast)


Lesenswert?

Martin schrieb:
> Leider kann ich dann
> nicht sehen wo.

warum nicht? Auch einen Release code kann man Debugger. Aber meist nur 
auf ASM ebene. Aber zum Rausbkommen wo es hängt reicht das meist.

von Martin (Gast)


Lesenswert?

Hallo,

Danke für Eure Tipps.
Mit der Optimierung hängt es nicht zusammen. Das habe ich schon 
getestet.
Ich taste mich gerade mit PIN-Ausgaben und nem Scope an die Sache.

Wie kann man den mit der Releaseversion unter CrossWorks Debuggen?

Martin

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.