2009. május 6., szerda

MSP430 debug Eclipse alatt

Dacára annak, hogy szeretjük a TinyOS-t, érdemes lehet sima gcc-ben is programozni az msp430 mikrovezérlőket. Ez a leírás arról szól, hogy hogyan állítsuk össze magunknak a szükséges környezetet. Bár Windows XP alatt állítottam össze a hozzávalókat, alapvetően tetszőleges natív Linux disztribúció és Cygwin alatt is alkalmazhatóak az itt leírtak, néhány értelemszerű módosítással. Ez a leírás ezen az angol nyelvű tutorialon alapszik.
A célhardver egy eZ430-F2013 eszköz, ami tartalmaz egy JTAG/TI spy-bi-wire programozót, valamint a célprocesszort egy zöld LEDdel. Az ehhez és hasonló eszközöhöz való driver online nem elérhető, azt az eszközzel együtt kapott CD-n találjuk meg (egy TIUSBFET.zip nevű file-t kell keresni...). Erre a driverre mindenképpen szükség van a programozáshoz/debughoz! Lássuk tehát, hogy mit kell ezen felül tennünk:
Step 1.: Töltsük le és installáljuk a legújabb mspgcc fordítót és függvénykönyvtárat az
mspgcc.sourceforge.net oldalról. Ez a bejegyzés írásának idején a 2008. 12. 30-i snapshot. Az installer alapértelmezés szerint felteszi a DirectIO nevű drivert is, amely közvetlen hardver elérést tesz lehetővé és a programletöltéshez lesz szükséges később. Windows Vista alatt a driver nem működik! A PATH környezeti változóba be kell rakni a $INSTALL_PATH\msp430\bin könyvtárat installálás után kézzel. A telepítéshez nem szükséges Cygwin; bár enélkül az installer feltelepít néhány további függvénykönyvtárat is.
Step 2.: Eclipse: Céljainkhoz elegendő az Eclipse for C/C++ Developers csomag letöltése és kitömörítése. Ez lényegesen kisebb mint a teljes Eclipse. Tartalmaz továbbá egy Mylyn nevű csomagot, ami egyszerűbb projectekhez nem létfontosságú, később hasznos lehet. Az Eclipse-t nem kell külön telepíteni, hanem elegendő kicsomagolni a célkönyvtárban. A cikk írásakor a 3.4-es (Ganymede) verziónál tartott.
Step 3.: Az integrációhoz szükségünk van a
Zylin CDT csomagra: Ezt a szokásos módon telepíthetjük Eclipse alá:


Step 4.: Ezután nincs más dolgunk, mint készíteni egy új projectet:


A Project->Properties menüben néhány helyen át kell írni a default gcc fordítót msp430-gcc-re, valamint a célprocesszort is definiálni kell a parancssorban, például:
msp430-gcc -mmcu=msp430x2013
Ezen kívül még a library eléréseket kell megadni a fordító számára:

"C:\Program Files\mspgcc\lib";
"C:\Program Files\mspgcc\msp430\lib".

Ehhez álljon itt segítségül néhány screenshoot:







Ezután készítsük el a projectet. Én a szokásos, neten is terjengő blink alkalmazással kezdtem:

Debug üzemmódba a képernyő jobb felső sarkában található bogárra kattintva válthatunk:

A debughoz használt msp430-gdbproxy alkalmazást az alábbiak szerint állítsuk be:

A main fülön a parancssori paraméterek a következőek:
--port=3333 msp430 --spy-bi-wire TIUSB
Ezután létre kell hoznunk egy debug konfigurációt:



A Commands fülön a következő parancsokat másoljuk be az Initialize commands dobozba:
set remoteaddresssize 16
set remotetimeout 999999
set download-write-size 512
target remote localhost:3333
set remote memory-write-packet-size 512
set remote memory-write-packet-size fixed
set remote memory-read-packet-size 512
set remote memory-read-packet-size fixed
monitor erase all
load Debug/test_blink
ahol az utolsó sorba értelemszerűen a megfelelő binárist írjuk! Ezután nincs más hátra, mint elindítani az msp430-gdbproxy konfigurációt, ami után a következő kép fogad, amely szerint türelmesen várakozik a 3333-as porton:

Ekkor elindíthatjuk a debugot is, ami lefordítja és fel is tölti a programunkat. amit ezután elindítani/leállítani pedig a szokásos magnógombokkal tudunk:

A megszokott debug eszközök pedig a jobb oldalon és felül találhatóak.

Attila