Einleitung

Ziel dieser Anleitung ist die Einrichtung einer komplett freien und uneingeschränkt (Linzenzbedingt) nutzbaren Entwicklungsumgebung zur Programmierung und zum Debuggen der MSP430-Prozessoren von Texas Intstruments. Die Einrichtung von Eclipse als Entwicklungsumgebung ist leider nicht ganz so trivial wie die Nutzung kommerzieller Tools, dafür lohnt der Aufwand in der Hinsicht, dass keinerlei Einschränkungen bezüglich Codegröße oder Codeoptimierung hingenommen werden müssen. Die Toolchain besteht dabei aus drei unterschiedlichen Komponenten:

  • Eclipse als Entwicklungsumgebung
  • dem mspgcc als Compiler und Linker
  • dem gdb als Debugger

Diese Anleitung basiert auf der hier veröffentlichten, diese ist die erste welche mit den für unseren Prozessor (MSP430F2618) benötigten, jeweils aktuellsten Versionen der einzelnen Tools zurecht kommt.

Einkaufsliste

Bevor mit der eigentlichen Einrichtung begonnen werden kann müssen eine Reihe von Tools heruntergeladen werden:

  1. Eclipse 3.4.1 Ganymede kann hier heruntergeladen werden, dass ebenfalls benötigte CDT-Plugin, zur C/C++ Entwicklung, ist in dem Verlinkten Paket schon enthalten.
  2. Den MSPGCC gibt es in der benötigten Version vom 30.12.2008 bei Sourceforge
  3. Für das Debuggen wird eine Installation von MinGW benötigt. Der automatische Installer kann ebenfalls bei Sourceforge heruntergeladen werden.
  4. Außerdem kann jetzt auch schon der Treiber für den USB-Seriell Schnittstellenwandler heruntergeladen werden, diesen gibt es beim Hersteller des IC's FTDI. Nach dem Download kann der Treiber sofort installiert werden.
  5. Als letzte Zutat werden noch die „hil.dll“ und „msp430.dll“ in der neuesten Version benötigt. Über diese findet die von Texas Instruments nicht offengelegte Kommunikation mit der Zielhardware statt. In den beim MSPGCC mitgelieferten Versionen dieser Dateien, ist der von uns verwendete MSP430F2618 noch nicht bekannt. Diese Dateien gibt es hier:msp430a.zip

Statt der oben genannten Eclipse Version 3.4.1 Ganymede funktioniert auch der Nachfolger 3.5 Gallileo, einige Menüs sehen ein wenig anders aus, sind aber wiederzuerkennen.

Installation

MSPGCC

Die Installation des MSPGCC ist relativ trivial, es können die Vorgaben des Automatischen Installers übernommen werden. Anschließend müssen noch die beiden oben angesprochenen DLL's in das Unterverzeichniss mspgcc/bin/ kopiert werden, die alten schon vorhandenen Dateien können einfach ersetzt werden.

Jetzt ist es soweit, die Hardware kann angeschlossen werden, der Parallele JTAG-Adapter wird dazu zwischen den Druckerport und die 14-Polige Buchsenleiste des Developementboards geklemmt, ausserdem wird entweder ein USB-Kabel oder ein kleines Netzteil angeschlossen um das Board mit Spannung zu versorgen. Der Installer des MSPGCC hat eine Verknüpfung im Startmenü angelegt, mit der der „gdb-proxy(parallel)“ (Bild), welcher die Kommunikation zwischen der Hardware und der Debuggersoftware übernimmt, gestartet werden kann. Hat bis hierhin alles funktioniert erkennt der Proxy den verbauten MSP430F2618.

MinGW

Zur Installation der MinGW Umgebung einfach den runtergeladenen Installer starten und alles so übernehmen wie es angeboten wird.

Wenn die Installation fehlschlägt, diese neu Starten und die Option „Previous“ wählen!

Eclipse

Ohne Java gehts nicht. Gibt es hier.

