Forum: Mikrocontroller und Digitale Elektronik Keine MCU Auswahl unter Eclipse Juno mit AVR Eclipse plugin


von Beamer (Gast)


Lesenswert?

Hallo Zusammen,

ich probiere seit 3 Tagen Eclipse Juno mit dem AVR-Plugin zum Laufen zu 
bekommen... und hoffe hier auf Hilfe.

Mein System:
aktuelles OpenSuse 12.2

Sun Java 1.7 java version "1.7.0_07"

avr-libc 1.71-2.13
avrdude 5.11-4.4
cross-avr-binutils 2.22-17.2.2
cross-avr-gcc 4.3.3_20100125-29.4

Eclipse C++ Juno mit
avr-eclipse-plugin von http://avr-eclipse.sourceforge.net/updatesite

Pfade:

AVR-GCC /usr/bin
GNU make /usr/bin
AVR Header Files /opt/cross/avr/avr/include
AVRDude /usr/bin

Das komische ist jetzt, das es mir nicht möglich ist eine Target CPU 
unter Project Properties -> AVR -> Target CPU auszuwählen!

MCU Type ist grau und LOAD from MCU schlägt fehl, der verbundene 
Prozessor ein Mega32 ist...

Launching /usr/bin/avrdude -cdragon_isp -Pusb -pm16
Output:
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 
0.15s
avrdude: Device signature = 0x1e9502
avrdude: Expected signature for ATMEGA16 is 1E 94 03
         Double check chip, or use -F to override this check.
avrdude done.  Thank you.
avrdude finished

Das zweite komische ist, das unter dem Reiter AVR Supported MCUs in der 
Spalte avr-gcc 4.3.3 ALLE MCUs eine rotes kreuz haben!?!

Habe aus Verzweiflung schon Eclipse Indigo mit gleichem Ergebnis 
installiert.

Ein Build schlägt fehl mit:
12:43:34 **** Incremental Build of configuration Release for project t3 
****make all
Building file: ../main.cpp
Invoking: AVR C++ Compiler
avr-g++ -Wall -Os -fpack-struct -fshort-enums -funsigned-char 
-funsigned-bitfields -fno-exceptions -mmcu=atmega16 -DF_CPU=1000000UL 
-MMD -MP -MF"main.d" -MT"main.d" -c -o "main.o" "../main.cpp"
as: unrecognized option '-mmcu=atmega16'
make: *** [main.o] Fehler 1
12:43:34 Build Finished (took 76ms)


Bin mit meinem Latein am Ende sieht aus als wenn etwas fehlt....

von Stefan++ (Gast)


Lesenswert?

Hallo,

ich kann mich vage erinnern dass ich ein ähnliches Problem hatte nicht 
weil etwas fehlte sondern weil Teile von 2 AVR-plugins vorhanden waren!

Schau mal in die Verzeichnisse "plugins" und "features" ob sich dort 
Dateien nur einer Plugin-Version befinden oder nicht 
(Versionsbezeichnung im Dateinamen z.B. 
"de.innot.avreclipse.ui_2.4.0.201203041437.jar").

von Beamer (Gast)


Lesenswert?

plugins:

org.eclipse.platform_4.2.0_826915728/plugins/de.innot.avreclipse.core.ma 
nagedbuildsystem_2.4.0.201203041437.jar
org.eclipse.platform_4.2.0_826915728/plugins/de.innot.avreclipse.core_2. 
4.0.201203041437.jar
/org.eclipse.platform_4.2.0_826915728/plugins/de.innot.avreclipse.doc_2. 
4.0.201203041437.jar
/org.eclipse.platform_4.2.0_826915728/plugins/de.innot.avreclipse.root_2 
.4.0.201203041437.jar
/org.eclipse.platform_4.2.0_826915728/plugins/de.innot.avreclipse.ui_2.4 
.0.201203041437.jar


features:

/org.eclipse.platform_4.2.0_826915728/features/de.innot.avreclipse_2.4.0 
.201203041437

Sieht für mich ok aus, oder?

von Stefan++ (Gast)


Lesenswert?

Ja, hab ich auch so !!!

von Beamer (Gast)


Lesenswert?

Hab jetzt noch etwas herausgefunden...

Juno und Indigo ändern scheinbar die Konfiguration trotz fehlender 
Auswahlliste, wenn unter

Project -> Properties -> Target Hardware -> Load from MCU

geklickt wird und anschließend Apply.
Die Konfiguration wird dann auf den richtigen atmega32 gesetzt! AVRDude 
geht dann wohl...

Beim Builden kommt dann jedoch trotzdem:

