>> Artikelansicht

08.03.2016 /He [Druckansicht]

MSP-EXP430G2 und Raspberry Pi 3 mit MSP430-gcc-toolchain

...ein 16-Bit Co-Prozessor für den Raspberry Pi

TI MSP-EXP430G2 In den letzten Artikeln wurden 8-Bit und 32-Bit Mikrocontroller besprochen nun fehlt noch ein 16-Bit Mikrocontroller, die Wahl hierfür viel auf den MSP430 von Texas Instruments[http://www.ti.com/tool/msp-exp430g2]. Ziel ist es auch hier direkt auf dem Raspberry Pi Programme zu übersetzen und auf die Zielplattform, dem MSP430 zu übertragen. Unterstützung erhält man in diesem Fall direkt vom Hersteller der in Zusammenarbeit mit Red Hat einen gcc port zur Verfügung stellt. Das MSP430-gcc-toolchain ist auf der Seite [http://www.ti.com/tool/msp430-gcc-opensource] erhältlich muss aber für den Raspberry Pi erst einmal übersetzt werden. Zu erwähnen sei noch die Vielfalt an MSP430 Varianten und eine große Community im Open-Source Bereich. Auf der 43oh Internetseite [http://43oh.com/] findet man viele Tutorials und Projekte rund um den MSP430.


Motivation

Ein interessantes Projekt Namens ICBM das kurz auf der 43oh.com Seite vorgestellt wurde, soll für den MSP430-gcc angepasst und übersetzt werden.
Link zum Artikel: [http://43oh.com/2014/08/the-ultimate-launchpad-frontend-icbm/] und das dazugehörige Video: MSP430 DAC GUI V2 [https://youtu.be/c9o1gR79EJ0]

Voraussetzungen

TI MSP-EXP430G2 und Raspberry PI 2 Model B

Heute wird ein Raspberry Pi 3 Model B eingesetzt, ein Raspberry Pi 2 Model B kann auch verwendet werden, da ab diesem Model die Performance gewährleistet wird, um so große Toolchains "komfortabel" übersetzen zu können. (Siehe Bild) Man muss bedenken, dass jeder Misserfolg viel Zeit in Anspruch nimmt, Fehler zu beheben um den Übersetzungsvorgang wieder vom neuen anzustossen. Weiterhin kommt als Betriebssystem Raspbian/Debian Jessie Lite (February 2016) zum Einsatz, das unter [http://www.raspberrypi.org/downloads/] zum Herunterladen bereit steht. Da der Speicherbedarf für Betriebssystem und Software groß ist, sollte eine micro-SD Karte mit mindestens 16GB oder besser 32GB gewählt werden.


Installation der Software

(1.0) System aktuallisieren und Tools einspielen

System aktuallisieren und notwendige Pakete einspielen.
  1. #System-Aktuallisierung
  2. apt-get update
  3. apt-get upgrade
  4. #notwendige Tools installieren
  5. sudo apt-get install gcc make bc screen ncurses-dev
  6. sudo apt-get install flex bison
  7. sudo apt-get install libgmp3-dev
  8. sudo apt-get install libmpfr-dev
  9. sudo apt-get install libmpc-dev
  10. sudo apt-get install autoconf
  11. sudo apt-get install texinfo
  12. sudo apt-get install python2.7-dev
  13. sudo apt-get install python-yaml
  14. sudo apt-get install libexpat1-dev
  15. sudo apt-get install libtool libtool-bin
  16. #GNU Tools for ARM Embedded Processors - https://launchpad.net/gcc-arm-embedded
  17. sudo apt-get install libisl-dev
  18. #MSP430-gcc
  19. sudo apt-get install expect
  20. sudo apt-get install expat
  21. sudo apt-get install libx11-dev
  22. #mspdebug
  23. sudo apt-get install libreadline-dev
  24. #for compiling srecord from source (1.64)
  25. sudo apt-get install libboost-dev
  26. sudo apt-get install libtool
  27. sudo apt-get install libgcrypt-dev
  28. sudo apt-get install ghostscript
  29. #misc
  30. sudo apt-get install minicom

(1.1) MSP430-gcc-toolchain installieren

Um das MSP430-gcc-toolchain, direkt auf dem Raspberry Pi übersetzen und danach installieren zu können, muss zuvor der MSP430-gcc Sourcecode und die Header Dateien heruntergeladen werden. Dazu gehen man auf die Seite:
[http://www.ti.com/tool/msp430-gcc-opensource] und klicken auf den Button Get Software.
Hier verwendete Version: MSP430-gcc 3_05_00_00
Nun laden wir folgende Dateien auf den PC herunter:
msp430-gcc-support-files.zip Header Files 18252K
msp430-gcc-source.tar.bz2 Redhat GCC source files
und kopieren diese nach dem Herunterladen vom PC per
scp -P22 msp430-gcc-source.tar.bz2 msp430-gcc-support-files.zip pi@{IP_ADRESSE}:~
auf den Raspberry Pi.

  • TIP:
    Man kann auch die Links von der Internetseite kopieren und dann per wget [LINK_ZUR_DATEI] direkt auf den Raspberry Pi herunterladen.

(1.2) MSP430-gcc übersetzen und installieren

Als Ziel für die Installation wählen wir /opt/toolchain/msp430 um den Compiler global zugänglich zu machen. Das Übersetzen des Quellcodes dauert knapp 3 Stunden.

Wechsel in das Heimatverzeichnis
  1. cd
  2. tar -xf msp430-gcc-source.tar.bz2
  3. cd ./sources
  4. mkdir ./build
  5. cd ./build
  6. ../tools/configure --target=msp430-none-elf --program-prefix=msp430- --prefix=/opt/toolchain/msp430 --enable-languages=c
  7. #info: real: 144m38.056s user: 102m39.630s sys: 7m18.040s
  8. make
  9. sudo make install
  10. #Header Dateien installieren
  11. cd
  12. unzip msp430-gcc-support-files.zip
  13. cd ./msp430-gcc-support-files
  14. sudo cp *.ld /opt/toolchain/msp430/msp430-none-elf/lib/430/
  15. sudo cp *.h /opt/toolchain/msp430/msp430-none-elf/include/
  16. #Compiler Pfad zur Datei ~/.bashrc hinzufügen und speichern (erst nach Neustart aktiv)
  17. nano ~/.bashrc
  18. export PATH=/opt/toolchain/msp430/bin:$PATH
  19. #Info: nach dem Speichern mit . ~/.bashrc neu laden

wenn man den Compiler Pfad der Datei ~/.bashrc hinzugefügt hat, kann man mit . ~/.bashrc die Datei neu laden. Eine schnelle Überprüfung, ob alles richtig installiert ist, geben wir noch msp430-gcc --version ein.

msp430-gcc --version
  1. msp430-gcc (GCC) 4.9.1 20140707 (prerelease (msp430-14r1-364)) (GNUPro 14r1) (Based on: GCC 4.8 GDB 7.7 Binutils 2.24 Newlib 2.1)
  2. Copyright (C) 2014 Free Software Foundation, Inc.
  3. This is free software; see the source for copying conditions. There is NO
  4. warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

(2.0) MSPdebug installieren

Um Programme, die auf dem Raspberry Pi mittels MSP430-gcc übersetzt wurden, auf das MSP430G2-Launchpad zu übertragen,wird die Software mspdebug von [http://mspdebug.sourceforge.net/] benötigt.
Da die Software mit dem USB-Bus kommuniziert, muss man auch libusb inclusive Headern installiert sein. Hierfür wird von der "Raspbian-Distributon" ein fertiges Softwarepaket angeboten, das man per "apt-get install" einspielen kann. Ferner benötigt man noch das srecord Paket das unter [https://sourceforge.net/projects/srecord/] erhältlich ist.

mspdebug, libusb und srecord installieren
  1. #libusb installieren
  2. sudo apt-get install libusb-dev libusb-1.0-0-dev
  3. cd
  4. mkdir ./msp430
  5. cd ./msp430
  6. #http://mspdebug.sourceforge.net/
  7. git clone git://git.code.sf.net/p/mspdebug/code mspdebug
  8. cd ./mspdebug
  9. make
  10. sudo make install
  11. cd ..
  12. #1. Möglichkeit srecord von source übersetzen und installieren
  13. #wget https://sourceforge.net/projects/srecord/files/srecord/1.64/srecord-1.64.tar.gz/download -O srecord-1.64.tar.gz
  14. wget http://netix.dl.sourceforge.net/project/srecord/srecord/1.64/srecord-1.64.tar.gz
  15. tar -xf srecord-1.64.tar.gz
  16. cd ./srecord-1.64
  17. ./configure
  18. make
  19. sudo make install
  20. sudo ldconfig
  21. #2. Möglichkeit srecord per apt-get installieren (nicht aktuell)
  22. sudo apt-get install srecord

Da mspdebug root Rechte benötigt, ruft man mspdebug mit vorangestelltem sudo Befehl auf.

sudo mspdebug [options] [command ...]

Beispiel:
sudo mspdebug rf2500 "prog {program_name}.elf"
Hilfe:
sudo mspdebug --help

(3.0) ICBM von Nate Zimmer an gcc anpassen

Wie zu Beginn des Artikels schon erwähnt, kommt diesmal nicht das Blinky Programm zum Einsatz, sondern ein nützliches Tool für den MSP430.Das Tool wird auf der Seite [http://43oh.com/2014/08/the-ultimate-launchpad-frontend-icbm/] vorgestellt.Bevor man das Tool jedoch Übersetzen kann, steht die Anpassung des Quelltextes an den gcc und die Erstellung des Makefiles an.

  1. cd ~/msp430
  2. #ICBM Tool kopieren
  3. git clone https://github.com/NateZimmer/ICBM.git
  4. cd ./ICBM
  5. #tinyprintf kopieren
  6. git clone https://github.com/cjlano/tinyprintf.git
  7. #patch herunterladen
  8. wget http://www.messtechniklabor.de/downloads/h0010/ICBM_msp430gcc.patch
  9. #patch einspielen
  10. patch -p0 < ./ICBM_msp430gcc.patch
  11. #Makefile herunterladen
  12. wget http://www.messtechniklabor.de/downloads/h0010/Makefile
  13. make
  14. #Ausgabe sollte gegen Ende etwa so aussehen
  15. #...
  16. #Linking main.elf
  17. #
  18. # text data bss dec hex filename
  19. # 11408 1090 260 12758 31d6 main.elf
  20. #main.elf auf den Mikrocontroller übertragen(flashen)
  21. sudo make flash

(3.1) MSP430G2 mit Raspberry Pi verbinden

MSP430G2 Anordnung der Tasten S1(RESET)/S2 und LED1/LED2 Nun sind wir eigentlich schon fertig. Die Installation des ICBM Tool wird mit sudo make flash durchgeführt.
Zuvor verbindet man noch den Raspberry Pi und das MSP430-Launchpad über ein USB-Kabel.
Nach der Installation des ICBM Tool auf dem Mikrocontroller, kann dieser über die "virtuelle" serielle Schnittstelle angesprochen werden.Hierfür verwenden wir die Software minicom.

MSP - USB ACM device suchen
  1. dmesg |grep -i cdc
  2. [ 86.393112] cdc_acm 1-1.2:1.0: No union descriptor, testing for castrated device
  3. [ 86.393867] cdc_acm 1-1.2:1.0: ttyACM0: USB ACM device
  4. [ 86.397054] usbcore: registered new interface driver cdc_acm
  5. [ 86.397065] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
Kommunikation mit dem ICBM Tool
  1. minicom -D /dev/ttyACM0 -b 9600
  2. #Eingabe unter minicom:
  3. AT+GET_ADC
  4. #Ausgabe 412,564,551,546,437,498
Für weitere Infos schaut man sich das Video an:
MSP430 DAC GUI V2 [https://youtu.be/c9o1gR79EJ0]


Links für weitere Informationen

Homepage Raspberry Pi

[http://www.raspberrypi.org/]

Homepage Texas Instruments Launchpad MSP430

[http://www.ti.com/tool/msp-exp430g2]

MSP430 GCC Toolchain
[http://www.ti.com/tool/msp430-gcc-opensource]

mspdebug

[http://mspdebug.sourceforge.net]

SRecord

[https://sourceforge.net/projects/srecord]

ICBM von Nate Zimmer

[https://github.com/NateZimmer/ICBM.git]

MSP430 DAC GUI V2
[https://youtu.be/c9o1gR79EJ0]

Download

ICBM_msp430gcc.patch

ICBM_msp430gcc.patch | 4.3K
oder
wget http://www.messtechniklabor.de/downloads/h0010/ICBM_msp430gcc.patch

MSP430 Makefile

Makefile | 2.6K
oder
wget http://www.messtechniklabor.de/downloads/h0010/Makefile



nächster Artikel