Mikrokontrolleres debugger tervezése

OData támogatás
Konzulens:
Dr. Benesóczky Zoltán
Méréstechnika és Információs Rendszerek Tanszék

Bevezető

A legtöbb mikrokontrolleres fejlesztőeszköz és debugger túl drága. Továbbá gyakran előfordul, hogy a fejlesztéshez használt kontrollert nem támogatja a már meglévő debugger. Ebből kifolyólag gyakran felmerül az igény egy platformfüggetlen debuggerre. Ennek a projektnek a célja egy szoftveres elven működő debugger fejlesztése. A felhasználó programjának kódjához hozzáadott forráskódot használ fel a működéshez a debugger. A debugger forráskód könnyen átírható különböző eszközökre.

Működés

A debugger forrásfájlokat hozzá kell fordítani a felhasználó forráskódjához. Ezek a hozzáfordítandó kódok C-ben íródtak, ebből az következik, hogy csak C-ben írt projektek támogatottak! A felhasználó be tud illeszteni a kódjába töréspontokat, amelyek makrók, amik blokkolják a program futását, elvégzik az adatátvitelt. Ezek a törésponti makrók használhatók a program debuggolására. A törésponti makró hasonló az In-System debuggerek code breakpoint nevű szolgáltatásához. Töréspontba éréskor a megszakítások (és a watchdog timer) letiltásra kerül, majd a megjelölt változók értékeit a target oldali debugger program továbbítja a debugger hardverén keresztül a PC-nek. Ugyanekkor lehetséges tetszőleges memóriacímről is adatot kiolvasni. A törésponti makró leblokkolja a program futását, a blokkolás feloldása csak a felhasználó által kiadott paranccsal lehetséges. Lehetőség van arra, hogy az összes töréspont trace módba legyen állítva. Ebben az esetben, töréspontba éréskor automatikusan továbbfut a program (adatcsere után). Megjegyezzük, hogy a töréspont engedélyezés/letiltás, illetve annak elhelyezése csak a fordítás előtt lehetséges. Ha a mikrovezérlő képes önprogramozásra, akkor a debuggeren keresztül történő programletöltés is megvalósítható. Így a fejlesztéshez elég csak a debuggert csatlakoztatni a target kártyához. Azonban a bootloader firmware beprogramozásához szükséges egy külső programozó eszköz.

Hardver:

A debugger (külső hardver) három vezetékkel csatlakozik a target kártyához: GND, RESET, DATA. Amennyiben szükséges, egy negyedik tápvezetékkel 5V-os tápfeszültséggel látható el a target kártya. Az egyvezetékes adatátvitel azért előnyös, mert nem kell erre a célra sok értékes mikrokontroller kivezetést elpazarolni. Hátránya azonban az, hogy sokkal lassabb így a kommunikáció. A target oldali kártya egy mikrokontrollerrel szerelt debugger célhardverre csatlakozik, ami periféria-illesztést valósít meg a target és a PC között.

A beépülő forrásállományok programmemória igénye körülbelül 3kB. A bootloader firmware kevesebb mint 2 kB helyet foglal a programmemóriában. A debugger beépülő forrásállományai IAR és WinAVR fordítókkal egyaránt lefordíthatóak. Ezek a forráskódok más fordítók használata esetén (CodeVision vagy ImageCraft) könnyen átírhatóak.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.