Szoftverfejlesztés A szoftver üzembe helyezése; Beágyazott fejlesztő eszközök; Electronicsnet
2012. november 27., 10:14 | Joachim Kroll
Mielőtt a mikrovezérlő életre kelne, szoftverrel kell táplálni. De a szoftver nem csak „fut”, hanem fejleszteni is kell. Ehhez kifinomult eszközökre van szükség. Szerencsére az Infineont nem hagyják saját magukra. Számos beszállító van, aki szoftverfejlesztőknek szállít "anyagot" a népszerű építészethez.
A mikrokontrollerek szoftverének programozásához ugyanazok a fejlesztőeszközök szükségesek, mint a PC-s szoftverekhez: Szerkesztő a forráskódhoz, valamint fordító és linkelő a forráskód gép által olvasható parancsokká történő fordításához. De itt megállnak a hasonlóságok Mivel a PC szoftver ugyanazon a rendszeren vagy legalább ugyanazon az architektúrán fut, amelyen fejlesztették (saját üzemeltetésű fejlesztés).
Ez a legtöbb mikrovezérlőn nem lehetséges, legyen az az egyszerű ok, hogy nincsenek kapcsolatok a billentyűzethez és a képernyőhöz, vagy azért, mert túl kevés a memória és a számítási teljesítmény ahhoz, hogy egy fordítási folyamat elfogadható időn belül végrehajtható legyen.
Ezért mikrokontroller szoftvert fejlesztenek ki a PC-n, és a kész kódot átvisszük a vezérlő harmadik fél architektúrájába (kereszt-fejlesztés). Ott kell futnia, és - általában nem úgy működik, mint bármelyik kód, amelyet először próbál meg munkába állni.
Ekkor felmerül a kérdés: Hogyan elemzi ezeket a hibákat, és hogyan jutnak vissza a hibaüzenetek a fejlesztői számítógéphez? Bármennyire is egyszerű ez a probléma, ez azt mutatja, hogy több fejlesztési lépésre és több eszközre van szükség a keresztfejlesztéshez, mint az önálló üzemeltetésű fejlesztéshez.
A helyzetet tovább rontja, hogy a mikrovezérlők világában színes „multikulturalizmus” tapasztalható, és szó sem lehet szabványosításról, mint az x86-os processzorokról. Egy bizonyos de facto szabvány kialakult az ARM architektúrával, de ha itt valóban a szabványról beszélnénk, az túlzás lenne, mert először is vannak ARM-ek különböző generációkban és alapvető változatokban (ARM 7/9/11, Cortex -A, -R, -M), másodsorban pedig a mikrovezérlő lényege, hogy a perifériákat integrálják a chipbe.
Tehát a piacon lévő tízezer mikrovezérlő közül senki sem azonos. Helyesebb itt szélesebb körű és kevésbé elterjedt architektúrákról beszélni - mert a mikrovezérlőkben minden tulajdonképpen saját tulajdonú.
Sokoldalú feladat
Az egyik Infineon architektúrát támogató eszközlánc a Tasking/Altium. Akár az XC800 sorozat a maga 8051 magjával, akár a 16 bites XC2000/C166 család, az ARM vagy a Tricore - az Altium mindegyikük számára megfelelő verziót kínál. A Tasking saját fejlesztői környezettel rendelkezik a 8 és 16 bites fájlokhoz, azaz az XC800 és az XC2000/166, amely az összes segédeszközt (fordító, összeállító, összekapcsoló, kereszthiba-elhárító) egyetlen felület alatt egyesíti.
A "VX-Tools" név alatt található az XC2000/166, ARM és TriCore verzió, amely illeszkedik az Eclipse keretrendszerhez a CDT-vel (C Development Tools). A feladatkezelő eszközök működhetnek együtt a DAvE-vel, és támogatják például a kód ellenőrzését a MISRA-C szabvány szerint, ami fontos az autóipari projektek számára.
Ék: egy teljes ökoszisztéma
A Keil eszközei széles körű támogatást nyújtanak az Infineon architektúrák számára is - a TriCore kivételével. A Keil a 8, 16 és 32 bites fejlesztői eszközökkel is rendelkezik. Az ARM leányvállalataként és az ARM német leányvállalataként Keil széles körű támogatást kínál ehhez az architektúrához.

