Problem mit Eclipse

OP #4893561
Lesenswert?

Hallo,
ich habe mir Eclipse und das AVR-Plugin nebst Toolchain heruntergeladen 
und es funktioniert auch fast alles. Alles unter Ubuntu 16.04.

Leider kann ich kein Target einstellen, da der Aufruf von avrdude immer 
mit der Meldung "The port "/dev/ttyUSB0" for the Programmer "avrisp2" is 
blocked.

dmesg liefert:
540.726014] usb 3-2: new full-speed USB device number 3 using xhci_hcd
[  540.871166] usb 3-2: New USB device found, idVendor=0403, 
idProduct=6001
[  540.871169] usb 3-2: New USB device strings: Mfr=1, Product=2, 
SerialNumber=3
[  540.871170] usb 3-2: Product:  USB SERIAL CONVERTER
[  540.873971] ftdi_sio 3-2:1.0: FTDI USB Serial Device converter 
detected
[  540.874374] usb 3-2: FTDI USB Serial Device converter now attached to 
ttyUSB0


/dev sieht so aus:
crw-rw---- 1 root dialout 188,  0 Feb  7 15:45 /dev/ttyUSB0

Mein User ist auch der Gruppe dialout zugeordnet.

Ein manueller Aufruf von avrdude liefert:
$ avrdude -p m168 -P /dev/ttyUSB0 -cavrispv2
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 
0.01s
avrdude: Device signature = 0x1e9406 (probably m168)
avrdude: safemode: Fuses OK (E:F9, H:DF, L:E2)
avrdude done.  Thank you.


Ich möchte Eclipse nicht unter root starten. Hat jemand vielleicht noch 
einen Tipp? Besten Dank!
OP #4893671
Lesenswert?

Da steht drin:

Launching /usr/bin/avrdude -pm16 -cavrisp2 -P /dev/ttyUSB0 -v 
-Uflash:w:OLED.hex:a -Ueeprom:w:OLED.eep:a
Output:

avrdude: Version 6.3
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/etc/avrdude.conf"
         User configuration file is "/home/piet/.avrduderc"
         User configuration file does not exist or is not a regular 
file, skipping

         Using Port                    :  /dev/ttyUSB0
         Using Programmer              : avrisp2
avrdude: ser_open(): can't open device " /dev/ttyUSB0": No such file or 
directory

avrdude done.  Thank you.

avrdude execution aborted
OP #4893679
Lesenswert?

Ja, habe schon ein Neustart gemacht. Hat nichts geholfen.

Prozesse sind wie folgt:
piet      2992  1695  0 15:47 ?        00:00:00 /usr/lib/eclipse/eclipse
piet      3010  2992  2 15:47 ?        00:04:08 /usr/bin/java -Xms40m 
-Xmx384m 
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=/usr/share/eclipse 
/dropins  -XX:MaxPermSize=256m -jar 
/usr/lib/eclipse//plugins/org.eclipse.equinox.launcher_1.3.0.dist.jar 
-os linux -ws gtk -arch x86_64 -showsplash 
/usr/lib/eclipse//plugins/org.eclipse.platform_3.8.1.dist/splash.bmp 
-launcher /usr/lib/eclipse/eclipse -name Eclipse --launcher.library 
/usr/lib/eclipse//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_ 
1.1.200.dist/eclipse_1503.so  -startup 
/usr/lib/eclipse//plugins/org.eclipse.equinox.launcher_1.3.0.dist.jar 
--launcher.overrideVmargs -exitdata 4b8009 -vm /usr/bin/java -vmargs 
-Xms40m -Xmx384m 
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=/usr/share/eclipse 
/dropins  -XX:MaxPermSize=256m -jar 
/usr/lib/eclipse//plugins/org.eclipse.equinox.launcher_1.3.0.dist.jar
#4893692
Lesenswert?

Pete K. schrieb:
> " /dev/ttyUSB0": No such file or directory

