Iar beágyazott munkaállomás avr

Az IAR az egyik legjobb C / C ++ fordító a különböző mikrokontrollerek számára, a 8051-től a fejlett ARM-ekig. Az ARM projektek létrehozásáról, amelyek már meg vannak írva az ugyanazon szabályozó nevére felírt tanfolyamon, írok egy projekt létrehozásáról az AVR-hez, a munkához és a hibakereséshez.

Iar beágyazott munkaállomás avr

Az avr esetében 2 verzió van - ingyenes, legfeljebb 4 kB kódkorláttal és 30 napos próbaverzióval. Nem is nehéz megtalálni a gyógymódot. Melyik közül választhat, mindegyik magáért dönt, csak azt mondom, hogy a normális munkavégzés érdekében meg kell tiltani a program online megkezdését. A legújabb verzió jelenleg 5.51. Fogom használni.
A környezet beállítása.
A telepítés után érdemes megtenni a környezet kezdeti beállításait.
1. Eszközök-> Opciók. Az Üzenetek üzeneteiben válassza az Összes lehetőséget. Ezt követően összeállításakor a program és az adatok méretére vonatkozó információ jelenik meg.
2. Mert A környezet nem támogatja a programozókat, például az AVR ISP-t, akkor külső programozóhoz, például SinaProghoz kell csatlakoztatni. Ehhez kattintson az Eszközök -> Eszközök konfigurálása parancsra.
Iar beágyazott munkaállomás avr

A beállítások egyértelműek és nem magyarázhatók. Az Initial Directory lehet üres, vagy megadhatja az aktuális projekt kimeneti fájljainak elérési útját. Ezután indítás után azonnal kiválasztja a firmware-sel rendelkező mappát. Elvileg a Redark a kimeneti ablakhoz van erre a célra. amellyel az utat automatikusan helyettesíteni kell az aktuális projekthez. De valamiért nem működött értem.

Hozzon létre egy projektet.
Futtassa az IAR beágyazott munkapadot és nézze meg a program főablakát:

Iar beágyazott munkaállomás avr

Válasszon a menüből - Projekt-> Új projekt létrehozása. . A megjelenő ablakban kiválaszthatja a nyelvet (ASM, C, C ++) és a projekt típusát. Az AVR Stúdióval való kompatibilitásnak semmi köze ehhez, ezért létrehozunk egy alkalmazást egy hagyományos C-re.
Iar beágyazott munkaállomás avr

A program azonnal kéri, hogy mentse a kapott projektet. Mentse el és kapja meg a következő generált kód kimenetét:

Igen, tudja, hogy a rövidség a tehetség testvére. Még nem lehetséges ezt használni, így folytathatja a projekt beállításait.

Ennek eredményeképpen 3 kimeneti fájlt kapunk:
  • * .d90 a hibakereséshez
  • * .eeprom.hex - az eeprom firmware-hez
  • * .flash.hex - maga a firmware
Ezzel a projektbeállítás teljesnek tekinthető, és folytatja a program írását.

Hello World írása.
Valójában nem fogok írni egy programot villogó valamit;) De én csak leírja a megvalósításának a C, mint alkalmazott iar. Tehát a program elején azonnal szerepeltetjük a következőket:

Definíció nélkül * 1 a regiszterek bitmezetei nem lesznek elérhetők. Miért történik ez nekem, nem világos :) A * 2-ben csak a regiszterek leírása. A * 3 nélkül néhány makrók lesznek.

Az iar késleltetése az intézkedések számán keresztül történik, azonban az esetek 99% -ában jóval kényelmesebben meghatározható a késleltetési idő mikro- vagy milliszekundumban. Ezért a következő meghatározásokat adjuk hozzá:

Most a késlekedés így hajtható végre:

A konstansok villanóba helyezéséhez a __flash modifikálót használjuk:

Az eeprom változóknál a __eeprom módosító.

A megszakítások a következőképpen jelennek meg:

Ha a TIMER2_OVF_vect a megszakítás típusa, a megszakítások nevei megtalálhatók az adott processzor leírás fájljában. Mert mega16 - ez a C: \\ Program Files (x86) \\ IAR Systems \\ Embedded Workbench 5.4 \\ \\ avr inc \\ iom16.h
A TIMER2_interrupt csak a megszakítás neve, bármit írhat.
A többiben ugyanaz a C, mint bármely más közegben.

