-         

Ergebnis 1 bis 3 von 3

Thema: avr-gcc unter Win32 bzw. Linux

  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801

    avr-gcc unter Win32 bzw. Linux

    Anzeige

    Momentan verwende ich den avr-gcc 3.4.6

    Unter Windows bzw. Linux unterstützt er jedoch unterschiedliche AVRs, so daß ich zeimlich verwirrt darüber bin.

    Zitat Zitat von WinAVR avr-gcc 3.4.6
    > avr-gcc -v

    Reading specs from e:/WinAVR-20060421/lib/gcc/avr/3.4.6/specs
    Configured with: ../gcc-3.4.6/configure --prefix=/c/WinAVR --target=avr --enable
    -languages=c,c++ --with-dwarf2 --enable-win32-registry=WinAVR --disable-nls
    Thread model: single
    GCC version 3.4.6

    > 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
    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
    Zitat Zitat von Linux avr-gcc 3.4.6
    > avr-gcc -v

    Reading specs from /local/own/atmel/avr/lib/gcc/avr/3.4.6/specs
    Configured with: ../gcc-3.4.6/configure --target=avr --prefix=/local/own/atmel/avr --disable-nls --enable-language=c,c++
    Thread model: single
    GCC version 3.4.6

    > 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.
    Wie leicht zu sehen ist unerscheiden sich beide deutlich bei den unterstützten AVRs, sind aber beide Version 3.4.6

    Weiß da jemand näheres oder ne Idee wo was schiefgeht? Was der Linux-gcc sagt stimmt jedenfalls mit den Quellen überein (gcc-core-3.4.6)
    Disclaimer: none. Sue me.

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,
    Welche AVRs unterstützt werden liegt doch an der Version der avr-binutils, nicht am GCC, oder !?

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    Ja, auch...stimmt

    Hab mir die avr-binutils 2.16.1 besorgt und die patches von WinAVR (avr-size.patch und binutils-2.16-newdevices.patch) eingespielt, ich hoffe das passt alles zusammen...

    Danke nochmal
    Disclaimer: none. Sue me.

Berechtigungen

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