www.mikrocontroller.net

Forum: Compiler & IDEs AVR debuggen mit Eclipse und AVaRICE unter Windows


Autor: Peter K. (nnamdi)
Datum:

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

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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

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

Autor: Peter K. (nnamdi)
Datum:

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

Autor: 900ss (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welches Betriebssystem nutzt du?

Autor: Peter K. (nnamdi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Windows XP

Autor: 900ss D. (900ss)
Datum:

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

Autor: Peter K. (Gast)
Datum:

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

Autor: 900ss D. (900ss)
Datum:

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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

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

Autor: Peter K. (nnamdi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke, es läuft bei mir nun auch. War tatsächlich der 
Kommunikations-Parameter im Aufruf.

Gruß
Peter

Autor: safexy (Gast)
Datum:

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

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das liegt daran, daß du alte Threads kaperst.

Autor: 900ss D. (900ss)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
safexy schrieb:
> Hat jemand eine Ahnung was ich angeben muss?

Ja, USB.

Autor: safexy (Gast)
Datum:

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

Autor: safexy (Gast)
Datum:

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

Autor: 900ss D. (900ss)
Datum:

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

Autor: 900ss D. (900ss)
Datum:

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

AVR Studio can install and use the USB drivers from Jungo (which is included
as part of the AVR Studio installation). However, the Jungo drivers and the
LibUSB-Win32 drivers are mutually exclusive; if one set is installed the
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

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.