AVR-GCC-Linux
Introduktion
Jag körde för länge sedan Windows, där var det lätt att få en fungerande avrkompliator installerat, bara att ladda hem WinAVR (uttalas Whenever) och installera det.
När jag bytte till Linux var det värre, försökte några gånger men fick det inte att fungera, före jag läste MaggoT's tråd och alla kloka svar där. Förhoppningsvis får någon nytta av denna guide så jag inte skriver i onödan.
Installation
Under installationen var jag inloggad med mitt vanliga konto, macce. Jag installerade allt under /home/macce/avr. Vill du ha installerad det på något annat ställe, ändra då sökvägen.
Vi behöver:
- Binutils, Jag fick inte nyaste versionen att fungera, så jag körde med 2.14 som fungerade bra.
- AVR-libc, Nyaste versionen (1.2.5 vid skrivande stund) fungerade bra.
- gcc - Jag tog den nyaste versionen, dvs gcc-3.4.4/gcc-3.4.4.tar.bz2 i skrivande stund.
- AVRDude, jag installerade det från portagen (via "emerge" i Gentoo Linux).
Från Källkod
Binutils
Packa upp paketet: tar jxfv binutils-*.tar.bz2
Gå till binutilsmappen: cd binutils*
Konfigurera binutils: ./configure --prefix=/home/macce/avr --target=avr --enable-languages=c --host=avr --disable-nls
Kompliera binutils: make
Installera binutils: make install
gcc
Nästa program blir gcc, vår C-kompliator:
Packa upp: tar jzfv gcc*tar.bz2
Byt mapp: cd gcc*
Konfigurera: ./configure --prefix=/home/macce/avr --target=avr --enable-languages=c --host=avr --disable-nls
Kompliera: make
Installera: make install
Gå nu in i mappen dit du installerade programmen, i mitt fall /home/macce/avr genom att skriva cd /home/macce/avr/bin
Lista filerna i mappen: ls
Du borde minst ha avr-gcc i mappen, har du inte men har gcc, kopiera gcc till avr-gcc genom att skriva cp gcc avr-gcc
Saknar du följande filer, som jag gjorde: avr-ar, avr-as och avr-ranlib kan du fuska lite och kopiera dem från ditt system. Sök efter filerna med t.ex. whereis och kopiera dem till bin-mappen genom att skriva:
whereis ar
Har du whereis installerat skriver den ut var programmet finns, i mitt fall /usr/bin/ar. Du får det kopierat till din bin-mapp genom att skriva:
cp /usr/bin/ar /home/macce/avr/bin/avr-ar
Gör samma med de övriga filerna du saknar. Detta fungerade för mig, men är garanterat inte så man skall göra.
avr-libc
Nu skall vi installera avr-libc, detta program kräver de programmen vi installerade tidigare + eventuellt fulkopierade. Dock vet inte avr-libc-installationen var programmen finns, så vi måste hjälpa det lite:
export CC=/home/macce/avr/bin/avr-gcc
export AR=/home/macce/avr/bin/avr-ar
export AS=/home/macce/avr/bin/avr-as
export RANLIB=/home/macce/avr/bin/avr-ranlib
Nu skall vi konfigurera avr-libc, men först måste vi gå packa upp programmet:
cd /mapp/vart/du/laddade/hem/avr-libc
Packa upp: tar jxfv avr-libc*tar.bz2
Gå in i mappen: cd avr-libc* Konfigurera: ./doconf --PREFIX=/home/macc/avr
Kompliera: ./domake
Installera: ./domake install
Debian
Att installer avr-gcc under Debian Etch är relativt enkelt tack vare pakethanteraren APT. För att installera avr-gcc med behov kör
apt-get install binutils-avr avr-libc gcc-avr
För att installera programmeraren avrdude kör
apt-get install avrdude
Slutskede
Grattis! Nu kan du skriva och kompliera dina egna program !
Men...för att kompliera behöver du en makefile, jag använder [denna]. Ladda hem den, modifiera vilken CPU etc. du använder. Jag behövde också ändra sökvägarna till avr-gcc, avr-ar etc. Sök efter dem i Makefilen, fyll i fullständig sökväg och byt namn på Makefile.tpl till Makefile. Vips är allt klart!
Vill du ha en .hex-fil från Makefilen kör du bara "make hex" i mappen var du har Makefilen.
Gentoos crossdev
Om du använder Gentoo GNU/Linux blir det busenkelt att installera en korskompilator. Installera först crossdev mha: emerge crossdev crossdev är ett litet script som kompilerar och installerar korskompilatorer och tillhörande bibliotek för ett antal olika arkitetkurer, bla AVR. Kör sedan: crossdev --without-headers -S -s4 -t avr för att installera senaste stabila avr-gcc. Gå ut och klipp gräset eller skotta snö, när du kommer in är det bara en liten stund kvar :) Glöm inte att installera avrdude eller uisp.
KDevelop
KDevelop är ett mycket fint och trevligt programmerings-IDE. Det funkar dessutom mycket bra ihop med avr-verktygen. Installera det först (emerge -av kdevelop om du använder Gentoo). För att skapa ett nytt projekt: Skapa katalogen som du ska ha projektfilerna i. Hämta en makefil, tex den som anges ovan. Starta kdevelop, välj importera projekt/costum makefiles, och välj din makefil. Nu är det bara att skapa de filer som ska ingå i projektet. Märk att kdevelop kollar makefilen och alla kompileringsmål finns under build-menyn. Det är en god idé att ha ett mål som kompilerar och därefter programmerar processorn direkt. Skitsmidigt!
Kommentarer, tips och rättelser
cykze: Kan ju tillägga att om man kör Debian eller någon annan Debian-baserad dist som t ex Ubuntu eller Knoppix så kan man köra: "apt-get install binutils-avr avr-libc gcc-avr" för att uppnå samma resultat. Lite smidigare kanske. Det är inte så bra att lägga program under sin hemkatalog. Utan du borde ha kört med /usr/local/ eller /opt/ som prefix istället. Sen vet jag inte om det är så okay att bara kopiera saknade programfiler så där. Programmen du kopierar är inte kompilerade med stöd för avr. Vad det har för betydelse kan jag dock inte säga. Är du säker på att t ex 'avr-ar' eller 'ar' inte skapas någonstans under /home/macce/ efter binutilskompileringen?
simon78: find ~ -name '*avr-ar*' -type f -print