Als nächstes folgt die Installation von Eclipse, das heruntergeladene Paket enthält einen Ordner Eclipse, dieser muss dazu einfach nach z.B. “C:/“ entpackt werden. Eine Installation ist nicht nötig. Um Eclipse zu deinstallieren muss einfach das eben angelegte Verzeichniss gelöscht werden. Eine Installation in “C:/Programme“ ist nicht empfehlenswert, da dieser Ordner von Windows intern als “C:/program files“ verwaltet wird und das darin enthaltene Leerzeichen eventuell stören könnte. Ist Eclipse vollständig entpackt, kann es gestartet werden. Jetzt fragt es nach einem Verzeichnis, in dem alle Projekte abgelegt werden (z.B.: “C:/workspace“). Dieses Verzeichnis sollte nicht in die “Eigenen Dateien“ verlegt werden, da auch in diesem Pfad ein Leerzeichen enthalten ist. Ist ein Verzeichnis gewählt, startet Eclipse.

Zylin Embedded CDT

Als nächstes wird ein Eclipse Plugin installiert, welches die Entwicklung für Embedded Systeme in Eclipse ermöglicht. Dazu wird in Eclipse, im Menü „Help/Software Updates“, der Reiter „Avaiable Software“ gewählt und unter „Add Site“ die Update-Seite “http://opensource.zylin.com/zylincdt“ eingetragen und mit „OK“ bestätigt, anschließend sucht Eclipse nach den auf dieser Seite vorhandenen Updates. Wurde das passende Plugin gefunden wird es durch setzen des Hakens und Klicken auf „Install“ die Installation gestartet, im nächsten Fenster einfach nochmal mit „Next“ bestätigen und anschließend die Lizenz annehmen. Die darauf folgende Installation dauert je nach Internetverbindung ein wenig, da das Plugin heruntergeladen werden muss. Nach einem Neustart ist Eclipse fertig installiert.

Die Website für den Zylin-CDT-Embedded Debugger hat sich geändert, der Eintrag auf dem Bild stimmt nicht mehr, bitte die angepasste Version aus dem Text nutzen:
“http://opensource.zylin.com/zylincdt“

Ein erstes kleines Projekt

Nachdem die Installation nun abgeschlossen ist wollen wir in einem ersten kleinen Projekt die Hintergrundbeleuchtung von unserem Display blinken lassen.

neues Projekt erstellen

Durch klicken auf File/new/C project wird ein Wizard gestartet, der durch die erstellung eines neuen Projekts führt.

Im ersten sich öffnenden Fenster wird ein Projektname vergeben, hier zum Beispiel LED_Blink, außerdem wählen wir ein leeres Projekt und die minGW-Toolchain.

Durch einen Klick auf NEXT gelangen wir ins nächste Fenster, hier können wir verschiedene Konfigurationen erstellen lassen, dass ist für uns aber unnötig, deshalb einfach den Haken bei Release entfernen und durch einen Klick auf FINISH dir Projekterstellung abschließen.

Projekteinstellungen

Falls bis jetzt noch die Wilkommensseite von Eclipse geöffnet sein sollte, kann diese durch einen Klick auf Go to Workbench geschlossen werden.

Am linken Bildrand befindet sich der Projekt Explorer von Eclipse, in diesem werden alle angelegten Projekte angezeigt, bis jetzt sollte nur das eben angelegte Projekt LED_Blink vorhanden sein. Durch einen Rechtsklick auf dieses und anschließendes Klicken auf Properties öffnen sich diese.

Dort öffnen wir in der Baumstruktur links den Punkt C/C++ Build/Discovery Options in diesem Fenster müssen wir den von uns genutzten msp430-gcc eintragen.

Als nächstes wird in der Baumstruktur dar Punkt C/C++ Build/Settings geöffnet. In diesem Fenster stellen wir zuerst ein welche Tools wir nutzen:

  • unter GCC Assembler wird das Kommando msp430-as eingetragen
  • unter GCC C Compiler und MinGW C Linker wird das Kommando msp430-gcc -mmcu=msp430x2618 eingetragen, durch den Zusatz -mmcu… teilen wir dem Compiler mit welchen Prozessor wir nutzen.
  • nun sagen wir dem Compiler unter GCC C Compiler/Directories wo er die zur Entwicklung benötigten Headerfiles findet. Dazu fügen wir durch einen Klick auf add das Includeverzeichniss des mspgcc: C:\mspgcc\msp430\include hinzu, wurde der Compiler woanders installiert muss das Verzeichnis natürlich angepasst werden, wurden die Standardeinstellungen des mspgcc-Installers beibehalten sollte das Verzeichnis aber stimmen.

