Anzeige:
Ergebnis 1 bis 10 von 10

Thema: AVR-GCC unter Linux

  1. #1
    Root
    Registriert seit
    Dec 2001
    Ort
    /home/dandanger
    Beiträge
    70

    AVR-GCC unter Linux

    Hallo,
    ich möchte meine ATMEL-Microcontroller gerne auch unter Linux Programmieren.
    Da ich ein C-Fan bin, würde ich gerne den AVR-GCC Benutzen, da ich das Teil schon aus Windows-Zeiten kenne (z.B. von http://www.avrfreaks.net , http://www.mikrocontroller.net )

    Genau dazu hab' ich da mal ne' kleine Frage zum AVR-GCC unter Linux :

    Das AVR-GCC Release von : http://savannah.nongnu.org/download/avr-libc/released/ sieht mir stark nach dem "Original" GCC aus.


    Meine Frage : Kann man mit dem "normalen" gcc (der ja jeder Distri Beiliegt) auch AVR-Programme Kompilieren ??
    Kennt jemand eine gute(!) Installationsanleitung für den AVR-GCC unter Linux ???

    Neugierige Grüsse
    DanDanger
    ------------------------------------
    DanDanger

  2. #2
    Registrierter Benutzer
    Registriert seit
    Dec 2001
    Ort
    Berlin
    Beiträge
    178
    Hallo,

    Du musst Dir schon noch einen für AVR's kompilieren / installieren . Du hast dann quasi einen für avr und einen für den restlichen Kram. Ich glaub nicht das der Deiner Distri beiliegt.
    Eine Anleitung zum installieren findest Du hier:
    http://www.linuxfocus.org/Deutsch/Ma...ticle231.shtml

    Grüsse

  3. #3
    oClock
    Gast
    Hi,

    hier findest du eine gute Anleitung:

    http://savannah.nongnu.org/download/...all_tools.html

    (Hab ich auch vor ein paar Monaten installiert und geht so wie dort beschrieben problemlos)

    Gruß,
    oC

  4. #4
    G400
    Gast
    Ich schieb das mal hoch

    Hat jemand noch nen Link oder Tipps für die Installation von AVR GCC unter Suse 9.0.

    Bei http://savannah.nongnu.org/ gibts nix mehr und die Anleitung bei
    http://www.linuxfocus.org/Deutsch/Ma...ticle231.shtml
    funktionier leider nicht so ganz

  5. #5
    Root
    Registriert seit
    Dec 2001
    Ort
    /home/dandanger
    Beiträge
    70
    Hi,

    hmm, sieht wirklich so aus, als ob's http://savannah.nongnu.org/ nicht mehr gibt.

    Ist aber nicht soo das Problem, da das Compilieren eigentlich ganz einfach geht :

    1)
    Lade Dir den Original gcc (z.B. von http://gcc.gnu.org/ ) herunter.
    Aktuell ist z.Z. Ver. 3.3.2

    2)
    Log Dich (z.B. per "su") als "root" ein, und lege in /usr/local/bin ein neues avr-gcc Verzeichniss an ("mkdir /usr/local/bin/avr-gcc")

    3)
    Entpacke den Original gcc (aus Schritt 1) in irgendein Verzeichniss
    und starte das Configure-Script mit
    "configure --target=avr --prefix=/usr/local/bin/avr-gcc --disable-nls --enable-language=c"

    4) nach einem make und (als root) make install musst du nur noch
    /usr/local/bin/avr-gcc/bin in deine SHELL-Veriablen übernehmen.

    Das ganze funzu eigentlich genauso, wie auf
    http://www.linuxfocus.org/Deutsch/Ma...ticle231.shtml
    beschrieben.

    Wenn irgendwas nicht so funzt, wie es sollte, dann beschreib mal genauer,
    was nicht funzt (Probleme beim Compilieren, beim configure-Script. ect.)

    Gruss
    DanDanger
    Geändert von DanDanger (09.12.03 um 13:39 Uhr)
    ------------------------------------
    DanDanger

  6. #6
    G400
    Gast
    Der Compiler geht jetzt soweit... nur hab ich noch 2 Probleme:

    Wie krieg ichs hin, dass er mir das Programm für den ATmega 8 kompliert
    und wie krieg ich das Programm in den AVR außer mit UISP.

  7. #7
    Moderat0r Avatar von geronet
    Registriert seit
    May 2001
    Ort
    Grainau
    Beiträge
    6.099
    Ponyprog nütze ich sehr gern, ist ein guter Programmer.

    Kompilieren kannst du es mit einem simplen Makefile, musst es nur anpassen:

    Code:
    MCU=atmega16
    CC=avr-gcc
    OBJCOPY=avr-objcopy
    # optimize for size:
    CFLAGS=-g -mmcu=$(MCU) -Wall -Wstrict-prototypes -Os -mcall-prologues
    #-------------------
    all: binuhr.hex
    #-------------------
    binuhr.hex : binuhr.out
            $(OBJCOPY) -R .eeprom -O ihex binuhr.out binuhr.hex
    binuhr.out : binuhr.o
            $(CC) $(CFLAGS) -o binuhr.out -Wl,-Map,binuhr.map binuhr.o
    binuhr.o : binuhr.c
            $(CC) $(CFLAGS) -Os -c binuhr.c
    
    
    # you need to erase first before loading the program.
    # load (program) the software into the eeprom:
    #load: avrledtest.hex
    #       uisp -dlpt=/dev/parport0 --erase  -dprog=dapa
    #       uisp -dlpt=/dev/parport0 --upload if=avrledtest.hex -dprog=dapa  -v=3 --hash=32
    # here is a pre-compiled version in case you have trouble with
    # your development environment
    #load_pre: avrledtest_pre.hex
    #       uisp -dlpt=/dev/parport0 --erase  -dprog=dapa
    #       uisp -dlpt=/dev/parport0 --upload if=avrledtest_pre.hex -dprog=dapa -dno-poll -v=3 --hash=32
    #-------------------
    clean:
            rm -f *.o *.map *.out
    #-------------------
    Nur Puffin verleiht dir die Kraft und Ausdauer die du brauchst!

  8. #8
    G400
    Gast
    Genau das liegt das Problem:
    Wenn ich in dem Makefile MCU=atmega8 eingeb, krieg ich folgende Meldung:
    Meine Makefile ist ziemlich identisch mit deiner.

    Code:
    avr-gcc -g -mmcu=atmega8 -Wall -Wstrict-prototypes -Os -mcall-prologues -Os -c avrledtest.c
    Unknown MCU `atmega8' specified
    Known MCU names:
     avr2
       at90s2313
       at90s2323
       attiny22
       at90s2333
       at90s2343
       at90s4414
       at90s4433
       at90s4434
       at90s8515
       at90c8534
       at90s8535
       avr3
       atmega103
       atmega603
       avr4
       atmega83
       atmega85
       avr5
       atmega161
       atmega163
       atmega32
       at94k
       avr1
       at90s1200
       attiny10
       attiny11
       attiny12
       attiny15
       attiny28
    cc1: MCU `atmega8' not supported
    In file included from /usr/local/atmel/avr/include/io.h:20,
                     from avrledtest.c:11:
    /usr/local/atmel/avr/include/io-avr.h:75:4: warning: #warning "device type not defined"
    avrledtest.c:31: warning: return type of `main' is not `int'
    avrledtest.c: In function `main':
    avrledtest.c:33: `DDRD' undeclared (first use in this function)
    avrledtest.c:33: (Each undeclared identifier is reported only once
    avrledtest.c:33: for each function it appears in.)
    avrledtest.c:33: `PD5' undeclared (first use in this function)
    avrledtest.c:36: `PORTD' undeclared (first use in this function)
    make: *** [avrledtest.o] Fehler 1
    Geändert von G400 (09.12.03 um 21:18 Uhr)

  9. #9
    Moderat0r Avatar von geronet
    Registriert seit
    May 2001
    Ort
    Grainau
    Beiträge
    6.099
    avr-gcc --target-help gibt dir Auskunft.
    Nur Puffin verleiht dir die Kraft und Ausdauer die du brauchst!

  10. #10
    AlienSearcher
    Gast
    Aich empfehlenswert sind die AVR-GCC RPM's von http://cdk4avr.sourceforge.net/ Die laufen bei mir einwandfrei und waren auch schön schnell installiert

Lesezeichen

Berechtigungen

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