MSP430-Toolchain
Archivierte Anleitung
Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.
Artikel für fortgeschrittene Anwender
Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
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.
Installation¶
Alle notwendigen Pakete sind direkt über APT verfügbar [1]:
binutils-msp430
gcc-msp430
gdb-msp430
msp430-libc
msp430mcu
mspdebug
Befehl zum Installieren der Pakete:
sudo apt-get install binutils-msp430 gcc-msp430 gdb-msp430 msp430-libc msp430mcu mspdebug
Oder mit apturl installieren, Link: apt://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.
Benutzung/Konfiguration¶
"Hello World"¶
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
Programm auf das Target übertragen¶
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
Links¶
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