- fchao-Sinus-Wechselrichter AliExpress         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: code für ATmega168 compilieren

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.10.2005
    Ort
    Zürich
    Beiträge
    117

    code für ATmega168 compilieren

    Anzeige

    Powerstation Test
    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:
    Code:
    unknown MCU `atmega168' specified
    Known MCU names:
       AVR2
    ...
    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.

    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

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.10.2005
    Ort
    Zürich
    Beiträge
    117
    Braucht den Tmega168 niemand? Es gibt doch sicher jemand, der Code unter Linux für den Tmega168 compiliert, oder?

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Die unterstützten Derivate u.a. bekommst du gelistet mit

    avr-gcc --target-help
    Disclaimer: none. Sue me.

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.10.2005
    Ort
    Zürich
    Beiträge
    117
    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:
    Code:
    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.
    cumi

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Zitat Zitat von avr-gcc 3.4.5
    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
    attiny13 attiny2313 attiny261 attiny461 attiny861 attiny24 attiny44
    attiny84 attiny25 attiny45 attiny85 atmega603 atmega103 at43usb320
    at43usb355 at76c711 atmega48 atmega8 atmega83 atmega85 atmega88
    atmega8515 atmega8535 at90pwm2 at90pwm3 atmega16 atmega161 atmega162
    atmega163 atmega164 atmega165 atmega168 atmega169 atmega32 atmega323
    atmega324 atmega325 atmega329 atmega3250 atmega3290 atmega64 atmega640
    atmega644 atmega128 atmega1280 atmega1281 atmega645 atmega649 atmega6450
    atmega6490 at90can32 at90can64 at90can128 at94k
    Der tut's doch. Erfahrungen mit ATmega168 etc hab ich keine.
    Disclaimer: none. Sue me.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.10.2005
    Ort
    Zürich
    Beiträge
    117
    hmm, bist du sicher, dass das der 3.4.5 ist?

    # avr-gcc --version
    avr-gcc (GCC) 3.4.5
    # 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.
    Ich versuche mal noch einen noch neueren. Wobei den neusten kann ich nicht compilieren. Gibt es irgendwo eine Liste welche Version was kann?

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,

    Zitat Zitat von avr-gcc --version
    avr-gcc (GCC) 3.4.6
    und da ist der M168 mit dabei.

    Zitat Zitat von avr-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
    attiny13 attiny2313 attiny261 attiny461 attiny861 attiny24 attiny44
    attiny84 attiny25 attiny45 attiny85 atmega603 atmega103 at43usb320
    at43usb355 at76c711 atmega48 atmega8 atmega83 atmega85 atmega88
    atmega8515 atmega8535 at90pwm2 at90pwm3 atmega16 atmega161 atmega162
    atmega163 atmega164p atmega165 atmega165p atmega168 atmega169 atmega169p
    atmega32 atmega323 atmega324p atmega325 atmega329 atmega3250 atmega3290
    atmega406 atmega64 atmega640 atmega644 atmega644p atmega128 atmega1280
    atmega1281 atmega645 atmega649 atmega6450 atmega6490 at90can32 at90can64
    at90can128 at90usb646 at90usb647 at90usb1286 at90usb1287 at94k

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.10.2005
    Ort
    Zürich
    Beiträge
    117
    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?

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.10.2005
    Ort
    Zürich
    Beiträge
    117
    so, also jetzt habe ich den 3.4.6 folgendermassen compiliert. also zuers habe ich mir die binutils gebaut:
    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 ../../
    dann der gcc:
    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 ../../
    nun die ausgabe von avr-gcc --target-help:
    Zitat Zitat von avr-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.
    und die version:
    Zitat Zitat von avr-gcc --version
    avr-gcc (GCC) 3.4.6
    jemand eine Idee, was ich falsch mache?

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,

    Zitat Zitat von http://www.gnu.org/software/binutils/
    The latest release of GNU binutils is 2.16.1.


    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

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen