Skillnad mellan versioner av "AVR-GCC-Linux"
Niklo (diskussion | bidrag) m (→Introduktion) |
Niklo (diskussion | bidrag) |
||
Rad 6: | Rad 6: | ||
== Installation == | == Installation == | ||
För en komplett utvecklingsmiljö behöver vi: | |||
* [http://www.gnu.org/software/binutils/ Binutils], fick inte senaste versionen att fungera, så jag körde med 2.14 som fungerade bra. | |||
* Binutils, | * [http://www.nongnu.org/avr-libc/ AVR-libc], senast versionen (1.2.5 vid skrivande stund) fungerade bra. | ||
* AVR-libc, | * [http://gcc.gnu.org/ gcc], tog den senaste versionen, dvs gcc-3.4.4/gcc-3.4.4.tar.bz2 i skrivande stund. | ||
* gcc | |||
* AVRDude, jag installerade det från portagen (via "emerge" i Gentoo Linux). | * AVRDude, jag installerade det från portagen (via "emerge" i Gentoo Linux). | ||
=== | ===Bygga från källkod=== | ||
Under installationen var jag inloggad med mitt vanliga konto, macce. | 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. | Jag installerade allt under /home/macce/avr. Vill du ha installerad det på något annat ställe, ändra då sökvägen. | ||
====binutils==== | |||
==== | |||
Packa upp paketet: ''tar jxfv binutils-*.tar.bz2'' | Packa upp paketet: ''tar jxfv binutils-*.tar.bz2'' | ||
Gå till binutilsmappen: ''cd binutils*'' | Gå till binutilsmappen: ''cd binutils*'' | ||
Konfigurera | Konfigurera: ''./configure --prefix=/home/macce/avr --target=avr --enable-languages=c --host=avr --disable-nls'' | ||
Kompilera: ''make'' | |||
Installera | Installera: ''make install'' | ||
====gcc==== | ====gcc==== | ||
Nästa program blir gcc, vår C- | Nästa program blir gcc, vår C-kompilator: | ||
Packa upp: ''tar jzfv gcc*tar.bz2'' | Packa upp: ''tar jzfv gcc*tar.bz2'' | ||
Rad 38: | Rad 36: | ||
Konfigurera: ''./configure --prefix=/home/macce/avr --target=avr --enable-languages=c --host=avr --disable-nls'' | Konfigurera: ''./configure --prefix=/home/macce/avr --target=avr --enable-languages=c --host=avr --disable-nls'' | ||
Kompilera: ''make'' | |||
Installera: ''make install'' | Installera: ''make install'' | ||
Gå nu in | Gå nu in till mappen där du installerade programmen, i mitt fall /home/macce/avr genom att skriva ''cd /home/macce/avr/bin'' | ||
Lista filerna i mappen: ''ls'' | 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'' | 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''. alternativr gör en länk ''ln 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: | 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: | ||
Rad 61: | Rad 59: | ||
====avr-libc==== | ====avr-libc==== | ||
Nu skall vi installera avr-libc, detta | Nu skall vi installera avr-libc, detta bibliotek kräver de programm 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 CC=/home/macce/avr/bin/avr-gcc | ||
Rad 80: | Rad 78: | ||
Gå in i mappen: ''cd avr-libc* Konfigurera: ./doconf --PREFIX=/home/macc/avr'' | Gå in i mappen: ''cd avr-libc* Konfigurera: ./doconf --PREFIX=/home/macc/avr'' | ||
Kompilera: ''./domake'' | |||
Installera: ''./domake install'' | Installera: ''./domake install'' | ||
===Debian=== | ===Debian=== | ||
Att | Att installera avr-gcc under Debian Etch är relativt enkelt tack vare pakethanteraren APT. För att installera avr-gcc med eventuella beroenden kör | ||
''apt-get install binutils-avr avr-libc gcc-avr'' | ''apt-get install binutils-avr avr-libc gcc-avr'' | ||
Rad 107: | Rad 105: | ||
Glöm inte att installera avrdude eller uisp. Avrdude installeras enklast via emerge | Glöm inte att installera avrdude eller uisp. Avrdude installeras enklast via emerge | ||
emerge avrdude | ''emerge avrdude'' | ||
== Slutskede == | == Slutskede == |
Versionen från 29 augusti 2010 kl. 02.31
Introduktion
Jag körde för länge sedan MS-Windows. Där var det lätt att få en fungerande avr-kompilator installerad, bara att ladda hem WinAVR (uttalas Whenever) och installera.
När jag bytte till Linux blev det värre, försökte några gånger men fick det inte att fungera, förrän jag läste MaggoT's tråd och alla kloka svar. Förhoppningsvis får någon nytta av denna guide så jag inte skriver i onödan.
Installation
För en komplett utvecklingsmiljö behöver vi:
- Binutils, fick inte senaste versionen att fungera, så jag körde med 2.14 som fungerade bra.
- AVR-libc, senast versionen (1.2.5 vid skrivande stund) fungerade bra.
- gcc, tog den senaste 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).
Bygga från källkod
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.
binutils
Packa upp paketet: tar jxfv binutils-*.tar.bz2
Gå till binutilsmappen: cd binutils*
Konfigurera: ./configure --prefix=/home/macce/avr --target=avr --enable-languages=c --host=avr --disable-nls
Kompilera: make
Installera: make install
gcc
Nästa program blir gcc, vår C-kompilator:
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
Kompilera: make
Installera: make install
Gå nu in till mappen där 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. alternativr gör en länk ln 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 bibliotek kräver de programm 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
Kompilera: ./domake
Installera: ./domake install
Debian
Att installera avr-gcc under Debian Etch är relativt enkelt tack vare pakethanteraren APT. För att installera avr-gcc med eventuella beroenden kör
apt-get install binutils-avr avr-libc gcc-avr
För att installera programmeraren avrdude kör
apt-get install avrdude
Dessa instruktioner borde även fungera för andra Debian-baserade distributioner som till exempel Ubuntu
Gentoo
Om du använder Gentoo GNU/Linux är 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. Avrdude installeras enklast via emerge
emerge 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.
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