[[Vorlage(Archiviert)]] [[Vorlage(Fortgeschritten)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:Programme kompilieren: Pakete aus dem Quellcode erstellen] [:Packprogramme: Archive entpacken] [:sudo: Root-Rechte] [:Editor: Einen Editor öffnen] }}} [[Inhaltsverzeichnis()]] Der [http://focus.ti.com/mcu/docs/mcuprodoverview.tsp?sectionId=95&tabId=140&familyId=342 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 [http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_(MSP-EXP430G2) 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 [:Entwicklungsumgebungen: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 [http://processors.wiki.ti.com/index.php/EZ430-Chronos eZ430-Chronos] {en} von TI verwendet werden. = Installation = Alle notwendigen Pakete sind direkt über [:APT:] verfügbar [1]: {{{#!vorlage Paketinstallation binutils-msp430 gcc-msp430 gdb-msp430 msp430-libc msp430mcu mspdebug }}} Leider gibt es hier einen kleinen [bug:860045: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 {{{#!vorlage Befehl 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. {{{#!code c #include 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: {{{#!vorlage Befehl 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. {{{#!vorlage Befehl mspdebug rf2500 (mspdebug) prog led (mspdebug) run }}} Zudem kann mspdebug im Simulationsmodus gestartet werden: {{{#!vorlage Befehl mspdebug sim }}} Damit die Anwendung `led` auf Fehler überprüft werden kann, kann in der mspdebug-Konsole `gdb` eingegeben werden: {{{#!vorlage Befehl (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:udev-Regel] für den MSP430 einzurichten. Zunächst liest man mit {{{#!vorlage Befehl 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 {{{#!code 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 = * [http://mspgcc4.sourceforge.net/ mspgcc4] {en} Homepage der GCC 4.x Toolchain für die Texas Instruments MSP430 MCUs * [http://mspdebug.sourceforge.net/rProjektseite] {en} von mspdebug * [http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_(MSP-EXP430G2) Offizelles Wiki des Launchpad von Texas Instruments] {en} * [http://focus.ti.com/mcu/docs/mcuprodoverview.tsp?sectionId=95&tabId=140&familyId=342 Übersicht der MSP430-Produktfamilie] {en} * [https://estore.ti.com/MSP-EXP430G2-MSP430-LaunchPad-Value-Line-Development-kit-P2031.aspx MSP430 LaunchPad (MSP-EXP430G2) im TI Online Shop] {en} für 4,30 USD (im Moment versandkostenfrei) * [http://www.mikrocontroller.net/articles/MSP430 MSP430 im Microcontroller Wiki] {de} * [http://msp430.ms.funpic.de/doku.php?id=msp430:entwicklungumgebung] {de} Eclipse als IDE für MSP-GCC #tag: Hardware, Installation, Programmierung, Elektronik