Jetzt muss dem Compiler noch gesagt werden was für Binärdateien erzeugt werden sollen. Der von uns verwendete Debugger gdb benötigt elf-Dateien. Demzufolge tragen wir unter Build Artifact als Artifact extension den Dateityp elf ein und aktivieren unter Binary Parsers den Elf Parser bei allen anderen Parsern müssen eventuell schon gesetzte Haken entfernt werden. Nach einem abschließenden Klick auf OK sind die Projekteinstellungen erledigt und wir können endlich mit dem Programmieren anfangen. Die bis hierhin gemachten Einstellungen scheinen zwar ziemlich kompliziert, ist ein Projekt aber einmal richtig konfiguriert brauchen wir uns hier um nichts mehr kümmern.

Quellcode schreiben

Damit wir Quellcode schreiben können wird durch einen Rechtsklick auf das Projektverzeichniss im Projekt Explorer unter NEW/Source File eine neue Quellcode-Datei zum Projekt hinzugefügt.

Im folgenden Fenster müssen wir der Datei einen Namen geben, z.B. main.c. Außerdem verzichten wir auf eine Vorgefertigte Vorlage indem wir unter Template den Punkt <None> wählen. Bevor mit Finish die Datei angelegt wird sollte noch einmal geprüft werden, dass unter Source Folder der Name des zuvor angelegten Projektes steht.

Unmittelbar nach dem Klicken auf Finish sollte Eclipse die neu angelegte Datei im Editorfenster öffnen. Ist dies nicht der Fall einfach im Projekt Explorer doppelt draufklicken.

Jetzt ist der Zeitpunkt gekommen etwas Code zu schreiben.

#include <io.h>				//Definitionen der Ein und Ausgaberegister des
				        //Prozessors
 
int main()				//main-Funktion
{
	unsigned int i=25000;		//Zählveriable
	WDTCTL = WDTPW + WDTHOLD;	//Watchdog Timer deaktivieren
	P7DIR=(1<<0);			//Den Pin 0 an Port 7 als ausgang schalten
					//gilt für das Textdisplay, beim Grafikdisplay
					//entsprechend an Pin 3, 4 oder 5 anpassen
 
	P7OUT |= (1<<0);		//Licht an
 
	while(1)
	{
		while(i--);		//warten
		i=25000;		//Zähler neu laden
		P7OUT^=(1<<0);		//Beleuchtung "Togglen"
	}						
}

Nachdem die Datei einmal gespeichert wurde, kann durch einen Rechtsklick auf das Projektverzeichniss im Project Explorer und Build Project das Binärfile für den Controller erzeugt werden. War bis hierhin alles richtig ist im Projektverzeichnis im Project Explorer der Unterpunkt Binaries erschienen. Öffnet an diesen sollte darin die Datei Led_Blink.elf liegen.

Der Debugger

Konfiguration

Und schon wieder muss fleißig konfiguriert werden, das entsprechende Konfigurationsfenster erreichen wir durch einen Rechtsklick auf das erstellte Binary-File im, dreimal dürft ihr raten, richtig:Project Explorer von dort erreicht man im Untermenü Debug As/Debug Configurations…. Im nun erscheinenden Fenster den Eintrag Zylin Embedded debug(native) markieren und auf New Launch Configuration klicken.

In dem sich öffnenden Menü sollte unter dem Punkt Main schon das Projektverzeichniss und das Binärfile eingetragen sein. Ist dies nicht der Fall einfach beides eintragen. unter dem Punkt Debugger muss der msp430-gdb eingetragen werden. Jetzt muss unter dem Punkt Commands muss folgendes Konfigurationsskript eingetragen werden:

set remoteaddresssize 64
set remotetimeout 999999
target remote localhost:3333
monitor erase all
load debug/LED_Blink.elf

Der Name der *.elf Datei in der letzten Zeile muss natürlich an das aktuelle Projekt angepasst werden, alle anderen Einstellungen sind allgemeingültig.

Bevor durch einen Klick auf Debug endlich das Debuggen gestartet werden kann, muss wieder der msp430-gdbproxy(parallel) aus dem Startmenü gestartet werden.

Debuggen

Eben wurde der Debugger gestartet, in der Console am unteren Ende des Eclipsefenters sollte auch zu sehen sein, das der Debugger gestartet wurde, aber sehen tun wir erstmal nichts?!?

Damit wir etwas sehen, müssen wir oben rechts im Eclipse-Fenster den View auf Debuggen umstellen: Rechtsklick auf Open Perspective und dann auf Debug Klicken

Jetzt öffnet sich die Debug Perspektive, hier kann man fast so wie in jeder anderen Programmierumgebung debuggen. Alles was wir momentan wollen ist die Hintergrundbeleuchtung blinken sehen, deshalb klicken wir einmal auf F8, damit wird das Programm laufen gelassen, über die Symbolleiste am oberen Rand kann man es jederzeit unterbrechen oder, um zum Beispiel ein Überarbeitets Programm zu flashen, stoppen.

Über die View-Punkte kann man nun bequem zwischen Debug oder C/C++ Entwicklung hin und her schalten.

Freuen

Herzlichen Glückwunsch!!! Wenn du bis hier gekommen bist sollte jetzt eine Lauffähige Open-Source-Toolchain für den msp430 eingerichtet sein. Jetzt kann es an die ersten richtigen Projekte gehen. War doch gar nicht so schwer.

Bonus

Alles was jetzt folgt wird nicht unbedingt zum Debuggen benötigt, es vereinfacht es aber ein wenig.

Shortcut für den Debugger anlegen

Dieser Schritt ermöglicht das Starten des Debuggers durch einen Klick auf den Käfer/Bug in der Symbolleiste. Dazu muss über das Menü „RUN/Debug Configurations“ das Debugger-Menü geöffnet werden. Dort markieren wir das zuvor angelegte Debug-Profil, in unserem Beispiel also Led_Blink. Danach wechseln wir im Menü rechts zum Reiter „Common“. In diesem setzen wir im Panel „Display in favorites Menu“ den Haken bei Debug und bestätigen mit Apply. Das war es schon.

Sollte Eclipse versuchen nicht unsere Debug Konfiguration zu starten, sondern nur das *.elf-File gibt es eine Fehlermeldung. Dies ist meist nach einem Compilerlauf der Fall. In diesem Fall kann man über den kleinen schwarzen Pfeil neben dem Käfersymbol ein Menü erreichen, über welches die Debug Konfiguration gestartet werden kann. Hat man dies getan funktioniert ersteinmal auch wieder der Klick auf den Käfer.

Den gdbproxy als externes Tool in Eclipse einbinden

Damit wir den gdbproxy nicht immer aus dem Startmenü heraus starten müssen, binden wir diesen jetzt als externes Tool in Eclipse ein. Dazu öffnen wir im Menü „RUN/External Tools/External Tools Configuration“ ein weiteres Konfigurationsmenü. Dort legen wir durch einen Klick auf das Icon „New Launch Configuration“ eine neue Verknüpfung an. Zuerst müssen wir dieser Verknüpfung einen Namen geben, zB. „msp430-gdbproxy(parallel)“. Als nächstes muss der Pfad zu der msp430-gdbproxy.exe unter location eingetragen werden. Wurde der mspgcc in den Standardordner installier lautet dieser Pfad C:\mspgcc\bin\msp430-gdbproxy.exe. Als nächstes müssen unter „Arguments“ noch der verwendete Port (Standardmäßig 3333) und die verwendete Prozessorfamilie (msp430) eingetragen werden. Die Parameter lauten also --port=3333 msp430. Abschlißend setzen wir noch ähnlich wie zuvor im Reiter „Common“ der Haken im Panel „Display in favorites Menu“. Jetzt übernehmen wir die Eingaben durch einen Klick auf „RUN“, dadurch wird ausserdem der gdbproxy ein erstes mal gestartet. Danach kann er bequem über das „Tools-Icon“ in der Symbolleiste gestartet werden.

Andreas Wenzel 06.03.2009 21:30

Diskussion

JRehm, 04.06.2011 07:17

Nach Google Recherche: Scheint ein bekanntes Problem zu sein http://www.mail-archive.com/mspgcc-users@lists.sourceforge.net/msg07993.html

Abhilfe Patch: http://www.mail-archive.com/mspgcc-users@lists.sourceforge.net/msg08005.html http://mspgcc.cvs.sourceforge.net/viewvc/mspgcc/packaging/patches/gdb-6.8-430X.patch?r1=1.2&r2=1.3

oder “ A workaround could be, to run - the compiler with -mmcu=msp430x449 - the linker with -mmcu=msp430xG439 The 2 devices have same size of ram and flash. “

JRehm, 03.06.2011 23:08

Erstmal ein dickes Lob - perfekt gelungenes Tutorial

Habe auch den Fehler beim Debuggen:

set remoteaddresssize 64

set remotetimeout 999999

target remote localhost:3333

0x0000ffff in ?? ()

