Portál AbcLinuxu, 1. května 2025 09:26

Arch vs AVR a GCC

7.6.2011 12:04 | Přečteno: 1159× | poslední úprava: 7.6.2011 12:04

Tento zápisek je především takové malé how-to pro mě a možná i pro ostatní.

Je to už nějaký ten pátek, co jsem přesedlal z Archu na Debian Squeeze, ale ten mi nějak nesedl tak jsem se rozhodl vrátit se zpět na Arch. První co bylo je, že jsem si nahodil moje oblíbené CodeBlocks, gcc-avr, avr-libs atd a hurá do vývoje mého soukromého projektu. Bohužel aktuální verze gcc v Archu je 4.6 a jak je zvykem, nejnovější verzi v Archu drží tedy i gcc-avr.

A teď tedy k věci. Pokud se člověk s touto verzí gcc rozhodne použít knihovnu avr/pgmspace.h, nabije si pěkně čumák s problémem okolo pgmspace, deklarace datových typů uložených ve FLASH a funkcí printf_P. Částečné řešení, které mi kdysi fungovalo se nachází zde : AVR C Runtime Library - Bugs: bug #32988, Internal compiler error:... . Toto mi před nějakým časem v Archu ještě fungovalo, ale zase se patrně cosi změnilo a tak ani kompletní doplnění const k datovým typům, které používám (prog_char) nepomohlo. Ikdyž kompilace proběhne, z dat je na LCD rozlitý čaj.

Nakonec se ukázala jako dobrá volba pomocí ABS vytvořit balíček s přepsáním verze v PKGBUILDU gcc-avr na 4.5.3. Toto je patrně poslední verze, kde pgmspace bez problému funguje s aktuální avr-libs. Zkusil jsem také zkompilovat stejnou verzi gcc, jakou má debian (4.3.5). Tam se bohužel ukázal problém s nadměrnou velikostí produkovaného hex souboru ( 16500B vs 13700B).

Tedy řešením je používat gcc-avr 4.5.3 a přidat baliček do IgnorePkg v /etc/pacman.conf

 

Když už jsem se tak rozepsal, tak bych mohl uvést druhý částečný problém. Tím je linkování správné libc.a knihovny v Codeblocks, kde při použití avr/eeprom.h mohou nastat problémy s hláškami typu :

car_meas.c:(.text+0x75e)||undefined reference to `__eeupd_block_m168'|

Toto řeším tak, že si v project build options přidám linkeru správnou cestu ke knihovně, například :

/usr/avr/lib/avr5/libc.a

Chce to vždy zkusit, který adresář s libc je ten správný (avr3,..,avr51). Většinou to je právě avr5 (mega16, mega168, mega32 myslím).

Pro AVR vyvíjím v Codeblocks už asi půl roku a zatím si nemohu stežovat. Přešel jsem tak plně od AvrStudia. Používat se dá i jtag ice a pěkně to pak debugovat přes avr-gdb a Codeblocks, ale o tom možná zase někdy jindy..

       

Hodnocení: 100 %

        špatnédobré        

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

Komentáře

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

Vložit další komentář

7.6.2011 17:55 Ja
Rozbalit Rozbalit vše Re: Arch vs AVR a GCC
Odpovědět | Sbalit | Link | Blokovat | Admin
Typicky priklad najnovsie (niekedy dost nestabilne a nekompatibilne) vs starsie (ale stabilne a overe) - alebo pojaseny Arch vs rozvazny Debian...
luta avatar 7.6.2011 21:06 luta | skóre: 20 | blog: muj_blok | Prostějov/Brno
Rozbalit Rozbalit vše Re: Arch vs AVR a GCC

no kazdy ma svoje.. ten debian neni taky zadna spasa no. skoda. myslel jsem ze budu spokojen, ale kdyz prichazely nepochopitelne kernel panic a obcas nechodila sit tak jsem si rekl dost. a rychle zpet k archu. tam to aspon muzu svest na aktualizace :D

8.6.2011 13:41 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Arch vs AVR a GCC
...kdežto u Debianu jenom na vlastní ruce. ;-)
Quando omni flunkus moritati
luta avatar 8.6.2011 14:02 luta | skóre: 20 | blog: muj_blok | Prostějov/Brno
Rozbalit Rozbalit vše Re: Arch vs AVR a GCC

ono nevim cim presne to bylo..ale pokud nahodim debian stable, vsecko rozchodim = funguje, tyden pracuji a nic se neaktualizuje a do niceho nereju a pak proste prijde vypadek site, wifi nechce jet, mobil jako modem se prestane chytat, obcas do toho padne kernel panic s nejakym silenym vypisem s baterkou pri probouzeni ze suspendu..tak se cloveku rychle zasteskne po Archu :-) V nem si aspon na 100% dokazu vsecko dat do kupy.. v Debianu jsem obcas tapal a nechapal co ho zase jebe :-)

8.6.2011 23:26 Jirka Keresteš | skóre: 12
Rozbalit Rozbalit vše Re: Arch vs AVR a GCC
...na ty ruce, ktery tam ten Debian nainstalovaly. ;-)
A physics book seems to be a mathematician's worst nightmare.

Založit nové vláknoNahoru

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