Az IAR hibakeresése
A programot a hardveren keresztül bármilyen hardveres hibakeresőn keresztül hibakeresheti. A JtagIce és a Dragon a leghíresebb és legelismertebbek. Ez mutatja a regiszterek tartalmát, változókat, eltávolítja / telepíti a hardver zászlókat, és kiváltja a megszakításokat. És ellentétben a gcc + stúdió változókkal, függetlenül annak típusától és helyétől. Általánosságban elmondható, hogy a vasalatti hibakeresés egyszerű és élvezetes. A program tulajdonságaiban a debugger típusa van kiválasztva. Ott is van beállítva.
Aki nem tudja használni a hibakeresőket, lehetséges a szimulátor használata. Nem annyira boldog. Az IAR, ellentétben a stúdióval, nem emulálja a processzort. Ez azt jelenti, hogy a szimulátor időzítőit nem veszik figyelembe, az i2c hardver készenléti jelző nincs telepítve, és így tovább. A szükséges interrupt zászló manuális beállítása nem okozza ezt a megszakítást. De a változók továbbra is helyesen jelennek meg. A gcc után hihetetlenül eljut.
Szóval, debugging in iar. A hibakereső indításához kattintson a zöld háromszögre a jobb oldalon.

Iar beágyazott munkaállomás avr

További ablakok nyílnak meg a Nézet menüben.
Változók (4. ablak) a Watch, Auto, Statics és Locals ablakokban megjeleníthetők. A Watch ablak csak a kijelölt változókat jeleníti meg, statikusan a Staticsban, csak helyi változók esetén a helyiek. Az Automatikus ablak csak olyan változókat tartalmaz, amelyek az utóbbi időben megváltoztatták az értéket. Változóként megadhatja a regiszterek nevét. Például a PORTB változó megjeleníti a port jelenlegi állapotát.
Szükség esetén minden egyes ablakot külön-külön adhat ki, vagy kiválaszthatja a kívánt könyvjelzőt az ablak alján. A kimeneti módszer megváltozik a szükséges ablakok húzásával.
A Regisztrálók ablak (3-as ablak) eltér a változóktól, mivel nem csak a kiválasztott regiszter értékét jeleníti meg, hanem a hozzá tartozó regisztereket is. Például az A port a DDRA-t és a PINA-t is megjeleníti. Emellett az egyes regiszterek értéke is bővíthető a bitmezők megjelenítéséhez.
A szétszerelő ablakban (2. ablak) és a programban (1. ablak) az aktuális végrehajtható kódfájl végrehajtódik. Ha kiválasztja az összeszerelő ablakot, akkor a nyomkövetés során minden egyes telepítő parancs végrehajtásra kerül. Bármelyik ablakban is beállíthat töréspontokat.
Tehát a program teljes logikáját hibakeresheti, kivéve a vas és a megszakításokat. És ha nem tehet meg semmit a vas szimulációjával, kivéve, hogy manuálisan beállíthatja a megfelelő biteket, akkor továbbra is automatikusan megszakadhat. Bár nem kényelmes, de még mindig lehetséges. Ehhez válassza a Szimulátor-> Megszakítások lehetőséget.
Iar beágyazott munkaállomás avr

Ebben az ablakban kiválasztjuk a megszakítás típusát, miután elkezdett dolgozni és a működés intervallumát. A megszakítás beállítása után rendszeresen fog működni. A profi munka szimulálása előtt minden bizonnyal messze van, de még mindig jobb, mint egyáltalán semmi.

$ PROJ_DIR $ a projektfájl elérési útja (.ewp)
A dal az, hogy relatív útvonalak kijelölésével a projektet bárhonnan futtathatja, a beállítások módosítása nélkül. Mint a mellékletben.

Az Eszközök ablakban az indítókönyvtár határozza meg azt a helyet, ahonnan az eszköz elindul.
Legyen ez a parancs szükséges itt
"C: \ IAR \ JLinkARM_V358c \ JLinkGDBServer.exe"
Ezt megteheti


az első esetben a $ PROJ_DIR $ könyvtárat (ahol .ewp fekszik) a második C: \ IAR \ JLinkARM_V358c

Valamilyen oknál fogva a hivatkozások nincsenek beillesztve. (

$ PROJ_DIR $ a projektfájl elérési útja (.ewp)
A dal az, hogy relatív útvonalak kijelölésével a projektet bárhonnan futtathatja, a beállítások módosítása nélkül. Mint a mellékletben.
dl.dropbox.com/u/12253020/path.gif

Az Eszközök ablakban az indítókönyvtár határozza meg azt a helyet, ahonnan az eszköz elindul.
Legyen ez a parancs szükséges itt
"C: \ IAR \ JLinkARM_V358c \ JLinkGDBServer.exe"
Ezt megteheti
dl.dropbox.com/u/12253020/rel.gif
vagy úgy
dl.dropbox.com/u/12253020/abs.gif

az első esetben a $ PROJ_DIR $ könyvtárat (ahol .ewp fekszik) a második C: \ IAR \ JLinkARM_V358c

Debug egyszerre: ISIS, IAR és AVR Studio (a ubrof8, ami akkor keletkezik, a mappában exe IAR'om kifejezetten erre a célra).

Nem szükséges beilleszteni ezt a makrót. A Rendszer fül ÁLTALÁNOS LEHETŐSÉGEI menüjében jelölje be a "Bit-meghatározások engedélyezése I / O-kiterjesztésű fájlokban" jelölőnégyzetet, és a regiszterek bitmezetei elérhetők.

Kapcsolódó cikkek