Forum: Compiler & IDEs Debuggen mit GDB und AVR-JTAG


von M. Longobardi (Gast)


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 ?

von Stefan Kleinwort (Gast)


Lesenswert?

Du kannst entweder AVRStudio oder gdb nehmen, was Dir lieber ist.
Ich habe das hier schonmal zusammengeschrieben:

http://www.mikrocontroller.net/forum/read-2-98425.html#98468

Wichtig: neues WINAVR, ich nehme den von April 2004.

C-Debug ist einfach ur cool mit dem JTAG, ich nehme im Moment den
AVRStudio, will gdb aber auch nochmal antesten.

Stefan

von Jörg Wunsch (Gast)


Lesenswert?

Vielleicht stellst Du das ja mal ins Wiki?

von Stefan Kleinwort (Gast)


Lesenswert?

Sollte ich vielleicht nicht nur anderen vorschlagen ;-)
Ich werde mich mal dransetzen ...

Stefan

von Frank Wallenwein (Gast)


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

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


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.

von Frank Wallenwein (Gast)


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

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

> ist dieser ICE Nachbau selten im Einsatz.

Das ist absolut kein Problem des ICE oder seines Nachbaus.

Wie gesagt, kann sein, dass das mkII das Problem unter AVR Studio
nicht mehr hat.

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.