ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.

MSP430-Toolchain

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Der MSP430 {en} 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) {en}. 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 {en} von TI verwendet werden.

Installation (ab Oneiric)

Ab 11.10 sind alle notwendigen Pakete direkt über Apt verfügbar [1]:

  • binutils-msp430

  • gcc-msp430

  • gdb-msp430

  • msp430-libc

  • msp430mcu

  • mspdebug

Wiki/Vorlagen/Installbutton/button.png 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.

Installation (für Lucid)

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

Wiki/Vorlagen/Installbutton/button.png 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 

MSP430GCC4 installieren

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 

mspdebug installieren

Zuerst muss der Quellcode des Programms von der Homepage {en} heruntergeladen werden. Danach wird das Archiv entpackt[4] und im entstandenen Verzeichnis das Programm kompiliert[3] und mit Administratorrechten[5] installiert.

Hinweis!

Fremdsoftware kann das System gefährden.

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

ubuntuusers.local › WikiMSP430-Toolchain