2015. január 22., csütörtök

CodeVisionAVR

Ebben a bejegyzésben szeretném röviden ismertetni az Atmel 8-bites AVR-einek (tiny, mega és xmega) egyik szoftverfejlesztő eszközét, a CodeVisionAVR-t.

A szoftver 32 és 64-bites Windows-ok alatt fut (XP-től felfelé), a bejegyzés írásakor éppen a 3.18-as verzió a legfrissebb. Jómagam már több, mint 10 éve használom a különféle verziókat és el kell mondanom, hogy Pavel Haiduc lelkiismeretesen javítja az esetleges hibákat, fejleszti a rendszert.

De mit is tud ez a szoftver?

Ez egy C forrásprogramokat lefordítani és összeállítani képes, ANSI C-vel kompatibilis compilert tartalmazó IDE, amely képes arra is, hogy C függvényekben akár assembly utasításokat is használjunk. Ez utóbbi nagyon hasznos, ha speciális, például nagy sebességű szubrutinokat kell elkészítenünk.

A forrásprogram több fájlból is állhat, amelyeket projektbe szervezve lehet együtt kezelni. A fordító-szerkesztő elég gyors, működése, optimalizálása és egyéb tulajdonságai akár az IDE megfelelő menüin keresztül, akár a forrásprogramba a megfelelő helyeken beírt ú.n. pragmákkal beállítható, szabályozható.

A forrásprogram előállításához szerintem mindenképpen érdemes használni a beépített automatikus programgenerátort, amely vizuálisan segít a kiválasztott mikrokontroller minden hardver elemét beállítani, kezdve az órajeltől az I/O portokon át az utolsó timerig. Ez a kiváló eszköz különösen az xmega családnál jön kapóra, ahol tényleg el lehet tévedni a rengeteg regiszterben, bitben és bitcsoportban! Jómagam mindig használom, ez volt az egyik oka annak, hogy végül ezt a szoftverfejlesztő eszközt vásároltam meg.

A "varázslóval" előállított konfiguráció elmenthető, bármikor visszatölthető, módosítható, stb. Ebből azután generálhatunk egy C forrás fájlt, amit már "csak" a feladathoz szükséges részekkel kell bővíteni és kész is vagyunk!

A lefordított és a mikrovezérlőbe letölthető Intel HEX fájl mellett az Atmel Studióval debugolható COFF fájl is készül. Mivel a 3.x verziótól felfelé a CodeVisionAVR képes az Atmel Studio keretrendszerbe beépülni, a hibakeresés még könnyebbé vált, mint a korábbi verziókban (amilyen még nekem is van). Az Atmel Studio  hibakereső funkciójának rövid ismertetése önmagában is megtölthetne egy egész bejegyzés, ezért erre most nem térek ki.

Fontos még kiemelni a CodeVisionAVR szerintem igen kényelmes függvénykönyvtárait, amelyekkel tényleg könnyedén lehet I2C, SPI, de akár alfanumerikus vagy grafikus kijelzőket is kezelni. Jómagam az USB könyvtárak kivételével már mindegyiket kipróbáltam és meg vagyok velük elégedve.

Ami nem igazán tetszik az, hogy a programgenerátor által elkészített forrás megjelenési formája, azaz a tördelések, behúzások, néha nagyon hosszú programsorok nekem zavaróak, eltérnek attól, amit én szeretek használni. Zavar még az is, hogy az egyes hardver egységekhez tartozó programrészeket nem teszi különálló függvényekbe, esetleg fájlokba, hanem az összes kódsort egyben "ledarálja". Sajnos, ez így "bele van drótozva" a szoftverbe, tehát nincsenek módosítható kódsablonok - a felhasználó eszi vagy nem eszi, nem kap mást!

Végül a minőség/ár aránya szerintem a legjobb a 8-bites AVR fejlesztői rendszerek piacán. Aki már végigverekedte magát például egy ATxmega128A1U inicializáló kódján, az tudja csak igazán becsülni a kódvarázsló munkáját - legyen akár kicsit csúnyácska is a végeredmény!