Hallo zusammen, ich musste leider letzte Woche mein Linux-System neu installieren, da das Upgrade von opensuse 42.2 auf 42.3 kläglich scheiterte. Heute habe ich die AVR-Toolchain getestet und musste feststellen, dass es nicht funktioniert mein "Test-Projekt" zu kompilieren. Ein make im Test-Projekt zeigt, das der avr-gcc den "normalen" "as" aufruft , der kennt die Optiion "mmcu=avr2«" natürlich nicht make -------- begin -------- Using built-in specs. Reading specs from /opt/cross/lib/gcc/avr/5.4.0/device-specs/specs-avr2 COLLECT_GCC=avr-gcc COLLECT_LTO_WRAPPER=/opt/cross/libexec/gcc/avr/5.4.0/lto-wrapper avr-gcc (GCC) 5.4.0 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Target: avr Configured with: ../gcc-5.4.0/configure -v --target=avr --disable-nls --mandir=/opt/cross/share/man --infodir=/opt/cross/share/info --program-prefix=avr- --prefix=/opt/cross --with-gnu-ld --with-gnu-as --enable-languages=c,c++ --disable-libssp --with-dwarf2 Thread model: single gcc version 5.4.0 (GCC) COLLECT_GCC_OPTIONS='-v' '--version' '-specs=device-specs/specs-avr2' /opt/cross/libexec/gcc/avr/5.4.0/cc1 -quiet -v help-dummy -mn-flash=6 -mskip-bug -quiet -dumpbase help-dummy -auxbase help-dummy -version --version -o /tmp/cczecLQu.s GNU C11 (GCC) version 5.4.0 (avr) compiled by GNU C version 4.8.5, GMP version 5.1.3, MPFR version 3.1.2, MPC version 1.0.2 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 COLLECT_GCC_OPTIONS='-v' '--version' '-specs=device-specs/specs-avr2' as -v -mmcu=avr2 --version -o /tmp/ccgtYWlS.o /tmp/cczecLQu.s GNU assembler version 2.26.1 (x86_64-suse-linux) using BFD version (GNU Binutils; openSUSE Leap 42.3) 2.26.1 as: Unbekannte Option »-mmcu=avr2« Makefile:267: recipe for target 'gccversion' failed make: *** [gccversion] Error 1 Das wahr vor ein paar Jahren schon mal ein Bug. Was auch im wrapper script unter /usr/bin/avr-gcc vermerkt ist. # see https://bugzilla.suse.com/show_bug.cgi?id=767294 Dort wird der Pfad geändert so das dort /opt/cross/avr/bin an erster Stelle steht. Soweit ok, aber in der 42.3 findet sich dort kein "as" Ich habe in diesem Verzeichnis als Workaround einen symbolischen Link auf lrwxrwxrwx 1 root root 15 26. Aug 18:30 as -> /usr/bin/avr-as den avr-as im /usr/bin/acr-as gesetzt , jetzt funktioniert es. In der opensuse 42.2 liegt das richtige Binary direkt dort als "as" opensuse 42.2: monitor@linux-9j89:~/avr/atm16_2017> ls -l /opt/cross/avr/bin insgesamt 23872 -rwxr-xr-x 2 root root 727712 7. Feb 2017 ar -rwxr-xr-x 2 root root 958888 7. Feb 2017 as -rwxr-xr-x 1 root root 4466112 8. Aug 13:08 avr-gdb -rwxr-xr-x 1 root root 4466120 8. Aug 13:08 avr-gdbtui -rwxr-xr-x 1 root root 4466120 8. Aug 13:08 avr-insight -rwxr-xr-x 4 root root 1206952 7. Feb 2017 ld -rwxr-xr-x 4 root root 1206952 7. Feb 2017 ld.bfd -rwxr-xr-x 2 root root 712088 7. Feb 2017 nm -rwxr-xr-x 2 root root 891224 7. Feb 2017 objcopy -rwxr-xr-x 2 root root 1031896 7. Feb 2017 objdump -rwxr-xr-x 2 root root 727712 7. Feb 2017 ranlib -rwxr-xr-x 2 root root 493544 7. Feb 2017 readelf -rwxr-xr-x 2 root root 891224 7. Feb 2017 strip -rwxr-xr-x 1 root root 672736 8. Aug 13:08 tclsh8.4 -rwxr-xr-x 1 root root 1495392 8. Aug 13:08 wish8.4 Ich sehe das als Fehler in der 42.3 an, kann das jemand bestätigen ? @Jörg Wunsch: Falls Du mitliest, ist Dir das bekannt ? Gruß Ingo
Hi Stefan shau mal was avr-as --help ausgibt... ... ... @FILE read options from FILE AVR Assembler options: -mmcu=[avr-name] select microcontroller variant [avr-name] can be: avr1 - classic AVR core without data RAM avr2 - classic AVR core with up to 8K program memory avr25 - classic AVR core with up to 8K program memory plus the MOVW instruction avr3 - classic AVR core with up to 64K program memory avr31 - classic AVR core with up to 128K program memory avr35 - classic AVR core with up to 64K program memory plus the MOVW instruction avr4 - enhanced AVR core with up to 8K program memory avr5 - enhanced AVR core with up to 64K program memory avr51 - enhanced AVR core with up to 128K program memory avr6 - enhanced AVR core with up to 256K program memory avrxmega2 - XMEGA, > 8K, < 64K FLASH, < 64K RAM Stefan U. schrieb: > Was soll denn das für eine CPU sein? avr2 kenne ich nicht. Gruß Ingo
Ingo D. schrieb: > Hallo zusammen, > > ich musste leider letzte Woche mein Linux-System neu installieren, da > das Upgrade von opensuse 42.2 auf 42.3 kläglich scheiterte. > Heute habe ich die AVR-Toolchain getestet und musste feststellen, dass > es nicht funktioniert mein "Test-Projekt" zu kompilieren. > Ein make im Test-Projekt > zeigt, das der avr-gcc den "normalen" "as" aufruft , der kennt die > Optiion "mmcu=avr2«" natürlich nicht Eine versäbelte Toolchain. Ist denn avr-as installiert? Falls nicht, hilft evtl. die entsprechende Binutils-Version in den vom Compiler erwarteten Pfad zu installieren, also nach prefix o.ö.
Hi Johann, ja, der ist installiert,schrieb ich ja auch. Nur , wird halt der "as" aufgerufen und das ist dann der "normale" der die Option mmcu nicht kennt. Und genau diesen Fehler gab es halt schon mal https://bugzilla.suse.com/show_bug.cgi?id=767294 das ist das Ärgerliche. Anders als bei der 42.2 wurde vergessen den "avr-as" als "as" im Verezeichnis /opt/cross/avr/bin abzulegen oder ebend entsprechend zu verlinken. Gruß Ingo
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.