Forum: Mikrocontroller und Digitale Elektronik Debuggen mit AVR Dragon


von Benedikt K. (benedikt)


Lesenswert?

Ist vielleicht eine dumme Frage, aber gibt es eigentlich irgendwo (außer 
in der AVR Studio Hilfe) irgendwelche Infos zum AVR Dragon und zum Thema 
AVRs debuggen ?
Bzw. kann mir jemand erklären, wie das Debuggen genau funktioniert ?
Aus der Beschreibung des debugWire kann man entnehmen, dass der Code im 
Controller des zu debuggenden uC sein muss. Wofür benötigt der AVR 
Dragon dann die 32kByte SRAM ?
Wenn man das Programm anhält, werden dann alle Takte im Zielcontroller 
gestoppt, so dass das ganze trotzdem noch synchron bleibt (z.B. die 
Timer und der ADC werden gestoppt, und benötigen nach dem Fortsetzen des 
Programms noch die verbleibenden Takte, ehe der Interrupt ausgelöst wird 
usw) ?

von Null (Gast)


Lesenswert?

Du bist auch ueberwaeltigt durch die Flut von Informationen zum Dragon. 
Ja, geht mir auch so.

von Tobias A. (inselaffe)


Lesenswert?

Willkommen im Club.
Ich hab auch schon überlegt mir ne Arche zu bauen wegen der 
Informatiosflut.
Die Hilfe geht und ich hab paar PDFs gezogen aber alles im allem recht 
dünn das ganze

von Marco S. (masterof)


Lesenswert?

Nach dem Auswählen des Projekts im Wizard.
Aufnext klicken und dort das Gerät aus wählen wo man hat und dann auf 
der rechte seite den Prozessor auswählen.

Hoffe es ist verständlich was ich meine.

von Benedikt K. (benedikt)


Lesenswert?

Wie man debugged ist klar, aber mein Problem ist, wie verlässlich die 
Ergebnisse sind:
Läuft z.B. der Watchdog und ich drücke Pause, wird der Watchdog dann 
sicher gestoppt, oder läuft der weiter und löst einen Reset aus ?

Es geht mir vor allem darum zu verstehen, wie er Debugger funktioniert, 
nicht das ich am Ende Fehler suche, die garnicht da sind (da sie erst 
durch das Debuggen verursacht werden.)

Hier mal noch ein Beispiel: Der ADC läuft und erzeugt einen Interrupt, 
dessen Frequenz irgendein anderes Timing beeinflusst. Debugge ich jetzt, 
und drücke Pause, dann gibt es 3 Möglichkeiten:
a) Der ADC Takt läuft weiter, der ADC ist also früher fertig und das 
Timing kommt durcheinander.
b) Der ADC Takt wird entsprechend gebremst, was aber das ADC Ergebnis 
zerstört, da der ADC kapazitiv arbeitet und die Leckströme die 
Kapazitäten entladen.
c) Der ADC läuft ganz normal durch, der ADC Interrupt wird aber 
künstlich verzögert. Wäre möglich, aber dazu müsste man den AVR in 
Echtzeit emulieren. Die beiden AVRs auf dem AVR Dragon schaffen das nie, 
und dass der Simulator im AVR Studio das macht, glaube ich nicht.

von Marco S. (masterof)


Lesenswert?

Wenn ich mit dem JTAG MK2 debuge und in dem programm die UART verwende 
stehlt sich verhalten A ein.

von Benedikt K. (benedikt)


Lesenswert?

Erstmal danke für die Antworten.
Anscheinend gibt es aber wirklich nirgends eine Erklärung zu dem Ding. 
Das die Peripherie weiter läuft wenn die Software gestoppt ist, hätte 
ich auch vermutet, aber: Ich hatte eine Software die einen Timer als PWM 
verwendet, und an dem Pin kommt ein High Pegel raus wenn ich Pause 
drücke !
Daher kam ja erst überhaupt die Frage auf, ob das auch bei anderer 
Peripherie genauso ist.
Ebenso natürlich auch die 32kB (128kByte SRAM Chip) auf dem Dragon. 
Andere Debugger brauchen sowas nicht. Weiterhin verwirrt mich diese 
Zeile im Datenblatt: "Emulates All On-chip Functions, Both Digital and 
Analog, except RESET Pin". Unter einem Emulator verstehe ich eigentlich 
etwas, das sich genauso wie der uC verhält, aber eben nicht der 
entsprechende uC ist. Also quasi wenn die Software im Dragon laufen 
würde, aber nur die Peripherie des entsprechenden uCs verwendet wird. 
Aber das ist ja wohl kaum möglich.

von Fabian B. (fabs)


Lesenswert?

Also dass der AD eine bereits angestossene Wandlung wärend der Pause 
fertig macht, stelle ich auch fest. Das ist beim MK2 aber genauso.
Timer, Watchdoch usw. bleiben aber stehen. Auch Hardware-SPI senden 
bleibt stehen, wenn ich das richtig beobachtet habe.
Ich denke sowohl der Dragon, als auch der MK2 lassen das Programm zwar 
im Kontroller laufen (wie sollten sonst die die ganzen Steuerdaten 
schnell genug zum Kontroller kommen), halten aber ein exaktes 
flash-Speicherabbild bei sich.
Der MK1 (bzw. seine Klone) hat ja kein SRAM, aber Debug geht trotzdem. 
Evtl. ist das nur eine "beschleunigung". Genauere Beschreibung wäre 
spannend.

Gruß
Fabian

von Gast (Gast)


Lesenswert?

Ich möchte obige Frage noch einmal aufgreifen:
Gibt es mittlerweile eine separate Dokumentation zum Dragon? 
Applikation, Steckerbelegungen?

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.