Hallo,
es gibt sehr viele Postings zu verwandten Themen, aber nachdem ich nun
drei Tage nonstop gesucht, ausprobiert und letztlich versagt habe, hoffe
ich auf eine Antwort aus der Runde.
Bisher habe ich meine SW-Entwicklung für den AVR mit AVR-Studio bzw.
WinAVR erledigt. Das läuft auch gut, bis auf den Umstand, dass beim
Debuggen von C-Code die Zeilen-Zuordnung mit tatsächlich aktuell
ausgeführten Code nicht genau übereinstimmt... kein großes Problem. Nun
suche ich nach einer Entwicklungsumgebung, die es mir ermöglicht, meine
Entwicklungsaktivitäten über prozessorgrenzen hinweg zu
vereinheitlichen. Eclipse scheint dafür eine vielversprechende Umgebung
zu sein. Und so habe ich bereits die neueste Version von Eclipse CDT
sowie das vielfach erwähnte AVR-Eclipse-Plugin installiert (dann auch
noch die CygWin-Tools) und Eclipse entsprechend konfiguriert.
Was schon funktioniert:
* Kompilieren des Quellcode
* Erzeugen von ausführbarem Code (.hex)
* Laden per avrdude auf den Prozessor und dort ausführen
Was noch nicht funktioniert ist das Debuggen, wie es mit AVR-Studio in
gleicher Hardware-Konfiguration (ATmega162 und selbstgebasteltes
JTAG-ICE-Interface am COM-Port) bereits möglich war. Und zwar scheint es
am AVaRICE zu liegen, das sich z.B. nach dem Start in der DOS-Shell über
1
avarice --mkI -j COM8 -P atmega162 -I :1212
mit der Meldung
"JTAG ICE communication failure: Inappropriate ioctl for device"
verabschiedet.
Gibt es eine Idee, woran es liegen könnte, dass ich mit AVaRICE keine
Verbindung aufbauen kann? Hat jemand einen Tipp, wie ich einen Schritt
weiter kommen kann? Sollte ich besser eine andere Form als AVaRICE
<->GDB für das Debuggen unter Windows verwenden?
Gruß
Peter
Peter K. schrieb:
> "JTAG ICE communication failure: Inappropriate ioctl for device"
Lass mal das AVaRICE mit -d laufen, dann müsste man sehen, an welcher
Stelle das passiert.
Den mkI-Code hat vermutlich schon sehr lange niemand mehr ernsthaft
benutzt. Seit der AVR Dragon nun auch AVRs > 32 KiB Flash-ROM ganz
offiziell debuggen kann, gibt's ja auch keinen wirklichen Grund mehr
für die alten Clones.
Hallo Jörg,
danke erstmal für den Tipp. Habe AVaRICE mit der zusätzlichen Option -d
in verschiedensten Konstellationen ausprobiert. Das Ergebnis ist immer
das gleiche (wie oben beschrieben). Es erscheinen leider keine
zusätzlichen Informationen, die Aufschluss über die Ursache des Abbruchs
geben könnten.
Andere Ideen? Irgendetwas, das ich noch ausprobieren könnte?
Gruß
Peter
Peter K. schrieb:
> Windows XP
Ich dachte evtl. Windows 7. Und ob das damit schon funkt?
Am Wochenende werde ich mal kurz einen Test machen, ob der aktuelle
AVaRICE funktioniert. Den hab ich auch noch nicht benutzt.
Falls es aber inzwischen bei dir funktioniert, dann schreib bitte kurz,
dann brauch ich nicht zu testen.
> Am Wochenende werde ich mal kurz einen Test machen, ob der aktuelle> AVaRICE funktioniert. Den hab ich auch noch nicht benutzt.
Testen könnte ich erst nach dem Wochenende wieder. Wäre super, wenn Du
bei Dir mal schauen könntest...
Danke.
Peter
So jetzt ist das Wochenende zwar um, aber ich habe mich eben mal
hingesetzt. Vorher ging es einfach nicht.
Ich habe auch das Problem gefunden. Du gibst das Device der seriellen
Schnittstelle nicht richtig an. War mir zwar schon vorher aufgefallen,
aber ich war mir nicht mehr sicher. Unten findest du meinen Aufruf, der
funktioniert und dann den gleichen Aufruf, wo ich die Schnittstelle so
angebe, wie du es gemacht hast und ich bekomme die gleiche Fehlermeldung
wie du. Du mußt die Schnittstelle als "/dev/comX" angeben.
Geht
C:\....>avarice --mkI -B4000khz --jtag /dev/com2 -P atmega32
AVaRICE version 2.9, Jan 7 2010 22:42:57
JTAG config starting.
Hardware Version: 0xc1
Software Version: 0x80
Reported JTAG device ID: 0x9502
Configured for device ID: 0x9502 atmega32 -- Matched with atmega32
JTAG config complete.
Geht nicht
C:\....>avarice --mkI -B4000khz --jtag COM2 -P atmega32
AVaRICE version 2.9, Jan 7 2010 22:42:57
JTAG ICE communication failed: Inappropriate ioctl for device
C:\....>
Das könnte damit zusammen hängen, dass /dev/comN durch den Cygwin-
Layer interpretiert wird, während comN direkt ans Windows weiter
gereicht wird. Damit weiß Cygwin dann nicht mehr, dass der
entsprechende Filedescriptor eine serielle Schnittstelle war,
mithin werden die ioctls abgelehnt.
Ich verwende den ICE über USB, unter linux gebe ich als Port usb an ->
keine Probleme. Unter Windows funktioniert dies aber nicht. Hat jemand
eine Ahnung was ich angeben muss? Unter AVR Studio läuft er auch über
USB.
safexy
Launching C:\WinAVR-20090313\bin\avrdude -pm2560 -cjtag2 -PUSB
-Uflash:w:LCD_2nd.hex:a
Output:
avrdude: ser_open(): can't open device "USB": Das System kann die
angegebene Datei nicht finden.
Leider funktioniert es bei mir nicht, siehe oben.
An Windows 7 scheint es nicht zu liegen, unter XP läuft es auch nicht.
Benutze jeweils libusb von winavr.
Genaugenommen ist der JTAG ICE MKII ein 1:1 clone von
http://www.sureelectronics.net/goods.php?id=931
Da bei anderen im Forum es funktioniert, bei mir auch per COM und auch
unter Windows mit AVR-Studio (und unter Linux auch über USB), sollte der
clone nicht das Problem sein.
Woran könnte es noch liegen?
safexy
C:\Users\home>avarice --mkII --jtag USB :4242
AVaRICE version 2.9, Mar 6 2009 08:16:00
Defaulting JTAG bitrate to 250 kHz.
Failed to open USB: No such file or directory
Ähnliches Bild bei abarice.
safexy
Es gab da mal einen Fehler im Installer von WinAVR, aber ob der noch
vorhanden ist, weiß ich nicht, vielleicht weiß Jörg etwa dazu.
Beitrag "Re: AVARICE macht garnichts, brauche Hilfe"
Vielleicht mußt du die libusb nochmal instalieren (von Sourceforge
holen).
Im Moment sieht es bei mir genauso aus wie bei dir. Über USB geht es
nicht aber über das Studio. Die Fehlermeldung ist die gleiche.
AVRStudio nutzt übrigens einen anderen USB-Treiber (Jungo), deshalb
funktioniert AVRStudio.
Bei war es immer so, dass mit AVaRICE über USB kein
Geschwindigkeitsvorteil entstand. Aber ich bin mir nicht sicher, ich
glaube Jörg hat da irgendwann was getunt in AVaRICE, so dass es auch
über USB schneller geht.
Ich nutze immer die serielle Schnittstelle. Hab den ICE aber lange nicht
mehr genutzt.
Nachtrag: Es lag mir in Erinnerung, war mir aber nicht sicher. Darum hab
ich es nicht geschrieben. Eben hab ich aber im AVR-User-Manual
nachgesehen:
1
AVR Studio can install and use the USB drivers from Jungo (which is included
2
as part of the AVR Studio installation). However, the Jungo drivers and the
3
LibUSB-Win32 drivers are mutually exclusive; if one set is installed the
4
other set will not work.
Das bedeutet, dass du nicht beide Treiber gleichzeitig ntzen kannst.
Es gibt die Möglichkeit, dass der LibUSB-Driver über den Jungo-Treiber
arbeitet, dass hab ich aber nicht zum laufen bekommen "damals".