Hallo,
Ich habe mir den dragon besorgt und wollte damit etwas experimentieren
:-)
die ersten Veruche mit avrdude in ISP und JTAG Modus sind erfolgreich
verlaufen, womit ich Hardwarefehler ausschliessen kann.
Dann war es Zeit den Debugger anzuwerfen.
avarice Version 2.6 runtergeladen,installiert und gestartet.
1
avarice -I -Patmega16 -d --dragon --jtag usb localhost:2424
Es scheint alles OK zu sein die LED am Dragon blinken und ein
1
Waiting for connection on port 2424.
ist zu sehen.
dann mal schnell in der zweiten Konsole avr-gdb (version 6.4) angeworfen
1
file main.elf
2
target remove :2424
3
load
4
b main
5
c
zu sehen ist Continuing. in der avarice Konsole Waiting for input. der
Dragon blinkt vor sich hin, ende :-(
Es erscheint keine Eingabeaufforderung mehr der gdb bleibt hängen nur
ein STRG/c hilft.
Kann mir jemand sagen, was ich falch mache ?
Es läuft alles auf Debian/GNU Linux Lenny
Gruß Sebastian
Hi
bei mir funktioniert der Dragon mit avarice2.6 und avr-gdb6.5
(allerdings unter FreeBSD) ganz gut soweit. Ich gehe mal davon aus, das
der Befehl den du eingegeben hast
target remote :2424
geheißen hat, und nicht "remove", oder?
Sobald das target angegeben und gestartet ist, sollte sich auch avarice
melden.
Gruß
Manuel
Danke Euch für die Antworten,
ja klar heißt es remote, sorry, ich hab mich verschrieben...
und mit -d hab ich avarice auch gestartet.
Ich habe auch zu früh gemeckert, ich habe den M16 neu geflasht, und es
ging auf einmal,komisch.
Eine Frage hab ich aber noch, wie kann ich mir den Zustand der Register
angucken,ich meine PORTx PINx Timer usw. ?
Bei simulavr kann man mit simulavr-disp ein schönes Fenster erstellen,
wo alle Zustände angezeigt werden, gibt es sowas auch für avarice?
Irgendwie sind die Infos im I-Net ziemlich knapp, oder ich bin da zu
blöd zu suchen...
und die Ausführungszeit ? Geht es überhaupt, z.B. Zeit zwischen zwei
Breaks ?
Gruß Sebastian
Hallo,
ich hab mich doch zu früh gefreut :-(
Ich versuche ein Programm mit einem Timer Interrupt zu Debuggen, es
klappt absolut nicht avraice habe ich mit dem -I Schalter gestartet und
wenn ich avr-gdb starte,mit avraice verbinde startet das Programm im µC
nicht wenn ich continue eintipe (ich habe keinen Breakpoint gesetzt!)
avraice meldet:
1
command[0x08, 1]: 08
2
recv: 0x1b
3
recv: 0x23
4
recv: 0x00
5
recv: 0x01
6
recv: 0x00
7
recv: 0x00
8
recv: 0x00
9
recv: 0x0e
10
sDATA: reading 1 bytes
11
read: 80
12
recv: 0x52
13
recv: 0x3e
14
CRC OK
15
Got message seqno 35 (command_sequence == 35)
16
response: 80
17
Waiting for input.
avr-gdb hängt mit continuing. die LED am Dragon blinkt und das Programm
im M16 läuft nicht.
Wenn ich den Dragon abklemme läuft der Mega immernoch nicht, es scheint,
als ob da irgendwo ein break im flash gesetzt ist :-( , da hilft nur
noch neu flashen...
Bin ich jetzt zu blöd den Debugger zu benutzen, oder wo ist der Hund
begraben ?
Mit welchen Flags muß ich das Programm den kompilieren ?
ich habe -gstabs, ist das denn richtig ?
Ich hoffe, daß mir jemand helfen kann, weil ich keine Lust habe Windows
zu installieren und mit AVRStudio zu arbeiten.
Gruß Sebastian
Probier's bitte mal ohne dem "load", das ist wenig getestet. Ich
bevorzuge zum Flashen allemal ein externes avrdude, erst danach
gehe ich mit avarice auf den Controller zum Debuggen.
In dem Modus, in dem du bist, kannst du übrigens mit ^C immer
unterbrechen (avarice wartet auf entweder eine Meldung vom GDB
oder eine vom ICE). Wenn du GDB's Disassemblier-Funktionen
benutzt, zeigt er dir auch den rückgelesenen Code vom Target
an, nicht den von der Datei. Da kannst du ja gucken, ob da was
verkorkst ist, wenn du Lust hast.
Jörg Wunsch wrote:
> Probier's bitte mal ohne dem "load", das ist wenig getestet. Ich> bevorzuge zum Flashen allemal ein externes avrdude, erst danach> gehe ich mit avarice auf den Controller zum Debuggen.
O weh, das hätte ich wissen müssen...
Jetzt geht es freu, hab ich mit load, den AVR etwa neu beschrieben ?
Ich Trottel dachte es wandert in den Dragon...
Hab auch die manpage von avarice 20 mal studiert und keine Hilfe
gefunden :-(, könnte man unter DEBUGGING WITH AVRAICE nicht den Weg
beschreiben ?
> In dem Modus, in dem du bist, kannst du übrigens mit ^C immer> unterbrechen (avarice wartet auf entweder eine Meldung vom GDB> oder eine vom ICE).
Ja, hab ich auch gemacht, der hat dann aber schön in dem Interrupt
gesteckt
und hat immer sinnlose Variablenwerte geliefert...
>Wenn du GDB's Disassemblier-Funktionen> benutzt, zeigt er dir auch den rückgelesenen Code vom Target> an, nicht den von der Datei. Da kannst du ja gucken, ob da was> verkorkst ist, wenn du Lust hast.
Klar hab ich Lust, muß mir nur die Hilfeseiten von gdb genauer angucken,
wie man es so macht...
Am sonsten vielen Dank Jörg, daß Du mir geholfen hast.
Gruß Sebastian
Hallo,
schön zu hören, dass es doch Leute gibt, die mit Linux und AVaRICE,
avr-gdb etc arbeiten.
Ich wollte das vor einiger Zeit auch mal versuchen, hab's aber nicht
hinbekommen und somit wieder in die Ecke geworfen...
Hätte nicht jemand von den "Erfolgreichen" Lust einen kleinen Artikel
ins Wiki zu stellen? Wäre bestimmt nicht nur für mich interessant.
Im Netz findet man auch kein wirlich gutes HowTo - oder ich bin zu blöd
zum Suchen.
Viele Grüße,
Christian
CH wrote:
> Hallo,>> schön zu hören, dass es doch Leute gibt, die mit Linux und AVaRICE,> avr-gdb etc arbeiten.> Ich wollte das vor einiger Zeit auch mal versuchen, hab's aber nicht> hinbekommen und somit wieder in die Ecke geworfen...>> Hätte nicht jemand von den "Erfolgreichen" Lust einen kleinen Artikel> ins Wiki zu stellen? Wäre bestimmt nicht nur für mich interessant.>> Im Netz findet man auch kein wirlich gutes HowTo - oder ich bin zu blöd> zum Suchen.>> Viele Grüße,> Christian
Hallo Christian, und ich dachte schon, ich wäre alleine zu blöd :-)
Leider kann ich mich noch nicht als "Erfolgreich"
bezeichnen, es gibt noch viel zu tun, ich bin erstmal froh, das es
klappt.
gdb ist sehr mächtig, dadurch auch nicht gerade einfach zu benutzen, mal
schauen, wie ich ihm so Sachen entlocken kann, wie Portzustände,
Programmcounter usw.
Gruß Sebastian