Hallo,
ich bin auf Eclipse umgestiegen und möchte nun damit Debuggen via JTAG
und AVR-Dragon.
Ich kriege aber jetzt leider keine Kommunikation von avarice mit dem
AVR- Dragon zustande. avarice gibt immer folgendes aus:
1
C:\Users\XXXXXXXX>C:\WinAVR-20100110\bin\avarice.exe --dragon --ignore-intr --jtag usb :4242
2
AVaRICE version 2.9, Jan 7 2010 22:42:57
3
4
Defaulting JTAG bitrate to 250 kHz.
5
6
found 7 busses
7
did not find any USB device "usb"
8
USB device not found
Ich habe bereits von Problemen mit der libusb0.dll gelesen und auch alle
außer der unter C:\Windows\System32 umbenannt bzw. gelöscht. Außerdem
habe ich auch schon neuere heruntergeladen und "installiert", war aber
auch erfolglos.
Danke im Voraus.
Gruß, KR2
Hallo zusammen,
bin hier neu. Habe es auch nach vielen Stunden geschafft, mit Eclipse
meinen Arduino zu programmieren. Jedoch mit Hilfe des Programmers AVRISP
MK2 von Reichelt. Nun wollte ich auch debuggen. Bekomme nun dieselbe
Meldung wie KR2. Meine "Arguments" lt. "-2 --ignore-intr --jtag "usb
:4242" ". Sind die so richtig? Oder hat jemand ´ne Lösung?
Gruß Kucky
Hallo zusammen,
wollte diesen Beitrag nochmal aufgreifen. Hab nun nach langer Zeit
endlich den Dragon mit Arduino und Eclipse "zusammengebracht". Aus
meiner Sicht ist alles OK. Es wird wie gewünscht eine *.hex und/oder
*.elf-Datei erzeugt. Alles ohne Fehlermeldung. Ist für einen Anfänger
nicht gerade einfach. Wenn ich nun in die Debug-Perspektive wechsele,
erscheint aber beim Start des Debuggers folgende Meldung:
"D:\Users\Kucky.ADMIN-PC\Projekts\BotOne"): CreateProcess error=193, %1
ist keine zulässige Win32-Anwendung"
Damit kann ich nun garnichts anfangen.
Betriebssystem: Windows7 64bit
Eclipse: Helios
Debugger: AVR Dragon
LibUsb-win32-bin-1.2.5.0
Ich weis schon, das hier win32 steht, aber ich hatte bei sourceforge
gelesen, das dieser Treiber auch für Win64 gilt.
Was mir noch aufgefallen ist, machmal erscheint der Breakpoint als
blauer Punkt und mal als Warning.
Kann hier einer weiterhelfen?
LW
Willi K.
Bin auch nicht untätig gewesen, aber mir gehen die Alternativen aus. Ist
das nur etwas für die absoluten AVR-Spezialisten? Und sollten sich
ambitionierte Einsteiger da raus halten?
Nachdem ich glücklich darüber war, dass ich meinen Dragon und
ArduinoMega im AVR-Studio erkannt wusste, war dies am nächsten Tag, ohne
erkennbaren Grund nicht mehr Fall. Aber egal, ich versuche es heute
wieder.
In Eclipse habe ich u.a. folgende Debug-Einstellung.
--dragon --ignore-intr --jtag usb:4242 (oder1212)
Nun lese ich hier:
Beitrag "AVR debuggen mit Eclipse und AVaRICE unter Windows"
diese Konfiguration
avarice --mkI -B4000khz --jtag /dev/com2 -P atmega32
Übersetzt für mich hieße das:
avarice --mkI (oder mkII ? ) -B4000khz --jtag /dev/com2 (oder/usb ? ) -P
atmega2560
AVaRICE version 2.9, Jan 7 2010 22:42:57 (Die habe ich auch)
In einem Betrag wurde auch die ${project_name}*.hex Datei mit angegeben.
Ist das so?
Bin ich hier richtig unterwegs? Ich habe übrigens Eclipse Helios ganz
neu mit über "wascana" installiert, und den Hardwaredebugger. Habe mal
eine Doku angehangen.
Wäre schön wenn sich einer meiner annimmt.
LG
kucky schrieb:> In Eclipse habe ich u.a. folgende Debug-Einstellung.>> --dragon --ignore-intr --jtag usb:4242 (oder1212)
Ich hoffe, du hast zwischen "usb" und ":4242" ein Leerzeichen.
"-j usb:4242" ist etwas ganz anderes als "-j usb :4242".
Das erste verlangt nach einem AVR Dragon, der (logischerweise) über
USB angesprochen wird und dessen Seriennummer mit 4242 endet. Das
Kommando beendet sich nach getaner (oder auch nicht getaner, falls
kein Dragon mit passender Seriennummer gefunden wird) Arbeit, denn ein
GDB-Server wird nicht verlangt.
Das zweite verlangt nach irgendeinemAVR Dragon am USB (nimmt den
ersten, der beim Abklappern der Bushierarchie gefunden wird, falls
es mehrere gibt), und startet AVaRICE als GDB-Server auf allen
verfügbaren IP-Adressen mit Portnummer (TCP/)4242.
> avarice --mkI -B4000khz --jtag /dev/com2 -P atmega32
Das ist für ein JTAGICEmkI, also ein uraltes Teil, das mit deinem
AVR Dragon nichts gemein hat. Außerdem traut derjenige offenbar
dem automatischen Auslesen der Device-ID nicht übern Weg, sondern
gibt explizit einen ATmega32 als target AVR vor.
> AVaRICE version 2.9, Jan 7 2010 22:42:57 (Die habe ich auch)
Aktuell ist 2.11.
> In einem Betrag wurde auch die ${project_name}*.hex Datei mit angegeben.> Ist das so?
Ich empfehle ausdrücklich nicht mehr, AVaRICE zum Download des
Programms auf den Controller zu nutzen, und ich pflege diese
Funktionalität auch nicht mehr. Dafür ist AVRDUDE da, ich mag
die Arbeit einfach nicht doppelt machen (und AVRDUDE kann ohnehin
in dieser Richtung viel mehr).
Lieber Jörg,
vielen Dank für die schnelle Antwort. Sitze gerade an der Sache, und
überprüfe die Angaben.
Es beginnt schon bei der Seriennummer
Bei mir Dragon SN200006754. Habe ich geändert.
AVaRICE 2-12 habe ich genommen, wird aber beim Start als 2.9 angezeigt.
Den Rest den Du mir geschrieben hast, ist aber viel interessanter.
Wie gesagt, ich bin hier alles andere als Sattelfest, und nehme Hinweise
von Experten gerne an. Für uns Anfänger ist es aber sehr demotivierend,
wenn man sich in den Foren einen Wolf sucht, glaubt etwas gefunden zu
haben, und bekommt dann gesagt, dass dem nicht so ist. Das ist bei Leibe
kein Vorwurf. Hier z.B. auf AVaRICE verzichten und AVRDUDE nehmen, habe
ich nirgends gelesen. Nehme das aber sehr gerne an. Habe mir gerade auch
eine aktuelle Version von AVRDUDE 0.2.0 bei souceforge heruntergeladen.
Habe dort Deinen Namen gelesen. Bin wohl an den richtigen geraten. Wenn
ich das richtig verstanden habe, ohne umzubenennen ins bin Verzeichnis
kopieren
Wäre es zu viel verlangt, mir einen Link zu zeigen, wo mir erklärt wird,
was ich genau wo tuen muss.
Ich bin bestimmt nicht suchfaul, aber hier könntest du mir einen echten
Gefallen tun.
Warum sich plötzlich mein Dragon nicht mehr mit AVR Studio connected,
ist aber immer noch ein Rätsel. Ich kann aber weiter meinen Arduino
(inkl. JTAG Verbindung) mit Eclipse flashen.
Liebe Grüße aus Leverkusen
Willi K.
Nachtrag.
Habe soeben den Dragon mit Arduino Mega mittels JTAG auf meinem Laptop
verbunden. Und siehe da, alles OK inkl. Upgrade. Der einzige Unterschied
ist, das auf dem Laptop Windows 32bit und auf dem Desctop Windows 64bit.
Willi K. schrieb:> Es beginnt schon bei der Seriennummer> Bei mir Dragon SN200006754. Habe ich geändert.
Die Seriennummer musst du nicht angeben, man kann sie nur angeben.
Damit kann man mehrere gleichartige Geräte an einem Computer dann
unterscheiden.
> AVaRICE 2-12 habe ich genommen, wird aber beim Start als 2.9 angezeigt.
Dann ist was foul.
1
$ avarice -v
2
AVaRICE version 2.12, Dec 17 2011 23:55:33
3
4
Defaulting JTAG bitrate to 250 kHz.
5
6
Failed to open /dev/avrjtag: No such file or directory
Wenn das bei dir nicht angezeigt wird (das Datum ist dabei Datum und
Uhrzeit des Compilierens), dann hast du vielleicht zwei verschiedene
installiert und nimmst das falsche.
> Hier z.B. auf AVaRICE verzichten und AVRDUDE nehmen, habe> ich nirgends gelesen.
Es geht da rein um den Download der Firmware — nicht, dass wir uns
missverstehen. AVaRICE ist das Bindeglied zwischen GDB und JTAG ICE
bzw. AVR Dragon.
> Habe mir gerade auch> eine aktuelle Version von AVRDUDE 0.2.0 bei souceforge heruntergeladen.
Aktuelles AVRDUDE ist 5.11, und das gibt's bei savannah.nongnu.org.
Das ist allerdings nur der Sourcecode, aber ich glaube, du kannst hier
im Forum suchen, ein netter Spanier hat davon auch eine Binärversion
für Windows gebaut.
Was du hast, wird irgendein GUI-Wrapper dafür sein (vermutlich hast du
bereits ein AVRDUDE via WinAVR oder dergleichen bei dir).
> Wäre es zu viel verlangt, mir einen Link zu zeigen, wo mir erklärt wird,> was ich genau wo tuen muss.
Ja, ist es. Erstens habe ich kein Windows, kann dir also nicht
lückenlos alle Schritte zu einem funktionierenden Windows-Toolchain-
Setup nennen, zweitens kenne ich Eclipse nur aus der Ferne, mit dem
AVR-Plugin dort habe ich noch nie was zu tun gehabt.
Schade, ist aber nachvollziehbar. Trotzdem vielen Dank, habe was dazu
gelernt. Werde mal nachschauen was bei mir faul ist. Eine Frage aber
noch. Ist es richtig, dass der libusb-win32 auch für ein 64bit System
geht?
Kucky.
Willi K. schrieb:> Ist es richtig, dass der libusb-win32 auch für ein 64bit System> geht?
Das kann ich dir leider auch nicht sagen. Schau mal, ob die Doku
bei libusb-win32 dazu etwas sagt, oder frage hier im Unterforum
"PC Hard- und Software" nach. Dort lesen das vielleicht mehr Leute
mit, die sich damit auskennen.
Habe die Hoffnung noch nicht aufgegeben.
Bekomme nun diese Ausgabe: Siehe Anhang
Die aus meiner Sicht interessanten Zeilen habe ich hervor gehoben.
Interessant ist auch, dass die beiden Breakpoint erkannt werden.
Punkt 14-gdb-exit habe ich manuell ausgelöst.
Sollte ich es tatsächlich schaffen, diese Sache ans Laufen zu bekommen,
werde ich eine Anleitung für Leute wie mich schreiben, und hier
einstellen.
Gruß
Willi
Willi K. schrieb:> Bekomme nun diese Ausgabe: Siehe Anhang
Ja, dein AVaRICE läuft ja offensichtlich immer noch nicht, da ist
es auch kein Wunder, dass der GDB sich nicht zu diesem verbinden
kann.
Hast du denn nun mal geklärt, ob die libusb-win32 überhaupt unter
deinem 64-bit-System läuft? Das sollte sich doch eigentlich schon
anhand der kleinen Testapplikation zeigen, die bei libusb-win32
mit dabei ist: wenn diese deinen Dragon nicht sieht, dann wird
AVaRICE ihn auch nicht finden können.
Kannst du nicht einfach erstmal die Tools von Hand starten und
dir die Meldungen ansehen, die sie ggf. im Terminal ausspucken?
Den Aufruf des AVaRICE hast du ja schon da oben stehen. Solange
das nicht erzählt, dass es auf Port 1212 (oder so) auf eine
GDB-Verbindung wartet, brauchst du auch keinen AVR-GDB aufzurufen.
Vielen Dank für das Interesse.
Der LibUsb ist 64bit tauglich.
--dragon --jtag-igint -- usb :4242 (alles aus dem Kopf, bin im Büro)
Habe damit tatsächlich schon angefangen um den "Fehler" einzugrenzen. Es
erscheint aber immer wieder die Meldung, dass USB nicht gefunden wird.
Werde ich ab heute Abend weiter verfolgen und posten.
Habe mich gestern mal durch diesen Beitrag gelesen:
Beitrag "ATMEGA mit Eclipse debuggen?"
Daraufhin glaube ich fast, dass alles mit meiner Version von AVaRICE
zusammenhängt. Habe auch gelesen, das Du eine neue Version 2.12 zu Test
freigeben hast. Aber was macht ein armes Schw... wie ich, mit einer
nicht windowsfähigen Version. Habe zwar den freundlichen Spanier
gefunden, aber was mache ich nun mit AVaRice? Ich möchte doch nur
mittels Dragon debuggen. Ich meine Markus hätte mal erwähnt, das er mit
Eclipse editiert und mit AVR Studio debugt (-gstabs). Geht das
tatsächlich?
Willi
Willi K. schrieb:> Habe auch gelesen, das Du eine neue Version 2.12 zu Test> freigeben hast. Aber was macht ein armes Schw... wie ich, mit einer> nicht windowsfähigen Version.
. selbst compilieren; wenn du einmal ein Cygwin-Setup hast, ist das
gar nicht so sehr problematisch
. die Windows-Version installieren
Wollte eben anfangen den Fehler einzugrenzen. Was kann ich gegen diese
Meldung tun? Ohne dies komme ich eh´ nicht weiter.
Ist noch die alte AVaRICE. Bin noch auf der Suche nach einer Anleitung
zum Compilieren.
Willi
Willi K. schrieb:> Wollte eben anfangen den Fehler einzugrenzen. Was kann ich gegen diese> Meldung tun?
Das heißt, dass die libusb den Dragon nicht findet.
> Ohne dies komme ich eh´ nicht weiter.
Ja.
> Ist noch die alte AVaRICE. Bin noch auf der Suche nach einer Anleitung> zum Compilieren.
Standard:
1
./configure && make all install clean
Ist bei so ziemlich jeder Software mittlerweile die Grundannahme.
Aber solange deine libusb-Probleme nicht gelöst sind, brauchst du
das nicht.
Fehlermeldungen leitet man in eine Textdatei um:
1
avarice --dragon --jtag usb > log.txt 2>&1
(Ja, das geht auch in einem cmd.exe, auch wenn's nach Bourne-Shell
aussieht. ;-)
Jetzt verstehe ich gar nichts mehr. Ich habe lediglich in der
Eclipse-Debug Einstellung "usb" gegen "com4" ausgetauscht. Dann Debug
gestartet. Es wird zwar nicht automatisch in die Debugperspektive
umgeschaltet, aber wenn ich manuell umschalte, ist hier zwar ein Warning
"unresolved breakpoint", aber das Ding läuft erst mal ohne Meldung.
"Step into" ist zwar disabled und das Programm steht auf "suspend", aber
für mich sieht das aus wie ein Fortschritt. Wenn ich den Käfer drücke,
kommt gelegentlich die Meldung "Don't know how to run. Try "help
target".
In der Consolenausgabe ist nur noch dies markiert:
No symbol table is loaded. Use the "file" command.
localhost:4242: Es konnte keine Verbindung hergestellt werden, da der
Zielcomputer die Verbindung verweigerte.
load
D:\\Users\\Kucky.ADMIN-PC\\Entwicklung\\Eclipse\\workspace\\BotTwo\\Debu
g\\BotTwo.elf
You can't do that when your target is `None'
LG
Willi
Lös' dich doch bitte erstmal vom Eclipse. Das versteckt dir nur alles
und gaukelt dir etwas vor. Ich wette, dass da rein gar nichts läuft
mit dem AVaRICE, denn der Dragon hat keine serielle Schnittstelle,
über die man ihn als COM4 ansprechen könnte.
Ja, mach´ ich. War mir auch suspect. Habe mich noch einmal intensive mit
den LibUSB beschäftigt. Aber der scheint richtig zu funktionieren. Es
lag wohl an dem Leerzeichen "usb:4242". Nun habe ich diese Ausgabe.
Sieht doch gut aus, oder?
Cygwin istalliert sich sich seit 30min und ist auf 63% gähn.
> die Windows-Version installieren
Habe, in Ermangelung weitere Kenntnisse, alles angewählt.
Stand hier:
http://www.tanmar.info/content/view/24/47/
Willi K. schrieb:> Sieht doch gut aus, oder?
Nein. "Unknown host usb". Ja, es stimmt, der Dragon wird offenbar
standardmäßig auf USB gesucht und nicht auf /dev/avrjtag (das wusste
ich gar nicht mehr), aber dann brauchst du das "usb" auch gar nicht
angeben. Jetzt versuchst du, es als Hostnamen anzugeben.
Das korrekte Kommando habe ich dir schon weiter oben geschrieben.
Hallo Jörg,
ich kann mich gar nicht oft genug bedanken. Ich habe mich halt vor 1 1/2
Jahren zu diesem Hobby entschieden. Hat mich fasziniert, bin aber sicher
mit 55 einer von den wenigen, die sich an ein solch Komplexes Thema
heran wagen. Meine „Erfolge“ lagen bisher darin, dass ich einen
Experimentier -Bot gebaut habe, der mittels einer C# Anwendung und
Bluetooth fern bedient werden kann. Das nur zur Erklärung:
Nun wieder zum Projekt. Habe natürlich Deine Kommandozeile gesehen. Wenn
ich aber zwischen „usb“ und „:4242“ ein Leerzeichen setzte, kommt
„unknown usb hub“. Auf Grund Deiner letzten Antwort habe nun aber „usb“
weggelassen. Ergebnis, siehe oben. Sieht das nun gut aus?
Gruß
aus Leverkusen
Willi
so, habe mich weiter mit Consolen Eingaben versucht. Habe das bei
Sebastian gefunden.
> Waiting for connection on port 2424.> ist zu sehen.> dann mal schnell in der zweiten Konsole avr-gdb (version 6.4) angeworfen> file main.elf> target remove :2424> load> b main> c
Den Schreibfehler "remote" habe ich gesehen, und Deinen Hinweis mit dem
"load" habe ich auch befolgt.
Ich denke, das hier gesamten Path angeben muss.
Die Ausgaben s.o. Bin ich einen Schritt weiter?
LGW
Bitte!, ich habe dich oben gebeten, die Logfiles als Textdateien zu
erstellen, damit du nicht jedesmal ein Bild posten musst.
Ich denke, jetzt kannst du dein Eclipse mal wieder bemühen, ab hier
findet es dir den Weg schneller, als wenn du den GDB zu Fuß
bedienst. Der nächste Schritt wäre es, dem GDB mitzuteilen, in
welchen Verzeichnissen er den Sourcecode findet. Standardmäßig
sucht er nur in dem Verzeichnis, in dem die ELF-Datei liegt (bzw.
relativ zu diesen).
so, habe es nun endlich geschafft, AVaRICE in der Version 2.12 zu
verwenden. Nach dem Start aus der Kommandoebene (--dragon –ignore-int
_B4000khz –jtag usb : 4242) meldet AVaRICE , und wartet auf eine
Verbindung an Port 4242.
Wenn ich nun aus Eclipse heraus den Debugger startet, erscheint im
CMD-Fenster…
Connection opened by host 127.0.0.1, port 1231.
Aus meiner Sicht alles OK, oder? Geflasht habe ich vorher mit AVRDUDE .
Der Debugger schnarchte aber vor sich hin. Dann habe ich diesen Beitrag
gefunden..
Beitrag "AVR Debugging mit eclipse"
Hier riet 900ss, dass man in der Debug- Konfiguration das “ Load Image“
nicht zu verwenden. Habe ich gemacht, stattdessen Load Symbols. Nun
geht´s wirklich ratz fatz. Er werden alle 4 Breakpoints inkl. an main
gefunden…
146^error,msg="Don't know how to run. Try \"help target\"."
9
147 info proc
10
(gdb)
11
Don't know how to run. Try "help target".
12
&"info proc\n"
13
&"Undefined info command: \"proc\". Try \"help info\".\n"
14
147^error,msg="Undefined info command: \"proc\". Try \"help info\"."
15
(gdb)
16
148 info program
17
&"info program\n"
18
~"The program being debugged is not being run.\n"
19
148^done
20
149 info threads
21
(gdb)
22
&"info threads\n"
23
&"No registers.\n"
24
149^error,msg="No registers."
25
(gdb)
26
150 info threads
27
&"info threads\n"
28
&"No registers.\n"
29
150^error,msg="No registers."
30
(gdb)
31
151 info threads
32
&"info threads\n"
33
&"No registers.\n"
34
151^error,msg="No registers."
35
(gdb)
Nun hatte ich damit gerechnet, dass nun in der Debug-Perspektive die
Buttons „Step into“ und „Step over“ enabled sind. Dem ist aber nicht
so. Was mich wundert ist diese Meldung :
Don't know how to run. Try "help target".
Wo liegt mein Fehler?
Wenn ich den avr-gdb auch auf der Kommandozeile ausführe, ist das
Ergebnis wie folgt:
Willi K. schrieb:> Hier riet 900ss, dass man in der Debug- Konfiguration das “ Load Image“> nicht zu verwenden.
Ja, das würde versuchen, die Flash-Daten über den Debugger zu
laden, was AVaRICE mit einem JTAGICEmkII oder AVR Dragon derzeit
nicht unterstützt.
> &"Don't know how to run. Try \"help target\".\n"
Hier müsstest du ggf. mal im Helpthread zum AVR-Eclipse-Plugin
fragen. Ein "run" funktioniert naturgemäß nicht, weil dein
Host-Prozessor natürlich keinen AVR-Code abarbeiten kann.
Möglicherweise ist deine GDB-Version zu neu für das Plugin? Hin
und wieder werden an den GDB-Kommandos auch mal kleinere Änderungen
vorgenommen.
Sorry, war gestern zu müde.
Werde ich kontrollieren. Habe mir die GDB 7.3 besorgt und in MinGW
eingebunden. Hier wird dann aber 7.2 angezeigt. In der Debug-Perspektive
sehe ich nun Step in und Step over aktiv. Ich glaube ich nähere mich.
LGW
Hallo,
ich habs gefunden. Werde mir eine bessere Brille kaufen. Es war das
Häkchen bei "Resume". Das mit dem herbeten, muss ich wohl zurücknehmen.
Nichts desto trotz habe ich eine Menge gelernt. Nicht zuletzt mit eurer
Hilfe. Vielen Dank für die Geduld.
Ich bin zwar noch etwas wackelig in Bezug auf richtiges Debuggen, aber
das werde ich auch lernen. Ein Tutorial for Runaways werde ich dennoch
bei Gelegenheit hier einstellen.
Eine Frage habe ich aber noch an die Eclipse Experten.
Warum erscheinen NUR bei INDIGO diese Käfer? Habe ich wieder ein Häkchen
übersehen? :-( Das Programm wird sauber geflasht und ausgeführt.
LGW
Hallo,
Nun ist alles richtig eingestellt. Es funktioniert einwandfrei. Debuggen
und keine Käfer mehr.
Nochmals herzlichen Dank an Jörg, Thomas und 900ss D. Ich hoffe die
beiden lesen hier mit.
LG
Willi