1. ábra: A mikrokontroller fejlesztőkészlet (MDK) különböző verziókban érhető el különböző architektúrákhoz. Az ARM verzió nemcsak fejlesztőeszközöket tartalmaz, hanem köztes programokat is.
A Keil eszközökkel a felhasználói felület a µVision fejlesztői környezet, projektmenedzserrel, szerkesztővel és hibakeresővel. A Keil teljes szerszámláncát MDK-nak (Microcontroller Development Kit) hívják, és sokkal többet tartalmaz, mint a fordítóval, az összeállítóval, a linkerrel és a hibakeresővel (1. kép).
Az MDK-ARM képes olvasni a DAvE3 segítségével generált projektekben, de tartalmaz olyan kiterjesztéseket is, amelyek megkönnyítik a mérnököt a nem differenciálódó termékjellemzők fejlesztésében: fájlrendszer, USB gazdagép és eszközverem, TCP/IP hálózat, CAN interfész és egy A felhasználói felület megrajzolásához szükséges könyvtárak a teljes verzióban találhatók. Az RTX segítségével még létezik egy olyan valós idejű operációs rendszer, amely biztosítja a többfeladatos szoftverek infrastruktúráját, és a forráskódban található.
A 8 és 16 bites architektúrákkal az eszközkészletet PK51 vagy PK166 néven hívják, a környező szoftver ökoszisztéma pedig kissé karcsúbb, de még a 8051 esetében is létezik RTX kernel. A hibakeresési információk cseréje szintén biztosított: Az ULINK2-vel a Keil olyan hibakereső adaptert kínál, amely a fejlesztő PC USB-portjához és a célrendszerhez csatlakozik a JTAG-on keresztül vagy az ARM módokon keresztül Serial Wire Debug (SWD) ) vagy Serial Wire Viewer (SWD). Ugyanakkor a célrendszer flash memóriája ezen az eszközön keresztül programozható.
Az ULINKpro hibakereső adapter további funkciókat kínál, amelyek rögzíthetik a parancsok nyomát, beállíthatják a töréspontokat és kiolvashatják a memória tartalmát is. Ez lehetővé teszi a teljes programsorozat elemzését.
IAR: univerzális, de csak két Infineon architektúrához
Egy másik nagyon univerzális fejlesztési környezet az IAR Workbench, amely állítólag a legtöbb mikrovezérlő számára alkalmas. Az Infineon esetében azonban csak az ARM és az XC800 architektúrák támogatottak. A 8051 verzió különféle bővítési szakaszokban érhető el, amelyek például a maximálisan megengedett kódméretben, a valós idejű operációs rendszerek támogatásában és a MISRA-C-Checker jelenlétében különböznek. Az ARM verzió számos kapcsolatban áll a partnereszközökkel, például a hardver hibakeresőkkel vagy a valós idejű operációs rendszerekkel.
Az IAR olyan hardverfejlesztő eszközöket is kínál, mint például a JTAG hibakereső J-Link, amely az XMC4000 összetevők chip-belső hibakeresési funkcióival foglalkozik, vagy az I-Jet, a kód és az energiafogyasztás korrelációjára szolgáló eszköz. Ez lehetővé teszi a szoftver optimalizálását oly módon, hogy a vezérlő a lehető legkevesebb energiát használja fel, vagy azonosíthatók azok a pontok, amelyek a különösen nagy energiafogyasztásért felelősek. Az IAR Eclipse integrációja még viszonylag új. Eddig csak egy technológiai előnézeti program létezik, amellyel a C/C ++ fordítók, összeállítók, linkelők és C-Spy hibakeresők integrálhatók az Eclipse-be, majd kicserélhetik a megfelelő GNU-eszközöket.
Wind River és HighTec: a TriCore különlegességei
Mint egyedülálló Infineon architektúra, a TriCore kétségkívül egzotikusabb, mint az XMC4000 ARM Cortex-M4 magjával. Az eszközök választéka is kisebb a TriCore esetében. Itt szóba kerülnek a fent említett (Eclipse-hez tartozó) VX-eszközök vagy a Wind River Diab fordítója. A Diab korábban független vállalat volt, amelyet nem sokkal az ezredforduló után vásárolt meg a Wind River.
Még akkor is, ha nem hallasz mást a Diab-tól - az eszközök továbbra is léteznek, és a Diab fordítót az a memória-optimalizált kód jellemzi, amelyet előállít. Beilleszthető a Wind River Workbench fejlesztői környezetébe. A TriCore mellett a Diab fordító szinte az összes többi modern 32 bites architektúrát támogatja.
A TriCore kód generálásának másik lehetősége a Hightec EDV-Systeme TriCore fejlesztői platformja. A Hightec az Eclipse keretrendszert és egy GNU-alapú C/C ++ fordítót használ. A mikrovezérlő kiválasztása után a fejlesztői platform önállóan létrehoz egy alapvető kódstruktúrát a szükséges inicializálásokkal és egy fő hurokkal a házon belüli fejlesztés megkezdéséhez vagy egy DAvE-projekt importálásához.
2. ábra: A csúcstechnológiájú fordító programozhatja a kódot, hogy grafikus áttekintésben jelenítse meg a kód lefedettségét.
A fordító pragma utasításokon keresztül használhatja a TriCore vezérlő különböző címzési módjait, amelyekkel szabályozható a kód és az adatok optimális elosztása a memóriában, valamint a futásidejű optimalizálás. A fordító alkalmazkodhat egy AUTOSAR operációs rendszer együttéléséhez az ETAS, az Elektrobit vagy a Vector részéről is.