Portál AbcLinuxu, 4. května 2024 20:29

AVR-gcc: 4.x.y zatím ne!

5.9.2007 11:33 | Přečteno: 2108× | Bastlení

Občas vyrobím nějaký bastl s jednočipem AVR. Po delší době jsem se potřeboval k těmto malým švábům vrátit a zase něco spáchat. Tentokrát již byly základní balíčky (avr-binutils, avr-gcc, avr-libc) součástí mé distribuce, tak jsem je jednoduše nainstaloval. Ale ouha, začaly se objevovat problémy: avr-gcc (ve verzi 4.1, či 4.2) někdy vyprodukovalo špatný kód (například nedbalo na to, že by i/o porty měly být volatile). Navíc kód vyprodukovaný pomocí gcc 4.x byl vždy větší, než s gcc 3.4.x. Rozhodl jsem se tedy pro návrat k řadě 3.4.

Nakonec, po nějakém laborování, jsem přišel na kombinaci která mi funguje dobře. Je jí poslední verze binutils, polední verze gcc z řady 3.4, opatchovaná tak, aby si rozumněla s novějšímy MCU (jako je např. ATtiny2313 a poslední verze avr-libc. Zde je jednoduchý skript (založený na tomto návodu), který vše nainstaluje do systému.

#!/bin/sh

# binutils

wget http://ftp.gnu.org/gnu/binutils/binutils-2.17.tar.bz2
tar xvjf binutils-2.17.tar.bz2
(
 cd binutils-2.17
 mkdir obj-avr
 cd obj-avr
 ../configure --prefix=/usr --target=avr --disable-nls
 make
 make install
)

# avr-gcc

wget http://gcc-ca.internet.bs/releases/gcc-3.4.6/gcc-3.4.6.tar.bz2
tar xvjf gcc-3.4.6.tar.bz2
(
  cd gcc-3.4.6
  curl 'http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/ports/devel/avr-gcc/files/patch-newdevices?rev=1.12;content-type=text%2Fplain' > patch-newdevices.patch
  patch -p1 < patch-newdevices.patch
  mkdir obj-avr
  cd obj-avr
  ../configure --prefix=/usr/ --target=avr --enable-languages=c,c++ --disable-nls --disable-libssp --with-dwarf2
  make
  make install
)

# avr-libc

wget http://download.savannah.gnu.org/releases/avr-libc/avr-libc-1.4.6.tar.bz2
tar xvjf avr-libc-1.4.6.tar.bz2
(
  cd avr-libc-1.4.6
  ./configure --prefix=/usr  --build=`./config.guess` --host=avr
  make
  make install
)

       

Hodnocení: 67 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

vlk avatar 5.9.2007 12:08 vlk | skóre: 23 | blog: u_vlka
Rozbalit Rozbalit vše Re: AVR-gcc: 4.x.y zatím ne!
Odpovědět | Sbalit | Link | Blokovat | Admin
celkom ma prekvapilo ze ked som naposledy pisale nejake veci prave pre tiny2313 a nechcelo sa mi to tam vojst - vysledny kod malinko presahoval cez 2kB (asi o 50B) tak prehodenim dvoch riadkov (zasah ktory neovplyvni vyslednu funkciu) sa kod zmensil o 250B!!!

inak s gcc-4.x.y nemam ziadne problemy a projekty mi funguju bez problemov (aspon zatial - klop klop :)
You don't exist, Go away !
5.9.2007 12:40 Boris Dušek | skóre: 22 | blog: everything
Rozbalit Rozbalit vše Re: AVR-gcc: 4.x.y zatím ne!
Odpovědět | Sbalit | Link | Blokovat | Admin
Díky za popis, za pár dní si budu muset udělat překladač pro ARM, takže tento popis využiju skvěle.
vim ~/.emacs
5.9.2007 18:46 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: AVR-gcc: 4.x.y zatím ne!
Odpovědět | Sbalit | Link | Blokovat | Admin
Teď jsem zkusil srovnat jeden překlad 4.1 vs 3.4; kód od 4.1 byl menší (o pár bajtů) Jinak vždycky, když mám podezření, že překladač vygeneroval chybný kód, najdu po prohledání asm výpisu chybu ve svém zdrojáku. ;-)
Quando omni flunkus moritati
5.9.2007 18:53 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: AVR-gcc: 4.x.y zatím ne!
Hm, jako třeba teď... oba překladače generují nefunkční kód, což mě vede k myšlence, že jsem vygeneroval nefunkční zdroják. Nevěděl by někdo z přítomných o nějakém návodu na memory-mapped I/O? Nějak nemůžu přijít na správný dotaz pro Google.
Quando omni flunkus moritati
Petr Tomášek avatar 5.9.2007 18:58 Petr Tomášek | skóre: 39 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: AVR-gcc: 4.x.y zatím ne!
Mozna je otazka, ktere presne verze to byli; kazdopadne ja mam - co se velikosti tyce - zkusenost presne opacnou (pokazde kdyz jsem to zkousel a na webu jsem nasel zkusenosti stejne).
multicult.fm | monokultura je zlo | welcome refugees!
multi avatar 6.9.2007 11:52 multi | skóre: 38 | blog: JaNejsemOdsut
Rozbalit Rozbalit vše Re: AVR-gcc: 4.x.y zatím ne!
Odpovědět | Sbalit | Link | Blokovat | Admin
taky to zkusim
v mim distru neni podpora pro AVR, takze automatizovanej skript se me bude hodit