make all
Building file: ../main.cpp
Invoking: AVR C++ Compiler
avr-g++ -Wall -Os -fpack-struct -fshort-enums -funsigned-char 
-funsigned-bitfields -fno-exceptions -mmcu=atmega32 -DF_CPU=1000000UL 
-MMD -MP -MF"main.d" -MT"main.d" -c -o "main.o" "../main.cpp"

as: unrecognized option '-mmcu=atmega32'    (!!!!!!!!!!!!!!!)
make: *** [main.o] Fehler 1
13:45:51 Build Finished (took 122ms)


Habe gerade noch diesen Thread gefunden!!!
Beitrag "Falscher Assembler aufgerufen?"

Ist das das gleiche Problem?

Verstehe nur die Lösung nicht... was muss ich aus dem *.deb Paket wohin 
schieben????

Wenn ich nach diesem Thread meinen Build mit -v im Projekt-Verzeichnis 
starte kommt das hier:

avr-g++ -v -Wall -Os -fpack-struct -fshort-enums -funsigned-char 
-funsigned-bitfields -fno-exceptions -mmcu=atmega32 -DF_CPU=1000000UL 
-MMD -MP -MF"main.d" -MT"main.d" -c -o "main.o" "main.cpp"
Using built-in specs.
Target: avr
Configured with: ../gcc-4.3.3/configure -v --target=avr --disable-nls 
--mandir=/opt/cross/avr/share/man --infodir=/opt/cross/avr/share/info 
--prefix=/opt/cross/avr --with-gnu-ld --with-gnu-as 
--enable-languages=c,c++ --disable-libssp --with-dwarf2
Thread model: single
gcc version 4.3.3 (GCC)
COLLECT_GCC_OPTIONS='-v' '-Wall' '-Os' '-fpack-struct' '-fshort-enums' 
'-funsigned-char' '-funsigned-bitfields' '-fno-exceptions' 
'-mmcu=atmega32' '-DF_CPU=1000000UL' '-MMD' '-MP' '-MFmain.d' 
'-MTmain.d' '-c' '-o' 'main.o'
 /opt/cross/avr/libexec/gcc/avr/4.3.3/cc1plus -quiet -v -imultilib avr5 
-MMD main.d -MFmain.d -MP -MTmain.d -MQ main.o -DF_CPU=1000000UL 
main.cpp -quiet -dumpbase main.cpp -mmcu=atmega32 -auxbase-strip main.o 
-Os -Wall -version -fpack-struct -fshort-enums -funsigned-char 
-funsigned-bitfields -fno-exceptions -fno-rtti -fno-enforce-eh-specs 
-fno-exceptions -o /tmp/ccpRJ6CN.s
ignoring nonexistent directory 
"/opt/cross/avr/lib/gcc/avr/4.3.3/../../../../avr/include/c++/4.3.3"
ignoring nonexistent directory 
"/opt/cross/avr/lib/gcc/avr/4.3.3/../../../../avr/include/c++/4.3.3/avr/ 
avr5"
ignoring nonexistent directory 
"/opt/cross/avr/lib/gcc/avr/4.3.3/../../../../avr/include/c++/4.3.3/back 
ward"
ignoring nonexistent directory 
"/opt/cross/avr/lib/gcc/avr/4.3.3/../../../../avr/sys-include"
#include "..." search starts here:
#include <...> search starts here:
 /opt/cross/avr/lib/gcc/avr/4.3.3/include
 /opt/cross/avr/lib/gcc/avr/4.3.3/include-fixed
 /opt/cross/avr/lib/gcc/avr/4.3.3/../../../../avr/include
End of search list.
GNU C++ (GCC) version 4.3.3 (avr)
        compiled by GNU C version 4.7.1 20120723 [gcc-4_7-branch 
revision 189773], GMP version 5.0.5, MPFR version 3.1.0-p1.
GGC heuristics: --param ggc-min-expand=100 --param 
ggc-min-heapsize=131072
Compiler executable checksum: 114bbfb8d7ec59632db17f36d836c52c
COLLECT_GCC_OPTIONS='-v' '-Wall' '-Os' '-fpack-struct' '-fshort-enums' 
'-funsigned-char' '-funsigned-bitfields' '-fno-exceptions' 
'-mmcu=atmega32' '-DF_CPU=1000000UL' '-MMD' '-MP' '-MFmain.d' 
'-MTmain.d' '-c' '-o' 'main.o'
 as -v -mmcu=atmega32 -o main.o /tmp/ccpRJ6CN.s
GNU assembler version 2.22 (x86_64-suse-linux) using BFD version (GNU 
Binutils; openSUSE 12.2) 2.22
as: unrecognized option '-mmcu=atmega32'

von Beamer (Gast)


Lesenswert?

So habe jetzt nach diesem Link:

Beitrag "Falscher Assembler aufgerufen?"

als root

