ARM Debuggen/Stoppen mit OpenOCD

OP #1684168
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren