AVR - Új fordító program, új GCC

2017-09-03

 

Vagy egy évnyi kihagyás, és a számítógépem többszöri újrahúzása után érdeklődésem megint az AVR-ek felé fordult. Ez annyiban nem igaz, hogy időközben azért csináltam néhány dolgot, csak még nem írtam róluk. Szóval a legutóbbi újratelepítés után, próbáltam összekaparni az emlékeimet, hogyan is kell telepíteni a GCC-fordító programot? Eredetileg ugye az AVRGCC-t használtam. Annyi a probléma vele, hogy 2006 vagy 2007-től már nem tartják karban. Nem is annyira az új uC-kel volt bajom, hanem a C++-t nem támogatta rendesen. Jelenleg három lehetőségét ismerem Widows alatt az up to date GCC beszerzésére, az Atmel Studio-t, az Arduino-t és a Zak's Elektronicks Blog-ról egy up to date AVRGCC-t.

Atmel Studio

Az Atmel Studio az egy komplett fejlesztő környezet, számtalan mintával, fordító programmal (GCC) debugger-rel, letöltéssel, lépésenkénti futtatással, minden kutyafülével. Nekem kicsit túl sok is. Ez képezi az Atmel (mostmár ugye MikroChip) hivatalos támogatását. Egyszerű regisztrációt követően jelenleg a 7-es verzió tölthető le, valamivel kevesebb mint 1GB. Telepítés során mindent beállít. Talán annyi a hátránya, hogy olyan letöltő fej kell hozzá, amit ismer.

Arduino

Az Arduino fejlesztő környezetben alapból ugye az Arduino kártyákat tudjuk programozni, amik AVR uC-kre épülnek, és így megtalálható benne a GCC fordító. Jelenleg az 1.8.4 verzó tölthető le, telepítő (95MB) és zip-be (168MB) tömörített verzióban. Ha Arduino-val akarunk dolgozni, jobb a telepíthető verziót feltenni. Mivel én csak a GCC-t akarom használni, ezért kibontottam a C:\Arduino mappába, és a C:\Arduino\hardware\tools\avr\bin\ mappát kellett hozzáadnom a PATH-hoz.

Zak's Elektronicks Blog - AVRGCC

Van egy Zak Kemble nevű rendes ember, felfrissített és elérhetővé tette az AVRGCC-t. Jelenleg a 7.2.0 verzió tölthető le, 32 és 64 bit-es változatban is, hozzávetőleg 50MB méretben. Ezt azután kibontottam a c:\Portable mappámba, és a c:\Portable\avr-gcc-7.2.0-x86-mingw\bin\ mappát kellett hozzáadnom a PATH-hoz. Jelenleg ezt választottam.

Gondolom vannak olvasóim között, akiknek nem ugrik rögtön be, hogy mi az a PATH? Vanak úgynevezett környezeti változók, amelyekben az operációs rendszernek adhatunk meg adatokat, beállításokat. A PATH-ban azokat a mappákat adjuk meg, amelyekben az operációs rendszernek (Windows) a végrahajtható programokat (.com, .exe...) kell keresnie. Ebben az esetben azt kell megadnunk, hol találhatók a GCC programjai. A beállításhoz jó ha rendszergazdák vagyunk a gépen. Keressünk egy számítógép vagy saját gép ikont, vagy feliratot a Start menüben, jobb klikk, Tulajdonságok, majd válasszuk a Speciális rendszerbeállításokat. A Speciális fülön a lap alján válasszuk a Környezeti változókat. Az alsó Rendszerváltozók ablakot görgessük le a Path-ra, és válasszuk a szerkesztést. Itt vigyázzunk, a vátozó értékét ne töröljük, ne írjuk felül, mert akkor a többi program korábbi beállítása elveszik, hanem a sor végére írjunk egy pontosvesszőt, és gépeljük be (vagy másljuk be) a kívánt mappa elérési útját. Elmentés után újra kell indítanunk a Windows-unkat, és a GCC már kész is parancsain végrehajtására.

Persze semmi sem állandóbb a változásnál, így rögtön hibaüzenettel örvendeztetett meg az új verzió. Itt látható a korábbi fordito.bat parancs állomány:


avr-gcc -g -Wall -O2 -mmcu=atmega8 -c -o prg.o prg.c
avr-gcc -g -O2 -mmcu=atmega8 -Wl,-Map,prg.map -o prg.elf prg.o
avr-objdump -h -S prg.elf > prg.lst
avr-objcopy -j .text -j .data -O ihex prg.elf prg.hex
avr-size --format=avr --mcu=atmega8 prg.elf

Az avr-size változott időközben meg. Akár el is lehet hagyni, csupán annyi a szerepe, hogy kiírja milyen hosszú lett a program. De ha már van egy ilyenünk... a módosított fordito.bat:


avr-gcc -g -Wall -O2 -mmcu=atmega8 -c -o prg.o prg.c
avr-gcc -g -O2 -mmcu=atmega8 -Wl,-Map,prg.map -o prg.elf prg.o
avr-objdump -h -S prg.elf > prg.lst
avr-objcopy -j .text -j .data -O ihex prg.elf prg.hex
avr-size prg.elf

Itt a vége, fuss el véle.