monitor erase all

Erasing target flash - all… Erased OK

load debug/LED_Blink.elf

„debug/LED_Blink.elf“ is not an object file: File format not recognized

***

Verwende einen MSP430F449

wer hat Hinweise?

P. R. L., 24.05.2011 08:00

Hallo mal sehen ob etwas Leben in den WIKI kommt :-) Ich habe im Wikipedia schon viele Artikel verfasst nun versuche ich auch hier etwas Leben ins MSP430 Eingeweide zu bringen. Habt ihr gewusst, neuerdings werden auch FRAM basierende MSP430 angeboten. Dieser Speichertyp lässt sich, im Vergleich zu Flash, schneller und mit viel weniger Energie beschreiben. Ein weiterer Vorteil dieser Bausteine ist, dass es keine starre Grenze zwischen Code und Daten (Flash und RRAM) gibt, sondern diese nach Bedarf gewählt werden kann. Der Fertigungsprozess wird auch bei den FRAM Bausteinen von Ramtron verwendet und wurde gemeinsam von TI und Ramtron entwickelt. Ich arbeite mit dem IAR Workbench und das Teil ist echt super mit dem FRAM de geht beim Progen echt die Post ab :-)

Mike , 05.11.2009 22:20

Hab noch folgende Fehlermeldung im Debugger

komme aber nicht dahinter… Tipp?

0x0000ffff in ?? ()

monitor erase all

Erasing target flash - all… Erased OK

load debug/LED_Blink.elf

„debug/LED_Blink.elf“ is not an object file: File format not recognized

Jörg Krause, 31.10.2009 22:25

Ich habe die Einleitung für Eclipse Galileo befolgt. Für das CDT-Plugin (aktuelle Version 6.0.1) gibt es auch einen sogenannten „CDT GCC Cross Compiler Support“. Beim Starten eines neuen C++-Projektes kann dann ein „Cross Compile Project“ angelegt werden, indem die Einstellungen für eine „Cross GCC Toolchain“ vorgenommen werden.

Andreas Wenzel, 05.10.2009 10:13

I'm planning to update this tutorial once I've finished my Master Thesis. I'm using Galileo since an early beta and discovered almost no problems. Your right, the „Discovery Options“ are the Part were most changes were done.

Nochmal auf Deutsch: sobald meine Master Thesis fertig ist mach ich hier mal ein Update

Flydwin, 28.12.2009 21:12

Hi Enri,

You don,t have to set this parameter in Galileo… but you must set the msp430-gcc -mmcu=msp430x16x. Be sure to replace the last extension (after the first x) by your mcu #. For instance, with my msp430f1611, the command line is „msp430-gcc -mmcu=msp430x1611“

Have fun :D PS : This tutorial rock's!!

Flydwin, 28.12.2009 21:13

Hi Enri,

You don,t have to set this parameter in Galileo… but you must set the msp430-gcc -mmcu=msp430x16x. Be sure to replace the last extension (after the first x) by your mcu #. For instance, with my msp430f1611, the command line is „msp430-gcc -mmcu=msp430x1611“

Have fun :D PS : This tutorial rock's!!

enri, 16.09.2009 18:15

Well done! the best and easier tutorial on the web! i had to translate it, but still good! I have to suggest: In Eclipse Galileo, it is not possible to set in Discovery options: Managed Build system—–, as the only option avaible is GCC Per File info scanner, and then you cannot set msp430-gcc mmcu=…., so i had to set Ganymede. If anyone knows hot to do it in Galileo, please tell me!

Jan Dohrn, 25.05.2009 11:18

Vielen Dank dafür!

Nutzen tun wir DokuWiki mit einigen PlugIns wie z.B. diesem Diskussions-PlugIn.

Gruß Jan

siegmar, 23.05.2009 19:21

Toll gemacht !!!! Inhaltlich und auch das Webdesign !!! Gefällt mir sehr gut !! Welches CMS steht denn dahinter ? Weiter so !!! Noch einen schönen Abend Gruß Siegmar

Geben Sie Ihren Kommentar ein
Wenn Sie die Buchstaben auf dem Bild nicht lesen können, laden Sie diese .wav Datei herunter, um sie vorgelesen zu bekommen.
 
msp430/entwicklungumgebung.txt · Zuletzt geändert: 02.06.2009 14:48 von the_slow
Nach oben
Creative Commons License Recent changes RSS feed
Dieses Werk oder dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.