Braucht den Tmega168 niemand? Es gibt doch sicher jemand, der Code unter Linux für den Tmega168 compiliert, oder?
Hallo Zusammen
Ich möchte gerne Code für den ATmega168 compilieren.
Ich benutze zur Zeit:
binutils-2.15
gcc-3.42
avr-libc-1.2.3
und arbeite mit eclipse unter Linux.
Wenn ich mit "-mmcu=atmega168" compilieren möchte bringt der compiler folgendes:
Ich benutze die Avrlibc nicht direkt. Die ist so hässlich strukturiert und konzeptionell unschön, dass ich mir die relevaten Teile auskopiert habe und die Haederfiles für die IO-Definitionen selber verwalte.Code:unknown MCU `atmega168' specified Known MCU names: AVR2 ...
Von was brauche ich eine neue Version? Respektive von was hängt es ab, für welche Typen der avr-gcc code compilieren kann?
Vielen Dank für eure Hilfe!
cumi
Braucht den Tmega168 niemand? Es gibt doch sicher jemand, der Code unter Linux für den Tmega168 compiliert, oder?
Die unterstützten Derivate u.a. bekommst du gelistet mit
avr-gcc --target-help
Disclaimer: none. Sue me.
vielen dank sprinter.
Dort wird er nicht angezeigt.
Gibt es eine neue Version, die den atmega168 unterstüzt?
Oder gibt es ev einen anderen, für den man den code gleich compilieren kann?
Ich verwende zurzeigt die Version 3.4.2 vom avr-gcc. Diese unterstüzt folgende AVRs:
cumiCode: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.
Der tut's doch. Erfahrungen mit ATmega168 etc hab ich keine.Zitat von avr-gcc 3.4.5
Disclaimer: none. Sue me.
hmm, bist du sicher, dass das der 3.4.5 ist?
# avr-gcc --version
avr-gcc (GCC) 3.4.5Ich versuche mal noch einen noch neueren. Wobei den neusten kann ich nicht compilieren. Gibt es irgendwo eine Liste welche Version was kann?# avr-gcc --target-help
Target specific options:
-msize Output instruction sizes to the asm file
-mshort-calls Use rjmp/rcall (limited range) on >8K devices
-mno-tablejump Do not generate tablejump insns
-mtiny-stack Change only the low 8 bits of the stack pointer
-mcall-prologues Use subroutines for function prologue/epilogue
-mno-interrupts Change the stack pointer without disabling interrupts
-mint8 Assume int to be 8 bit integer
-mmcu= Specify the MCU name
-minit-stack= Specify the initial stack address
There are undocumented target specific options as well.
AVR options:
-mmcu=[avr-name] select microcontroller variant
[avr-name] can be:
AVR1 - AT90S1200, ATtiny1x, ATtiny28
AVR2 - AT90S2xxx, AT90S4xxx, AT90S8xxx, ATtiny22
AVR3 - ATmega103, ATmega603
AVR4 - ATmega83, ATmega85
AVR5 - ATmega161, ATmega163, ATmega32, AT94K
or immediate microcontroller name.
-mall-opcodes accept all AVR opcodes, even if not supported by MCU
-mno-skip-bug disable warnings for skipping two-word instructions
(default for AVR4, AVR5)
-mno-wrap reject rjmp/rcall instructions with 8K wrap-around
(default for AVR3, AVR5)
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.
Hallo,
und da ist der M168 mit dabei.Zitat von avr-gcc --version
Zitat von avr-gcc --target-help
danke für deine Antwort!
hmm, irgendwie strub.
Naja dann compilier ich mal noch dieser versoin. oder hängt dies noch von der avrlibc (oder wie die genau heisst) ab?
so, also jetzt habe ich den 3.4.6 folgendermassen compiliert. also zuers habe ich mir die binutils gebaut:
dann der gcc:wget ftp://ftp.gnu.org/gnu/binutils/binutils-2.15.tar.bz2
tar -xjvf binutils-2.15.tar.bz2
cd binutils-2.15/
mkdir obj-avr
cd obj-avr
../configure --target=avr --prefix=/usr/local/avr --disable-nls
make
make install
cd ../../
nun die ausgabe von avr-gcc --target-help:wget ftp://ftp.gnu.org/gnu/gcc/gcc-3.4.2/...-3.4.6.tar.bz2
tar -jxvf gcc-core-3.4.6.tar.bz2
cd gcc-3.4.2
mkdir obj-avr
cd obj-avr
../configure --target=avr --prefix=/usr/local/avr --disable-nls --enable-language=c
make
make install
cd ../../
und die version:Zitat von avr-gcc --target-help
jemand eine Idee, was ich falsch mache?Zitat von avr-gcc --version
Hallo,
Zitat von http://www.gnu.org/software/binutils/
die hab ich auch, incl. M168.
PS: weiß allerdings nicht obs an dem liegt !
Edit:
jetzt hab ich gefunden, weil binutils-2.16 auch schon ein Jahr alt ist, kam mir das doch Spanisch vor.
Also es gibt da patches für binutil und gcc, die die neuen Devices mit einbauen. Hab den richtigen Link noch nicht gefunden, im moment bin ich bis hierher gekommen:
http://savannah.nongnu.org/patch/ind...=2923#attached
Lesezeichen