ar p avr-gcc-4.5.1-avrfreaks-2011-dec-29-u10.04.x64.deb data.tar.gz | 
tar xzC /

ausgeführt. Aber irgendwie habe ich weder die MCU Auswahlliste noch hat 
sich an

as: unrecognized option '-mmcu=atmega32'

etwas verändert.

Was mache ich falsch?

von Beamer (Gast)


Lesenswert?

Ein Mysterium ist geklärt!

Der aufgerufenen Assembler unter openSUSE 12.2 in

/usr/bin/as --version

meldet:

GNU assembler (GNU Binutils; openSUSE 12.2) 2.22
Copyright 2011 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms 
of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
This assembler was configured for a target of `x86_64-suse-linux'.  (<-- 
Das kann dann wohl auch nichts werden!!!!!)

Also as getauscht und jetzt wird auch compiliert ;)))


Folgende Probleme bleiben:
1.) Keine Target MCU Auswahl!
2.) Im Reiter "AVR Supported MCUs" unter avr-gcc (4.3.3 als auch 4.5.1) 
sind angeblich KEINE einzige MCU supported!
3.) Manchmal kommt eine Java Fehlermeldung die MCU Liste betreffend:
--> An internal error occurred during: "AVR MCU List". 
java.lang.NullPointerException

Wäre schön, wenn dafür noch jemand eine Erklärung hätte....

von Christian (Gast)


Lesenswert?

ich arbeite mit dem   AVR Eclipse Plugin    2.3.4.20100807PRD.
Ich hatte vor ein paar Wochen mal ein Update auf die 2.4.0 gemacht, da 
war glaube ich ein ähnliches Problem das keine MCU vorhanden war und ich 
meine auch irgendwo einen Hinweis auf den Fehler gelesen zu haben.
Bin wieder zurück auf die 2.3.4....

Christian

von Beamer (Gast)


Lesenswert?

Also habe jetzt noch einmal ~/.eclipse gelöscht und erst Indigo und dann 
Juno installiert. Anschließend dann über ADD das Paket

avreclipse-p2-repository-2.3.4.20120807PRD.zip

installiert.

Weder bei Juno noch bei Indigo habe ich im Anschluss eine MCU Auswahl. 
Stattdessen funktionieren dann der AVR Device Explorer nicht mehr.
Und unter "AVR Supported MCUs" haben immernoch alle ein rotes Kreuz!

Für weitere Anregungen sehr dankbar....

von Beamer (Gast)


Lesenswert?

Also jetzt gehts ;)))

Das OpenSuse Paket für den AVR ist wohl echt Mist...

Nach dem ich noch einmal alle Pfade auf /usr/local/avr/ umgebogen habe, 
wo die 4.5.1 Toolchain (http://www.wrightflyer.co.uk/avr-gcc/) liegt 
musste ich noch diverse libs umlinken!!!

sudo ln -sfv /usr/lib64/libbfd-2.22.so 
/usr/lib64/libbfd-2.20.1-system.20100303.so
sudo ln -sfv /usr/lib64/libmpfr.so.4 /usr/lib64/libmpfr.so.1
sudo ln -sfv /usr/lib64/libgmp.so.10.0.5 /usr/lib64/libgmp.so.3

Und siehe da jetzt geht es - war ganz einfach 8)...
und hat kaum 4 Tage gedauert... vielleicht hilfts noch jemanden, der 
ähnliche Problem hat/kriegt.

Isch habe fertisch!

von Thomas H. (innot)


Lesenswert?

Hi,

das Problem mit den fehlenden MCUs liegt an einer Änderung des avr-gcc. 
Das AVR Eclipse Plugin benutzt den Befehl "avr-gcc --target-help" um die 
Liste der Unterstützten MCUs zu bekommen. Bei neueren* avr-gcc Versionen 
enthält der Output aber nicht mehr diese Liste. Statt dessen muss jetzt 
"avr-gcc --target-help -mlist-devices" genutzt werden, was aber im 
Plugin noch nicht umgesetzt ist.

* "neueren" ist hier etwas relativ, es scheint weniger von der GCC 
Version abzuhängen als vielmehr davon von wem die Version stammt. 
Möglicherweise ist das unterschiedliche Verhalten von avr-gcc von 
irgendwelchen Patches oder Kompilier-Optionen abhängig.

Eigentlich wäre es nur eine kleine Änderung des Plugins, aber ich habe 
im Moment weder Zeit noch so richtig Lust an dem Plugin zu arbeiten. 
Aber dafür ist es ja Open Source :-) Wer will kann sich gerne an der 
Fehlerbehebung versuchen. Patches nehme ich gerne entgegen.


Thomas

P.S. Abgesehen von den fehlenden MCUs hat das Plugin unter Juno 
funktioniert? Bei mir geht es nicht sondern erzeugt beim Aufruf der 
Properties nur "NullPointerExceptions".

von Beamer (Gast)


Lesenswert?

Hi Thomas,

nein, jetzt ist wirklich alles schick ;)
OS 12.2 x64 und Juno C++ mit Plugin 2.4.0 (siehe oben)

Unter OpenSuse ist halt nur wichtig, die 4.5.1 Toolchain zu benutzen und 
Pfade und Libs anzupassen (wie oben beschrieben)... Ach ja und den 
falschen Assembler auszutauschen der nur ("This assembler was configured 
for a target of `x86_64-suse-linux'!") x86_64 output erzeugt und demnach 
auch keine avr mcu option kennt ;))

