Forum: Compiler & IDEs avr-gcc-4.1.1 verweigert sich dem ATtiny13


von André K. (freakazoid)


Lesenswert?

Hallo,

entgegen der Doku scheint meine Toolchain den ATtiny13 nicht zu wollen
(Fatal error: unknown MCU: attiny13).
Eine iotn13.h ist aber vorhanden und wird von der io.h aus auch
'included' (sofern die Defines stimmen).

Was könnte ich übersehen haben?

gcc=4.1.1
libc=1.4.5(19:43:11 13.10.2006)
binutils=2.15 (13:20:58 26.01.2007)

gcc --target-help:
Known MCU names:
  avr1 avr2 avr3 avr4 avr5 at90s1200 attiny10 attiny11 attiny12 attiny15
  attiny28 at90s2313 at90s2323 at90s2333 at90s2343 attiny22 attiny26
  at90s4433 at90s4414 at90s4434 at90s8515 at90s8535 at90c8534 at86rf401
  atmega603 atmega103 at43usb320 at43usb355 at76c711 atmega8 atmega83
  atmega85 atmega8515 atmega8535 atmega16 atmega161 atmega162 atmega163
  atmega169 atmega32 atmega323 atmega64 atmega128 at94k
  no emulation specific options.

avr-as --target-help
Known MCU names:
  avr1 avr2 avr3 avr4 avr5 at90s1200 attiny10 attiny11 attiny12 attiny15
  attiny28 at90s2313 at90s2323 at90s2333 at90s2343 attiny22 attiny26
  at90s4433 at90s4414 at90s4434 at90s8515 at90s8535 at90c8534 at86rf401
  atmega603 atmega103 at43usb320 at43usb355 at76c711 atmega8 atmega83
  atmega85 atmega8515 atmega8535 atmega16 atmega161 atmega162 atmega163
  atmega169 atmega32 atmega323 atmega64 atmega128 at94k

Grüße,
Freakazoid

von Stefan (Gast)


Lesenswert?

> entgegen der Doku scheint meine Toolchain den ATtiny13 nicht zu wollen
                            ^^^^^^^^^^^^^^^
Welche?

von Verwirrter (Gast)


Lesenswert?

???
avr-gcc toolchain: avr-gcc, avr-binutils, avr-libc
Versionen: Hat er doch oben geschrieben.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Das soll wirklich ein GCC 4.1.1 sein?  Der muss den ATtiny13 aber 
kennen.
Der derzeitige "newdevices" patch für 4.1.1 fügt dann zusätzlich noch
allerlei neuere Controller hinzu.

Die binutils solltest du dringlichst auf 2.17 oder 2.17.1 bringen.

von André K. (freakazoid)


Lesenswert?

Hi,

hatte mir schon gedacht daß Du früher oder später drauf antwortest. 
Danke dafür ;-)

> Das soll wirklich ein GCC 4.1.1 sein?
Using built-in specs.
Target: avr
Configured with: 
/var/tmp/cross/avr/portage/gcc-4.1.1/work/gcc-4.1.1/configure 
--prefix=/usr --bindir=/usr/i686-pc-linux-gnu/avr/gcc-bin/4.1.1 
--includedir=/usr/lib/gcc/avr/4.1.1/include 
--datadir=/usr/share/gcc-data/avr/4.1.1 
--mandir=/usr/share/gcc-data/avr/4.1.1/man 
--infodir=/usr/share/gcc-data/avr/4.1.1/info 
--with-gxx-include-dir=/usr/lib/gcc/avr/4.1.1/include/g++-v4 
--host=i686-pc-linux-gnu --target=avr --build=i686-pc-linux-gnu 
--disable-altivec --disable-nls --with-system-zlib --disable-checking 
--disable-werror --disable-libunwind-exceptions --disable-libmudflap 
--disable-libssp --disable-libgcj --enable-languages=c --enable-shared 
--disable-threads --enable-__cxa_atexit
Thread model: single
gcc version 4.1.1 (Gentoo 4.1.1)
 /usr/libexec/gcc/avr/4.1.1/cc1 -quiet -v help-dummy -quiet -dumpbase 
help-dummy -auxbase help-dummy -version --target-help -o /tmp/ccPETX2m.s

Target specific options:
 [Bla, Bla]
Known MCU names:
  avr1 avr2 avr3 avr4 avr5 at90s1200 attiny10 attiny11 attiny12 attiny15
  attiny28 at90s2313 at90s2323 at90s2333 at90s2343 attiny22 attiny26
  at90s4433 at90s4414 at90s4434 at90s8515 at90s8535 at90c8534 at86rf401
  atmega603 atmega103 at43usb320 at43usb355 at76c711 atmega8 atmega83
  atmega85 atmega8515 atmega8535 atmega16 atmega161 atmega162 atmega163
  atmega169 atmega32 atmega323 atmega64 atmega128 at94k

> Der muss den ATtiny13 aber kennen.
Seh ich auch so. Deswegen ja auch 'entgegen' der Doku.

> Die binutils solltest du dringlichst auf 2.17 oder 2.17.1 bringen.
Wieso? Die 2.15 würde es doch auch tun, oder? Ich kanns ja mal versuchen 
...

Grüße,
Freakazoid

von Stefan (Gast)


Lesenswert?

Verwirrter schrieb:
> ???
> avr-gcc toolchain: avr-gcc, avr-binutils, avr-libc
> Versionen: Hat er doch oben geschrieben.

Schon klar. Ich wollte wissen, wer die Toolchain übersetzt (und damit 
konfiguriert) hat bzw. um welche Toolchain es sich genau handelt.

Du kannst z.B. die AVR GCC Toolchain mit GCC 4.1.1 für Windows z.B. in 
der WinAVR Geschmacksrichtung bekommen oder als Atman AVR oder als ...

Ich entnehme der Antwort von Andre an Jörg, dass es sich wahrscheinlich 
um eine Selbstübersetzung unter Gentoo/Linux handelt.

von André K. (freakazoid)


Lesenswert?

So. avr-binutils sind jetzt '2.17.50.0.12 20070128'

Klappt trotzdem nicht.

@Stefan:
> Ich entnehme der Antwort von Andre an Jörg, dass es sich wahrscheinlich
> um eine Selbstübersetzung unter Gentoo/Linux handelt.
Bestätigt. Bei den binutils isses ein 'emerge -uva 
=cross-avr/binutils-2.17.50.0.12' und bei dem gcc ein 'crossdev --target 
avr-unknown-linux-gnu'.
Könnte man den gcc denn so übersetzen, daß bestimmte Devices innerhalb 
eines Targets nicht unterstützt werden?

Grüße,
Freakazoid

von Rolf Magnus (Gast)


Lesenswert?

Hast du nach der Neuübersetzung der binutils auch den gcc und die libc 
nochmal neu übersetzt?

von Stefan (Gast)


Lesenswert?

> Könnte man den gcc denn so übersetzen, daß bestimmte Devices innerhalb
> eines Targets nicht unterstützt werden?

Voraub: Bin Gentoo-Nichtkenner.

Aber mich macht das 'crossdev --target avr-unknown-linux-gnu' stutzig.

In unserem Wiki (allerdings bei gcc-3.4.6!) ist da ein anderer Aufruf: 
'crossdev --target avr'.
http://www.mikrocontroller.net/articles/AVR_Eclipse#Unter_Linux:_.28Gentoo.29

Dito beim CCC-Zürich
'crossdev -t avr'
http://chaostreff-zh.tuners.ch/Geekclock_Workshop

Dito bei Arduino
'crossdev -t avr'
http://www.arduino.cc/playground/Linux/Gentoo

Deine Variante findet man aber auch. Wobei ich gemäß 
http://www.gentoo.org/proj/en/base/embedded/cross-development.xml die 
Kombination avr-unknown-linux-gnu nicht wählen würde.

Ggf. müsste man noch tiefer ins Netz reinsuchen, wie das Crosscompile 
durchzuführen ist oder einfach mal die andere Variante probieren.

Die andere Aufgabe wäre natürlich die Sourcen und die crossdev Skripte 
zu kontrollieren, ob die aus dem aktuellen Branch stammen und speziell 
ob die avr25 Architektur, die mit gcc Revision 114758 eingeführt wurde, 
bekannt ist. 
http://gcc.gnu.org/viewcvs/trunk/gcc/config/avr/avr.c?view=log Deinem 
gcc/as fehlen ja noch mehr aus dieser speziellen avr25 Architektur sowie 
die avr25 MCU selbst.

Ich finde im Netz crossdev Skripte mit CROSS_CFLAGS="-mmcu=avr2", um die 
Library zu machen, aber keine mit avr25.

von Freakazoid (Gast)


Lesenswert?

Hm. Plötzlich geht es ;-)))

Naja. Etwas habe ich schon gemacht:
crossdev --target avr --gcc 4.1.1 --binutils 2.17.50.0.12

Ein klein wenig rumgerödel (also zu kurz für eine Neuübersetzung. 
Vermutlich nur anpassen der Profile) und plötzlich ging es.

Laut dem avr-as und dem avr-gcc angeblichimmer noch kein Support, aber 
eine Beispieldatei wird mit -mmcu=attiny13 tadellos übersetzt und 
gelinkt.

Danke für die Hilfe.

Grüße,
Freakazoid

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.