AVR debuggen mit Eclipse und AVaRICE unter Windows

OP #1597993
Lesenswert?

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
Moderator Persönliche Seite #1598435
Lesenswert?

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.
OP #1605158
Lesenswert?

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
#1611209
Lesenswert?

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.
Gast #1611272
Lesenswert?

> 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
#1615783
Lesenswert?

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:\....>
Gast #1623292
Lesenswert?

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
Gast #1623527
Lesenswert?

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
#1624011
Lesenswert?

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.
#1624558
Lesenswert?

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".

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren