Forum: Mikrocontroller und Digitale Elektronik ARM Debuggen/Stoppen mit OpenOCD


von Star K. (starkeeper)


Lesenswert?

Hi,
ich arbeite bei meinen Projekten viel mit ARM7 und auch Cortex-M3. Nun 
hatte ich das Problem, das mein Code sich an bestimmten Stellen nicht 
debuggen ließ. Dies lag daran, dass eine Initialisierung durchlaufen 
wurde, die nur funktioniert, wenn bestimmte Bedingungen herschen. 
Bedingungen, wie sie vom Controller direkt nach dem Reset existieren.

Beim Debuggen mit OpenOCD und dem OOCDLink-s habe ich dann feststellen 
müssen, dass der Code schon durchlaufen wurde, obwohl der 
Mikrocontroller früher im Code in einem Breakpoint steht.

Es scheint so zu sein, dass trotz angeschlossenem Debugger der 
Mikrocontroller nicht unmittelbar angehalten wird nach einem Reset.

Beispiel:
Ich flashe einen LPC2478 über OpenOCD. Anschließend wird ein 
Hardware-Reset und ein softreset_halt (beides) über den Debugger 
ausgeführt. Der Code steht nun beim Reset-Vector. Der nachfolgende Code 
wurde allerdings schon ausgeführt, da die Register wie im Code darunter 
angegeben ist schon initialisiert wurden.

Gibt es eine Möglichkaeit den Controller mit dem Debugger nach dem 
Flashen zu resetten, ohne das dieser direkt los rennt? Müsste der 
Soft-Reset nicht auch die Register wie ein Hard-Reset löschen? Liegt das 
an OpenOCD, der verwendeten Hardware oder wo anders dran?

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.