Ubuntu 12.10 „Quantal Quetzal“
Ubuntu 11.10 „Oneiric Ocelot“
Ubuntu 10.04 „Lucid Lynx“
Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
Der MSP430 ist ein 16-Bit-Microcontroller (RISC-CPU) von Texas Instruments (TI). Für den Einstieg in die Welt der Microcontroller eignet sich das günstige Entwicklungsboard MSP430 LaunchPad (MSP-EXP430G2)
. Die für die Entwicklung benötigten Werkzeuge werden von TI leider nur für Windows zum Download bereitgestellt. Damit Software auch von einem Linux-Rechner entwickelt werden kann, müssen folgende Komponenten installiert werden:
Ein einfacher Editor oder eine Entwicklungsumgebung um die Software zu schreiben.
Der Compiler zum übersetzen des Programmcodes (z.B. C) in die Maschinensprache.
Mit einem Debugger kann das Programm Schritt für Schritt analysiert werden.
Ein Programm (in diesem Fall mspdebug
), das den kompilierten Quellcode auf den Microprozessor ("Target") überträgt.
Dieser Werkzeugsatz kann ebenfalls für die Entwicklung der Sportuhr eZ430-Chronos von TI verwendet werden.
Ab 11.10 sind alle notwendigen Pakete direkt über Apt verfügbar [1]:
binutils-msp430
gcc-msp430
gdb-msp430
msp430-libc
msp430mcu
mspdebug
mit apturl
Paketliste zum Kopieren:
sudo apt-get install binutils-msp430 gcc-msp430 gdb-msp430 msp430-libc msp430mcu mspdebug
sudo aptitude install binutils-msp430 gcc-msp430 gdb-msp430 msp430-libc msp430mcu mspdebug
Leider gibt es hier einen kleinen Bug beim gdb-msp430, der auftritt wenn man GDB schon installiert hat, da einige Dateien aus diesem Paket überschrieben werden sollen. Dieser lässt sich aber umgehen indem man ein
sudo apt-get -o Dpkg::Options::="--force-overwrite" install gdb-msp430
verwendet und damit die Dateien aus dem GDB-Paket überschreibt.
Folgende Pakete müssen installiert [1] werden:
git-core
gcc-4.4
texinfo
patch
libncurses5-dev
zlibc
zlib1g-dev
libx11-dev
libusb-dev
libreadline6-dev
mit apturl
Paketliste zum Kopieren:
sudo apt-get install git-core gcc-4.4 texinfo patch libncurses5-dev zlibc zlib1g-dev libx11-dev libusb-dev libreadline6-dev
sudo aptitude install git-core gcc-4.4 texinfo patch libncurses5-dev zlibc zlib1g-dev libx11-dev libusb-dev libreadline6-dev
Zunächst wird das Build-Skript und Patches vom der SVN-Quelle heruntergeladen. Diese Bestandteile sind für die Kompilierung des Werkzeugsatzes notwendig. Danach in das erstellte Verzeichnis mspgcc4 wechseln und das Build-Skript ausführen[2].:
git clone git://mspgcc4.git.sourceforge.net/gitroot/mspgcc4/mspgcc4
In der Datei buildgcc.pl muss $BINUTILS_VERSION = "2.21";
in $BINUTILS_VERSION = "2.21.1";
geändert werden.
cd mspgcc4 && sudo perl buildgcc.pl
Dieses Skript erfragt die Versionen des Compilers GCC (Version gcc-4.4.5), des Debuggers gdb (Version gdb-7.2), der GUI des Debuggers Insight (Version insight-6.8-1), der libc (Version ti_20110213) und dem Installationspfad (/opt/msp430-gcc).
Jetzt werden die Quelldateien für die Komponenten heruntergeladen, ggf. gepatcht und kompiliert[3]. Die fertigen Programme stehen nun im eingestellten Installationspfad zur Verfügung.
Damit die Werkzeuge überall genutzt werden können, muss die PATH-Systemvariable in der Konfigurationsdatei ~/.bashrc angepasst werden. Hierzu reicht es nachfolgenden Befehl auszuführen, dieser hängt am Ende der Datei die Erweiterung der PATH-Variablen an:
echo 'export PATH="${PATH}:/opt/msp430-gcc/bin/"' >> ~/.bashrc
Die folgende Konfiguration bezieht sich auf das oben vorgestellte Entwicklungsboard LaunchPad von TI. Mit anderen Microprozessoren der MSP430-Familie sollte es ähnlich ablaufen, bzw. es muss die eingebundene Headerdatei ausgetauscht werden. Um den installierten Werkzeugsatz und das Entwicklungsboard zu testen, wird das folgende "Hello World"-Programm in einem Editor[5] erstellt. Die grüne LED des Entwicklungsboards sollte beim korrekten Ablauf des Programms blinken.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include <msp430.h> int main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer P1DIR = 0x40; // P1.6 output (green LED) P1OUT = 0; // LED off for (;;) // Loop forever { volatile unsigned long i; P1OUT ^= 0x40; // Toggle P1.6 output (green LED) using exclusive-OR i = 99999; // Delay do (i--); // busy waiting (bad) while (i != 0); } } |
Zunächst wird das Programm kompiliert:
msp430-gcc -mmcu=msp430g2553 -o led ./led.cpp
Zur Übertragung des zuvor kompilierten Programms led
wird das Programm mspdebug
verwendet. Die folgenden Befehle starten die mspdebug-Konsole, laden das Programm led
und führen es auf dem Target aus.
mspdebug rf2500 (mspdebug) prog led (mspdebug) run
Zudem kann mspdebug im Simulationsmodus gestartet werden:
mspdebug sim
Damit die Anwendung led
auf Fehler überprüft werden kann, kann in der mspdebug-Konsole gdb
eingegeben werden:
(mspdebug) gdb
Dies startet ein Debugproxy auf dem Port 2000. So kann mittels dem zuvor kompilierten msp430-gdb
das led-Programm überprüft werden.
Damit man nicht immer Root-Rechte benötigt, um mspdebug zu starten, ist es Vorteilhaft, eine udev-Regel für den MSP430 einzurichten. Zunächst liest man mit
lsusb | grep -i ez430
die ID des MSP430 aus, was wie folgt aussehen kann:
Bus 002 Device 004: ID 0451:f432 Texas Instruments, Inc. eZ430 Development Tool
Danach erstellt man eine Datei [5][6] im Ordner /etc/udev/rules.d/. Diese kann zum Beispiel 80-usb-msp430.rules heißen. Darin fügt man dann in einem Editor mit Root-Rechten die Zeile
1 | ATTRS{idVendor}=="0451", ATTRS{idProduct}=="f432", MODE="0660", GROUP="plugdev" |
ein. Die Zahlen bei idVendor
und idProduct
sind natürlich dem verwendeten Gerät anzupassen.
Danach muss man nur noch den eigenen Benutzer der Gruppe plugdev
hinzufügen, um auch als normaler Benutzer Zugriff auf das MSP430-Gerät zu haben. Dies sollte bei Ubuntu schon standardmäßig der Fall sein. Falls nicht kann man dies entsprechend nachholen: Benutzer und Gruppen
mspgcc4 Homepage der GCC 4.x Toolchain für die Texas Instruments MSP430 MCUs
http://mspdebug.sourceforge.net/rProjektseite von mspdebug
MSP430 LaunchPad (MSP-EXP430G2) im TI Online Shop für 4,30 USD (im Moment versandkostenfrei)
http://msp430.ms.funpic.de/doku.php?id=msp430:entwicklungumgebung Eclipse als IDE für MSP-GCC