www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Debuggen mit AVR Dragon


Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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) ?

Autor: Null (Gast)
Datum:

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

Autor: Tobias A. (inselaffe)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marco S. (masterof)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Marco S. (masterof)
Datum:

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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Fabian B. (fabs)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gast (Gast)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.