Forum: Mikrocontroller und Digitale Elektronik Debugging mit j-Link verändert Programmverlauf (ISRs werden ignoriert)


von j-Linker (Gast)


Lesenswert?

Beim Debuggen mit dem j-Link EDU mit Eclipse, Segger GDB-Server und 
GNU-Toolchain wird die TIM1-ISR auf einem STM32F401 nicht mehr 
ausgeführt.
Nicht nur werden Breakpoints darin nicht angesprungen sondern der ganze 
Code in ihr wird nicht ausgeführt - der Programmverlauf verändert sich 
signifikant.

Ist das vielleicht irgendeine Einstellung die ich übersehen habe, die 
zum Debuggen von Powerschaltungen, die ja meißt auf dem TIM1 laufen, 
wichtig ist?

von Tester (Gast)


Lesenswert?

Verrate doch bitte mal deine J-Link Software Version und poste ein 
minimales Projekt welches das Problem zeigt. Dann hat auch jemand (z.B. 
von Segger) die Chance das nachzuvollziehen.
Eine Einstellung in der Art ist mir nicht bekannt.

von Haas (Gast)


Lesenswert?

Wurde die Codeoptimierung abgeschaltet?

von j-Linker (Gast)


Lesenswert?

Software ist die aktuellste, FW wurde auch geupdatet.
Ich habe eine komplett neue Toolchain eingerichtet (das ging mit den 
ganzen Paketen, die es mittlerweile gibt echt schnell und komfortabel 
über die Bühne) und das Problem scheint nicht mehr in der Form 
aufzutreten; Lediglich ein extra Reset ist nötig, damit ISRs 
funktionieren.

Meine Hypothese ist, dass in einem der ständigen Kommunikationsprobleme 
ein Breakpoint getroffen wurde, das aber nicht zu Eclipse durchgedrungen 
ist - genau das Verhalten kann ich erzeugen, indem ich irgendwo einen 
Breakpoint setze und er dort stehen bleibt: Der Timer läuft weiter, ohne 
aber in die ISR springen zu können.
Der Bug liegt vermutlich in der Kommunikation zwischen Eclipse und 
GDB-Client oder GDB-Client und GDB-Server. Es gab zuweilen jede Menge 
Fehlermeldungen im GDB-Server-Log (von wegen Target running, can't read 
a.Ä.), die gibt es jetzt nur noch nach dem cont nach dem ersten 
Breakpoint vor dem zweiten, manuellen Reset.
Mit den neuen Versionen gibt es deutlich weniger Probleme; wenn ich den 
extra manuellen Reset noch weg bekommen würde wäre das ein rießiger 
Fortschritt von meinem bisherigen ST-Link/V2.

von j-Linker (Gast)


Lesenswert?

Selbstverständlich ohne Optimierung, sobald der Debugger abgesteckt 
wurde funktioniert alles wie es sollte, ebenso mit dem ST-Link/V2.

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.