MCUs werden jetzt auch wirklich angezeigt! Sowohl in der "AVR Supported 
MCU" Liste (keine roten Kreuze mehr) als auch bei der Target MCU Auswahl 
unter AVRDude.
Auslesen der MCU ging wohlgemerkt immer - auch mit der alten avr-gcc 
4.3.3. Nur leider wurde dann keine MCU angezeigt. ABER: Ein beherztes 
"Apply" übernahm den trotzdem richtig erkannten Prozessor... demnach 
ging auch das builden.

Das jetzt auch die kosmetische Seite funktioniert freut mich natürlich 
sehr...

Diese "NullPointerExceptions" habe ich danach nur noch (bis jetzt!) ein 
einziges Mal gesehen. Dann betrafen sie aber auch gleich den Device 
Explorer und die MCU List.


Danke für das tolle Plugin - nimmt einem wirklich eine Menge Arbeit ab 
;)

von Windows for ever (Gast)


Lesenswert?

Ich liebe diese Linux-Threads, die mit "... probiere seit 3 Tagen ...".

von Beamer (Gast)


Lesenswert?

Deshalb hast Du auch so viel Zeit, um derartig wichtige Kommentare zu 
schreiben ;)

von Peter (Gast)


Lesenswert?

Hallo zusammen,

gibt es schon irgendetwas neues bzgl. eine möglichen Updates bzw. eines 
Patches? Ich habe neulich auf den neusten AVR GCC (4.6.2 aus der AVR 
Toolchain) gewechselt und habe logischerweise genau das gleiche mit der 
Controllerauswahl, was nicht weiter tragisch wäre, da das Auslesen des 
Controllers ja funktioniert. Allerdings hatte ich unter Eclipse Indigo 
immer schon mal das Problem, das die Symbolik z.B. DDRB etc. nicht 
erkannt wird und somit als Fehler dargestellt wird (alles rot 
unterstrichen), das eigentliche compilieren funktioniert zwar, aber der 
ganze Code ist im Prinzip rot unterstrichen. Dies konnte man mit dem 
alten GCC ganz einfach umgehen, indem man kurz einen anderen Controller 
auswählt, apply drückt und dann wieder den gewünschten auswählt. Da dies 
wegen der Controllerauswahl aber nicht mehr funktioniert ist das Plugin 
mit dem aktuellen GCC leider nicht mehr zu gebrauchen...

Vielen Dank

von Jan (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

wir verwenden Eclipse Juno + 2.4 Avr Eclipse Plugin  mit der Atmel AVR 
Toolchain 3.4.1.

Dazu haben wir zunächst

avr-gcc --target-help -mlist-devices

die List der devices kopiert.

Damit die Mcus erkannt werden, haben wir den avr-gcc in avr-gcc-old 
umbenannt und an dessen Stelle das angehänge bash script eingefügt.

Dann noch die Pfade in eclipse gesetzt (mit "killall find" kann man die 
endlose automatische suche abbrechen).

Ist nicht schön, aber es funktioniert.

von Thomas (Gast)


Lesenswert?

Gibt es dafür vielleicht auch eine Windows Lösung? Ich wollte auch 
endlich mal von dem 4.3.3 AVR-GCC weg und hatte die neuste Toolchain 
runtergeladen, bin aber natürlich auch auf das Problem mit den nicht 
angezeigten MCUs gestoßen und hab es bis jetzt nicht hinbekommen das 
Problem zu lösen... ;(

von Paul P. (p1234321)


Lesenswert?

Vielen Dank für den Beitrag!

Hat bei mir unter MACOSX super funktioniert auch mit eclipse kepler!

MFG

p

von Peter2 (Gast)


Lesenswert?

Mit dem Kommando 'avr-as -mlist-devices' bekommt man die MCU Liste

Bekannte MCU-Namen:
  avr1 avr2 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avr7 avrxmega1
  avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7 avrtiny
  at90s1200 ...

Ubuntu 14.10
avr-as 2.24
avr-gcc 4.8.1

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.