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
Gast
#5123680
Was soll denn das für eine CPU sein? avr2 kenne ich nicht.
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
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.