Forum: Compiler & IDEs Manual für Debugging


von Peter L. (leistikow)


Lesenswert?

Hallo,
kann jemand eine verständliche Einführung in die Möglichkeiten des 
Debuggings empfehlen?

Ich hatte mir gewünscht, man könne Schritt für Schritt nachvollziehen, 
am liebsten im Sourcecode eines C-Programmes, wo das Programm 
hinspringt, wie die Ports an gewissen Programmstellen stehen usw.

In AVR4.13 sehe ich einen Menuepunkt "Trace"; ich glaube das ist das, 
was ich gebrauchen könnte, aber leider ist er deaktiviert. Es wird ICE50 
verlangt, ich habe aber einen AVR über JTAG angeschlossen.
Daneben gibt es noch run debug, aber das eilt durch das Programm und 
damit basta.

Dann habe ich mir avr-gdb angesehen, habe aber schon mit den 
anfänglichen Script m4 Schwierigkeiten und das dazu aufgerufene simulavr 
meldet "device not supported" (was ich bei einem ATmega16 nicht erwartet 
hätte).

Gibt es verständliche Manuals bzw. Programme (für XP, ggf auch für 
Linux)?

Vielen Dank schon mal
mfg
Peter

von 900ss (900ss)


Lesenswert?

Peter Leistikow wrote:
> Hallo,
> kann jemand eine verständliche Einführung in die Möglichkeiten des
> Debuggings empfehlen?

Ich gebe mal ein paar grundsätzliche Hinweise.

>
> Ich hatte mir gewünscht, man könne Schritt für Schritt nachvollziehen,
> am liebsten im Sourcecode eines C-Programmes, wo das Programm
> hinspringt, wie die Ports an gewissen Programmstellen stehen usw.

Genauso ist das auch möglich. Dein Wunsch kann erfüllt werden :-)

>
> In AVR4.13 sehe ich einen Menuepunkt "Trace"; ich glaube das ist das,
> was ich gebrauchen könnte, aber leider ist er deaktiviert. Es wird ICE50
> verlangt, ich habe aber einen AVR über JTAG angeschlossen.

Wenn Du direkt auf Deiner Hardware debuggen willst, geht das nicht mit 
einem JTAG Programmer. Du brauchst einen JTAG Debugger. Da wären:

1) Nachbauten des ATMEL JTAG ICE (nicht zu verwechseln mit
   ATMEL JTAG ICE MkII): Evertool Light (Forumsuche, Google)
   Es gibt auch andere Nachbauten.
   Kann aber nur nicht alle AVR debuggen/programmieren, auf jedenfall
   aber bis ATMEGA32. Aber die ganz kleinen mit DebugWire kann er nicht.
   Kosten: Arbeit und ca. 20-30 Euro.
2) ATMEL Dragon, kann programmieren, debuggen (über JTAG und auch über
   DebugWire). Programmieren kann er AVRs > 32kB, debuggen ist aber
   begrenzt auf AVRs <= 32kB (bis ATMEGA32).
   Kosten ca. 60 Euro.
3) ATMEL JTAG ICE MkII: Das Flagschiff, kann alles und auch die "großen"
   32-Bit CPUs von ATMEL, also AVR32.
   Kosten ca. 280 Euro.

> Daneben gibt es noch run debug, aber das eilt durch das Programm und
> damit basta.

Im Studio brauchst Du die Kommandos Debug-StepInto bzw. Debug-StepOver.
Debug-Run, läßt, wie der Name schon sagt, das Programm rennen, nicht
schrittweise ausführen ;-)
Wenn Du mit Deiner Hardware debuggen willst, brauchst Du einen der
oben erwähnten JTAG Debugger (nicht reine Programmer).
Mit einem reinen JTAG Programmer kannst Du garnicht debuggen.
Wenn Du das mal ausprobieren möchstest mit dem Studio, kannst Du den
Simulator (im Studio integriert) nehmen. Siehe Hilfe. Die Hilfe gibt
auch Hinweise und die Möglichkeiten (welche Devices unterstützt werden)
auf die oben erwähnten Debugger.

>
> Dann habe ich mir avr-gdb angesehen, habe aber schon mit den
> anfänglichen Script m4 Schwierigkeiten und das dazu aufgerufene simulavr
> meldet "device not supported" (was ich bei einem ATmega16 nicht erwartet
> hätte).

AVR-GDB brauchst Du nicht, wenn Du über das Studio arbeitest. Simulavr
ist der Simulator aus dem WINAVR Paket. Brauchst Du auch nur, wenn Du
simulieren willst und kein Studio verwendest-

>
> Gibt es verständliche Manuals bzw. Programme (für XP, ggf auch für
> Linux)?

Siehe mal in die Hilfe vom Studio. Im Moment habe ich keinen Link
parat. Wenn Du gerne ohne Studio arbeiten möchstest, gibt es diesen
Artikel für Simulavr: 
http://www.mikrocontroller.net/articles/AVR-Simulation

Viel Glück.

von STK500-Besitzer (Gast)


Lesenswert?

Wenn man ein neues Projekt im AVR-Studio startet, kann man die 
Simulator-Plattform auswählen. Da muß man dann das JTAG ICE auswählen.
Nachträglich geht das über das Menu "Debug" Menüpunkt "Select Platform 
and Device".

Dann muß man nur das Projekt compilieren ("Build and run") und dann den 
Simulator/Emulator/Debugger starten.

von Peter L. (leistikow)


Lesenswert?

Hallo,

vielen Dank für Eure Ratschläge. Ich abe mich gestern nochmals an 
AVRStudio4.13 versucht.

Ich benutze als Programmieradapter eine Platine "Dragon" (USB u. JTAG).
Eigentlich kommt es mir - bisher wenigstens - nicht auf 
Hardwaredebugging an, aber wenn ich bei AVRStudio die .elf-Datei angebe, 
werde ich sofort nach Platform und Device gefragt und lande dann gleich 
auf der Hardwaredebuggingsschiene.

Mit Trace funktioniert es nicht (vielleicht bei Simulation?); die 
Buttons Step into, step over lotsen auch tatsächlich durch das Programm, 
einschließlich der Sprünge, aber sie sind nach wenigen Betätigungen 
deaktiviert, dann hilft nur noch Reset. Und wenn auf irgendein Ereignis 
gewartet werden soll, dann ist ohnehin Schluß. Bisher ist die 
"Reset"-Funktion für mich am wichtigsten.

Vielleicht gewöhne ich mich an die Handhabung des Programms. Auf jeden 
Fall macht es einen ganz guten Eindruck.

mfg
Peter

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.