Forum: Compiler & IDEs Problem mit Eclipse


von Pete K. (pete77)


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!

von Bernd K. (prof7bit)


Lesenswert?

Pete K. schrieb:
> Ein manueller Aufruf von avrdude liefert:
> $ avrdude -p m168 -P /dev/ttyUSB0 -cavrispv2

In der Konsole von Eclipse wird angezeigt mit welcher Kommandozeile 
Eclipse versucht den avrdude zu starten. Zeig mal was da steht, bzw 
finde den Unterschied.

: Bearbeitet durch User
von Pete K. (pete77)


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

: Bearbeitet durch User
von Bernd K. (prof7bit)


Lesenswert?

Oder starte Eclipse mal neu, evtl ist noch ein vorheriger 
Programmierversuch im Hintergrund am Laufen (sieht man auch unten rechts 
in der Statusleiste von Eclipse wenn es noch auf irgendeinem nicht 
abgeschlossenen oder hängengebliebenen Vorgang herumkaut)

: Bearbeitet durch User
von Pete K. (pete77)


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

von pirx (Gast)


Lesenswert?

Wenn man den Programmer abzieht und wieder ansteckt, springt er einen 
Port weiter. Probier's mal mit /dev/ttyUSB1.

Nach dem Neustarten des Rechners, geht's wieder bei /dev/ttyUSB0 los ;-)

von Bernd K. (prof7bit)


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.

: Bearbeitet durch User
von Pete K. (pete77)


Angehängte Dateien:

Lesenswert?

Vielen Dank für die Hilfe. Jetzt komme ich ein Stück weiter, allerdings 
kommt eine nächste Fehlermedung (siehe Screenshot).

Ich kann den MCU-Type auch nicht manuell setzen, die Combobox zur 
Auswahl ist ausgegraut.

: Bearbeitet durch User
von Bernd K. (prof7bit)


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.

von Pete K. (pete77)


Lesenswert?

Wo bekomme ich die Konsolenausgabe her? Vorhin habe ich einfach eine 
Übertragung gestartet, das geht jetzt nicht.
Und in der Build-Console stehen keine AVR Details.

Ich habe keinen Schalter für die AVR-Console gefunden.

von Bernd K. (prof7bit)


Lesenswert?

Pete K. schrieb:
> Ich kann den MCU-Type auch nicht manuell setzen, die Combobox zur
> Auswahl ist ausgegraut.

Da war doch neulich irgendwas, ich hab über das selbe Problem (Plugin 
hat keinen einzigen Controller in der Liste) in einem anderen Thread 
gelesen. Irgendwer hier wird sich erinnern können.

von Bernd K. (prof7bit)


Lesenswert?

Pete K. schrieb:
> Wo bekomme ich die Konsolenausgabe her?

Im Konsolentab von Eclipse (das hat auch ein kleines Dropdown oben, 
zweites von rechts bei dem man zwischen verschiedenen Konsolen 
umschalten kann (build console, gdb, etc.), eine davon ist AVRDude)

von Pete K. (pete77)


Lesenswert?

Hmm, bin ich zu blöd das zu finden? Benutze CDT Version: 3.8.1.
avr-gcc ist 4.9.2
avrdude ist 6.3
avr plugin ist 2.4.2

: Bearbeitet durch User
von Bernd K. (prof7bit)


Angehängte Dateien:

Lesenswert?

In den Screenshot siehst Du wo man die Konsole auswählt. In meinem 
Beispiel habe ich einen Upload auf den Arduino gestartet aber der 
Arduino war nicht angeschlossen. Grün zu sehen ist die 
Orginalfehlermeldung vom avrdude.

von Bernd K. (prof7bit)


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.

von Pete K. (pete77)


Angehängte Dateien:

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?

: Bearbeitet durch User
von Pete K. (pete77)


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!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.