Archiv/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:

  1. Installation von Programmen

  2. Ein Terminal öffnen

  3. Pakete aus dem Quellcode erstellen

  4. Archive entpacken

  5. Root-Rechte

  6. Einen Editor öffnen

Inhaltsverzeichnis
  1. Installation
  2. Benutzung/Konfiguration
    1. "Hello World"
    2. Programm auf das Target übertragen
  3. Links

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:

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]:

Paketliste zum Kopieren:

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