MSPGCC je open-source vývojový balík pre MCU rady MSP430. Je k dispozícii pre Linux aj pre Windows. Obsahuje kompilátor C, assembler, debugger, vrátane podpory pre ladenie pomocou JTAG adaptéra (pre paralelný port aj pre USB).
Postup, uvedený v tomto článku, vám (snáď) pomôže rýchlo a jednoducho oživiť vývojové a ladiace prostredie MSPGCC pod Linuxom. Ako ladiaci prostriedok predpokladáme MSP430 JTAG adaptér pre paralelný port.
Tento postup je prakticky zhodný s postupom, ktorý nájdete v dokumentácii k MSPGCC, avšak obsahuje aj riešenia drobných problémov a prevedie vás krok za krokom celou inštaláciou.
Všetky informácie o projekte MSPGCC nájdete na stránke http://mspgcc.sourceforge.net.
Kde MSPGCC rastie
Napriek tomu, že existuje niekoľko predpripravených balíkov, odporúčam skompilovať najaktuálnejšiu verziu. Je to veľmi jednoduché a netreba sa ničoho báť. Hlavný dôvod je, že predpripravené balíky sú obvykle viazané na nejakú distribúciu Linuxu a ich inštalácia je oštara.
Takže začneme tým, že vytvoríme adresár v ktorom sa bude všetko odohrávať a nastavíme sa doňho. Predpokladajme, že pracujeme ako root.
mkdir mspbuild cd mspbuild
Potom stiahneme všetky potrebné balíky z pomocou cvs. Ak si cvs login bude pýtať heslo, stačí potvrdiť (prázdne heslo).
cvs -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc login cvs -z3 -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc co -P gcc cvs -z3 -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc co -P gdb cvs -z3 -d:pserver:anonymous@mspgcc.cvs.sourceforge.net:/cvsroot/mspgcc co -P msp430-libc
MSP430 balíky pre GCC a GDB sú rozšírením štandardného GCC a GDB. Preto potrebujeme stiahnuť aj samotné balíky GCC 3.2.3 a GDB 5.1.1 – verzia je dôležitá, pretože MSP430 rozšírenia sa pridávajú do štandardných balíkov a s inou verziou nemôžu fungovať. Posledný balík – binutils – síce priamo obsahuje podporu pre MSP430, ale rozširujúci patch pre podporu novších procesorov vyžaduje verziu 2.17.
wget ftp://sourceware.org/pub/gdb/old-releases/gdb-5.1.1.tar.bz2 wget ftp://ftp.gnu.org/gnu/gcc/gcc-3.2.3/gcc-core-3.2.3.tar.bz2 wget ftp://ftp.gnu.org/gnu/binutils/binutils-2.17.tar.bz2
Posledným balíkom je msp430-gdbproxy. Ten existuje iba v binárnej forme. Ak by uvedené linky nefungovali (je to jeden z mirrorov sourceforge.net), skúste použiť iný.
wget http://puzzle.dl.sourceforge.net/sourceforge/mspgcc/libHIL.so wget http://puzzle.dl.sourceforge.net/sourceforge/mspgcc/libMSP430.so wget http://puzzle.dl.sourceforge.net/sour ... ge/mspgcc/msp430-gdbproxy
Kompilácia
Všetky nasledujúce príkazy predpokladajú, že MSPGCC bude nainštalované v adresári /usr/local/msp430. Môžte skúsiť aj iný adresár, avšak to nemám odskúšané. ýalej predpokladáme, že na začiatku každého bloku príkazov sme nastavení v „našom“ adresári mspbuild.
Začneme s binutils. Predtým, ako ich skompilujeme, nahráme ešte patch potrebný pre novšie typy procesorov (príkaz wget je rozdelený na dva riadky, dajte pozorm aby ste na konci prvého riadku a na začiatku druhého riadku nepridali žiadnu medzeru):
tar xjf binutils-2.17.tar.bz2 cd binutils-2.17 wget http://mspgcc.cvs.sourceforge.net/*checkout*/mspgcc/binutils/ binutils-14x1-20x1-20x2-20x3-22x4-42x-42x0-461x.patch patch -p1 < binutils-14x1-20x1-20x2-20x3-22x4-42x-42x0-461x.patch ./configure --target=msp430 --prefix=/usr/local/msp430 make make install cd .. export PATH=$PATH:/usr/local/msp430/bin
Posledný príkaz nastaví cestu na binárky, toto nastavenie budeme potrebovať pri kompilácii knižníc.
Pokračujeme so samotným GCC:
tar xjf gcc-core-3.2.3.tar.bz2 cp -a gcc/gcc-3.3/* gcc-3.2.3 cd gcc-3.2.3 ./configure --target=msp430 --prefix=/usr/local/msp430 make make install cd ..
Nasledujú knižnice. Ak ste sa rozhodli inštalovať balík do iného adresára, ako preddefinovaného (/usr/local/msp430), je treba upraviť súbor Makefile v adresári msp430-libc/src – zmeňte nasledujúci riadok:
prefix = /usr/local/msp430
A samotná kompilácia:
cd msp430-libc/src mkdir msp1 mkdir msp2 make make install cd ../..
Na záver skompilujeme GDB:
tar xjf gdb-5.1.1.tar.bz2 cp -a gdb/gdb-5.1.1/* gdb-5.1.1 cd gdb-5.1.1 ./configure --target=msp430 --prefix=/usr/local/msp430 make make install cd ..
Posledným krokom ja skopírovanie msp430-gdbproxy a knižníc na správne miesto a občerstvenie zoznamu knižníc
cp msp430-gdbproxy /usr/local/msp430/bin chmod a+x /usr/local/msp430/bin/msp430-gdbproxy cp libHIL.so libMSP430.so /usr/local/lib ldconfig
Pred spustením ldconfig skontrolujte súbor /etc/ld.so.conf a súbory v adresári ld.so.conf.d, či obsahujú cestu /usr/local/lib.
Príprava paralelného portu pre msp430-gdbproxy
Ak nebudete pracovať s msp430-gdbproxy ako root, môžte naraziť na problém s paralelným portom – msp430-gdbproxy vyžaduje plný prístup k portu a ten je obvykle pre bežných užívateľov zakázaný (má nastavené práva 660).
Riešenie je jednoduché: zmeňte práva pre prístup k portu (samozrejme ako root):
chmod 666 /dev/parport0
Pokiaľ vaša distribúcia Linuxu používa udev, po ďalšom reboote sa práva nastavia opäť do pôvodného stavu. Preto je potrebné upraviť konfiguráciu udev. Na mojej Fedore FC5 sa konfiguračný súbor nachádza v:
/etc/udev/rules.d/50-udev.rules
Pre iné distribúcie si ho musíte nájsť sami. V tomto súbore nájdite niečo ako:
# lp devices KERNEL=="lp*", GROUP="lp", MODE="0660" KERNEL=="parport*", GROUP="lp", MODE="0660" KERNEL=="irlpt*", GROUP="lp", MODE="0660" KERNEL=="usblp*", GROUP="lp", MODE="0660" KERNEL=="usb/lp*", GROUP="lp", MODE="0660"
a zmeňte príslušný riadok na:
KERNEL=="parport*", GROUP="lp", MODE="0666"
Tým zabezpečíte, že po reboote udev nastaví prístupové práva správne. Samozrejme, existujú aj ďalšie riešenia – napríklad pridať užívateľa do skupiny lp a podobne. Akékoľvek riešenie, ktoré dovolí zapisovať užívateľovi do /dev/parport0, je akceptovateľné.
Úprava prostredia
Poslednou úpravou je pridanie cesty k programom balíka MSPGCC.
Ak používate bash, na koniec profilu (súbor .bashrc) pridajte riadok:
export PATH=$PATH:/usr/local/msp430/bin
Na záver
Už len ostáva pripojiť JTAG a MCU, nahrať prvý program a pustiť sa do experimentovania. Ale o tom nabudúce.