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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.