Debuggen mit GDB und AVR-JTAG

Gast #176952
Lesenswert?
• ▲
▼
Ich habe mir vor kurzen einen AVR-JTAG-ICE Nachbau angeschaft und hatte
die Vorstellung ganz einfach C-Source-Code Debugging in der
Zielhardware durchführen zu können.
Ich wollte winavr und das AVR-Studio verwenden.
Jetzt habe ich gelesen, dass man dafür GDB und weitere Tools verwenden
muss.
Weis jemand ob es hierfür ein Tutorial nach der Art "Debugging for
Dummies" gibt ?
Gast #176956
Lesenswert?
• ▲
▼
Hallo Forum,

vielleicht kann mir hier jemand helfen.
Ich nutze auch einen AVR-JTAG-ICE Nachbau.

Programmiert wird ein Mega32 mit GCC. Das Debuggen habe ich mit
mit avr-gdb und mit Avr-Studio ausprobiert.

Prinzipiell geht das debuggen auch gut. Wenn ich allerdings eine
oder mehrere Interruptroutinen in meinem Programm verwende, dann
hällt der Debugger andauernd "von selbst" in der Interruptroutine an.

Einen Breakpoint habe ich dort nicht gesetzt.

Wenn ich also eigentlich irgenwo ganz anderes im Programm debuggen
will, dann passiert es permanent, dass der Debugger in einer Interrupt
Routine anhält, als ob er auf einen Breakpoint gestossen wäre. Ich kann
dort auch schön steppen, Variablen anschauen usw.
Ich will aber nicht jedesmal, wenn ein Timer überläuft oder wenn die
serielle Schnittstelle ein Zeichen sendet, unterbrochen werden.

Kennt jemand diese Phänomen und hat eine Idee wie
ich das umgehen kann  ?

Danke und Gruss
Frank
Moderator Persönliche Seite #176957
Lesenswert?
• ▲
▼
> Prinzipiell geht das debuggen auch gut. Wenn ich allerdings eine
> oder mehrere Interruptroutinen in meinem Programm verwende, dann
> hällt der Debugger andauernd "von selbst" in der Interruptroutine
> an.

Das aktuelle AVaRICE kennt eine Aufrufoption -I, die genau das
verhindert.  Ist als experimentell gekennzeichnet, tut aber für mich
ganz gut.

Für AVR Studio wundert mich das, eigentlich hat das eine andere
Strategie für single-step.  Kann aber sein, dass die erst beim JTAG
ICE mkII implementiert worden ist.
Gast #176958
Lesenswert?
• ▲
▼
Danke für den Tipp mit der Aufrufoption -I.

Habe es gestern mal kurz ausprobiert - so ganz scheint das noch
nicht zu funktionieren. Vielleicht sollte ich es mal mit einer
neue avarice Version probieren.

Was mich wundert, ist dass dieses Problem nicht schon 1000 Mal
in Foren angefragt wurde. Wie Debuggt Ihr denn. Ich zumindest, kann den
Debugger durch dieses Problem praktisch nicht verwenden. Benutzt Ihr
keine Interrupt Routinen oder ist dieser ICE Nachbau selten im Einsatz.

Kennt Ihr eine "bezahlbares" ICE, das diese Problem nicht hat ?

Danke für Tipps,

Gruss
Frank

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