akorat by se hodilo prikaz ke stahovani archivu obalil do podminky:
if [ -f gcc-3.4.6.tar.bz2 ]; then echo " file exist"; else wget http://gcc-ca.internet.bs/releases/gcc-3.4.6/gcc-3.4.6.tar.bz2; fi
Fitness ajťák: kutilův web; bezdrátová čidla teploty vývoj softwaru linux server
Petr Tomášek avatar 6.9.2007 20:45 Petr Tomášek | skóre: 39 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: AVR-gcc: 4.x.y zatím ne!
Jj, díky za připomínku. On to původně totiž ani nebyl skript, jen jsem si zapisoval přesný postup „do notýsku“ (kdy už tím člověk strávil nějakou tu chvíli... ;)
multicult.fm | monokultura je zlo | welcome refugees!
7.9.2007 09:58 Radek Podgorny | skóre: 16
Rozbalit Rozbalit vše Re: AVR-gcc: 4.x.y zatím ne!
...vubec nejlepsi je naucit se pouzivat wget zasadne s "-c" (continue) a je po starostech ;-)
22.10.2007 21:29 Pat
Rozbalit Rozbalit vše Re: AVR-gcc: 4.x.y zatím ne!
Odpovědět | Sbalit | Link | Blokovat | Admin
A jak se dnes dostat k programovani ATTiny2313 by mi nekdo neporadil? Podle prvniho, vyse uvedeneho clanku, mi nefunguje upload programu. Dojde k chybe:

pat pat # make load
/opt/cdk4avr/bin/avr-gcc -g -mmcu=attiny2313 -Wall -Wstrict-prototypes -Os -mcall-prologues -o helloworld.out -Wl,-Map,
/opt/cdk4avr/lib/gcc/avr/3.4.5/../../../../avr/bin/ld: cannot open map file : není souborem ani adresářem make: *** [helloworld.out] Error 1

Druhy, vyse zmineny clanek, jsem zatim popravde nezkousel, protoze je take uz par let stary a predpokladam, ze se zase veci zmenili.. Takze bych se rad zeptal, co a jak pouzit k uploadu a rozbehnuti programu na ATTiny2313?
Petr Tomášek avatar 7.11.2007 11:30 Petr Tomášek | skóre: 39 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: AVR-gcc: 4.x.y zatím ne!
Postup popsaný v tomto zápisku mi pro programování ATtiny2313 funguje. Nahrávám pomocí avrdude.
multicult.fm | monokultura je zlo | welcome refugees!

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.