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

2020-04-25

 

Történt, hogy megkértek egyik programom módosítására. A legbonyolultabb tulajdonképpen az volt, hogy már egy ideje kikopott a fordító program a gépemről, ezért letöltöttem és telepítettem az Arduino fejlesztő rendszert aktuális verzióját.

Itt találjátok az Arduino-t.

Az Arduino fejlesztő rendszerbe be van ágyazva a friss GNU AVR C++ fordító, javaslom ezt használni. Egy Windows rendszerű gépen az alábbi mappában találjuk meg a fordítóprogram "részeit":

"c:\Program Files (x86)\Arduino\hardware\tools\avr\bin\"

Egyszerűen ezt hozzá kell adni a PATH-hoz és máris fordítható a programunk parancssorból. Tudom, hogy nem mindenki régi motoros, a PATH útvonalat jelent, DOS-os időktől van egy ilyen környezeti változó, amiben pontosvesszővel fel lehet sorolni az oprendszernek azokat a mappákat, ahova a futtatható programokat tettük. Ezt úgy tudjuk megtenni, hogy keressük meg a "Vezérlőpult"-ot, válasszuk a "Rendszert", a feljövő ablakban pedig válaszzuk a "Speciális rendszerbeállítások"-at. Itt a "Speciális" fül alján megtaláljuk a "Környezeti változók..." gombot. A feljövő ablak felső részén a saját, az alsó részén a rendszer környezeti változóit szerkeszthetjük. Amíg egy bejegyzés tartozik egy változóhoz, addig egy egyszerűbb form ugrik csak fel, ebbe pontosvesszővel elválasztva kell hozzáírni az új értéket. Ha már egynél több érték van, egy értelmesebb több soros szerkesztő form jön fel.

 

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.