Wo kommt das Leerzeichen her?
1
         Using Port                    :  /dev/ttyUSB0
2
         Using Programmer              : avrisp2
3
avrdude: ser_open(): can't open device " /dev/ttyUSB0": No such file or

In der "Using Port"-Zeile scheint auch eins zu sein.


[Edit:]

Anscheinend packt das AVR-Plugin das -P und das /dev/ttyUSB0 beim 
Starten des Prozesses in das selbe argv Element (etwa so als hätte man 
in einer Shell "-P /dev/ttyUSB0" geschrieben) und das was das Plugin 
dann in der Konsole ausgibt was angeblich übergeben wurde hat nichts 
mehr mit dem zu tun was eine Shell mit dem Leerzeichen gemacht hätte 
(die würde zwei Argumente draus machen).

Ich kann Deinen Fehler reproduzieren wenn ich in den 
avrdude-Einstellungen von Eclipse vor dem Devicenamen ein Leerzeichen 
einfüge.

Die Fehlermeldung in dem Popup (von wegen blockiert) ist auch 
irreführend und aus der Luft gesaugt und hat nichts mit der 
Fehlermeldung zu tun die avrdude eigentlich wirklich liefert.

[Edit2:]

Ganz unten im Fehler-Popup steht der wahre Grund (no such file) das 
hättest Du lesen und hier komplett zitieren sollen, nicht nur den ersten 
Satz. Merke: Immer vollständige Fehlermeldungen. Immer alles zuende 
lesen.
#4893774
Lesenswert?

Jemand anders muss übernehmen, ich hab grad nichts funktionsfähiges zur 
Hand das ich bei mir mal anschließen könnte zwecks Vergleich. Aber auch 
hier wieder wäre es interessant zusätzlich auch die komplette 
Konsolenausgabe von avrdude zu sehen die zu diesem Fehler führt, evtl 
versteckt sich da noch ein Hinweis.
#4893814
Lesenswert?

Aber das Problem daß die MCU-Auswahlbox bei Dir leer ist (da müsste eine 
lange Liste von AVRs sein) deutet auf den anderen Fehler hin der hier 
letztens mal diskutiert wurde, ich glaube ein möglicher Fix war 
irgendeine gepatchte Version den Plugins zu nehmen.

Erstaunlicherweise habe ich das Problem noch nie gehabt, obwohl ich das 
ganz normale Plugin in der offiziellen Version habe.
OP #4894110
Lesenswert?

Habe das jetzt mal mit dem Plugin aus 
Beitrag "Helpthread zum Wikiartikel AVR Eclipse" probiert, geht auch nicht.

Kann es sein, dass der avr-gcc hier Probleme macht? Siehe Screenshot 
anbei.

Compilieren und Linken ist aber kein Problem. (Versionen siehe oben)

Habe jetzt auf die aktuellste Neon Version von Eclipse upgedated und im 
Window->Preferences Window fehlt wohl eine Datei mit den AVR Typen.

Kennt jemand diese Datei und weiss, wie diese aussehen soll?
Angehängte Dateien:
OP #4894168
Lesenswert?

OK, jetzt bekomme ich die MCU-Liste angezeigt. Ich habe nach der 
aktuellen Neon Version 4.6.2 das Plugin 2.4.2 manuell eingespielt und 
nun geht es.

Nachtrag: Wenn ich auf "Load from MCU" klicke, dann bekomme ich diesen 
Output:
1
Launching /usr/bin/avrdude -cavrisp2 -P/dev/ttyUSB0 -px128a3 
2
Output:
3

4
avrdude: stk500v2_program_enable(): program enable instruction not defined for part "ATxmega128A3"
5
avrdude: initialization failed, rc=-1
6
         Double check connections and try again, or use -F to override
7
         this check.
8

9

10
avrdude done.  Thank you.
11

12
avrdude finished

Eigentlich müsste es hier -p? heissen. Klarer Bug!

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