Forum: Mikrocontroller und Digitale Elektronik MSP430F5438 mit msp-gdbproxy und MSP-FET430UIF


von g. b. (gunb)


Lesenswert?

Moin,

nutze msp-gdbproxy und TI's MSP-FET430UIF schon seit Jahren mit einem 
MSP430F1611, mspgcc und Eclipse - klappt einwandfrei, d.h., der 
Controller wird über msp-gdbproxy sofort gefunden und kann geproggt 
werden.

Nun habe ich den MSP430F5438 mit dem Olimex STK gestern bekommen und 
dieser Typ wird nicht erkannt. Lange im Forum gesucht und gegoogelt, 
Probleme scheinen bekannt wegen anderem JTAG-Protokoll.

Gut, IAR Kickstart in der letzten Version geprüft, FET430UIF umgeflasht: 
geht, µC wird erkannt. Gleiches mit Programmiersoftware Lite FET-Pro430 
von Elprotronic.

Zurückgeflasht auf mspgcc-Toolchain, weil ich diese mit Ecplipse und dem 
1611er weiterhin nutze möchte.

Irgendeine Idee, wie ich beide Controller mit msp-gdbproxy ansprechen 
kann? Hat von euch jemand den 5438er mit dieser Kombination am Laufen?

Ich würde gerne auf Code Composer oder IAR verzichten.


Gruß
Gunb

von Christian R. (supachris)


Lesenswert?

Wenn nach dem Firmware Updates des UIF der Controller ansprechbar ist, 
sollte es reichen die aktuelle msp430.dll und hil.dll aus IAR oder CCE 
ins bin Verzeichnis des msp430-gdbproxy zu kopieren, dann wird der da 
voraussichtlich auch erkannt.

von g. b. (gunb)


Lesenswert?

Christian R. schrieb:
> Wenn nach dem Firmware Updates des UIF der Controller ansprechbar ist,
> sollte es reichen die aktuelle msp430.dll und hil.dll aus IAR oder CCE
> ins bin Verzeichnis des msp430-gdbproxy zu kopieren, dann wird der da
> voraussichtlich auch erkannt.

Hallo,

das hatte ich schon gemacht, nur will msp430-gdbproxy nicht mit den 
aktuellen msp430.dll und hil.dll zusammenarbeiten.

von Krapao (Gast)


Lesenswert?

Vielleicht statt
> msp430-gdbproxy
> msp430.dll
> hil.dll

MSPDebug benutzen

> "MSPDebug is a free debugger for use with MSP430 MCUs. It supports
> FET430UIF, eZ430, RF2500, Launchpad and Olimex MSP-JTAG-TINY programmers."

http://mspdebug.sourceforge.net/

Vorkompilierte Windows-Version:
http://www.mikrocontroller.net/articles/MSPGCC#Einfaches_Assembler-Beispielprogramm

von Christian R. (supachris)


Lesenswert?

Gun B. schrieb:
> das hatte ich schon gemacht, nur will msp430-gdbproxy nicht mit den
> aktuellen msp430.dll und hil.dll zusammenarbeiten.

Echt nicht? Hast du das vor oder nach dem Firmware Update probiert? Werd 
ich morgen auf Arbeit gleich mal testen. Zu Hause hab ich hier "nur" den 
Olimex.

von g. b. (gunb)


Lesenswert?

Christian R. schrieb:
> Echt nicht? Hast du das vor oder nach dem Firmware Update probiert? Werd
> ich morgen auf Arbeit gleich mal testen. Zu Hause hab ich hier "nur" den
> Olimex.

Beides ausprobiert.

Zuerst habe ich gestartet mit meiner Produktivumgebung für den 
MSP430F1611, die seit langem mit dem FET430UIF gut zusammenarbeitet. 
Seinerzeit das Firmware-Update durchgeführt und über msp-gdbproxy(USB) 
mit Eclipse verheiratet. Kompiliert wird mit mspgcc20081230.

Vorgestern dann nach erfolglosen Versuchen mit obiger Umgebung die 
msp-gdbproxy der mspgcc4er-Version hier geladen, die hier im Tutorial 
empfohlen wird. Mit den bereits mitgelieferten msp430.dll und hil.dll 
ging's nicht.

Also die latest version von TI geladen und im Verzeichnis ersetzt, 
sowohl mit dem "alten" msp-gdbproxy versucht als auch mit dem o.g. 
neuerem - geht nicht, bei letzterem kommt:

debug: MSP430_Initialize()
debug: MSP430_Configure()
debug: MSP430_VCC(3000)
debug: MSP430_Identify()
error:     msp430: Could not find device (or device not supported) (4)
debug: MSP430_VCC(0)
debug: MSP430_VCC(3000)
debug: MSP430_Reset(ALL_RESETS)
debug: MSP430_Close()
Assertion failed: !msp430_status.is_open, file target_msp430.c, line 745

Neuer Versuch: IAR-Kickstart nimmt erst einmal ein Firmware-Update des 
Programmers vor, geht danach mit C-Spy, Controller wird erkannt und 
Programm kann geladen werden.

Versuche ich dann wieder mit msp430-gdbproxy, dann meckert er, dass die 
Firmware nicht kompatibel ist und upgedated werden muss - gut, 
verständlich.

Also zurück per msp430-gdbproxy-Update und .dll's vom IAR ins 
msp430-gdbproxy-Verzeichnis - geht nicht, weil sie dann eben nicht mehr 
mit der Firmware des Programmers übereinstimmen.

Dann die dll's aus dem Lite FET-Pro430-Verzeichnis von Elprotronic ins 
gdbproxy kopiert - geht auch nicht, denn auch diese Software will vorher 
den Programmer updaten, bevor sie dann funktioniert.

Heute habe ich von Rowley Associates mal die 30-Tage Eval geladen und 
probiert. Die macht ebenfalls ein Update des Programmers, funktioniert 
dann aber problemlos, erkennt den Controller prima. Logisch, dass der 
Programmer danach wieder nicht kompatibel mit msp430-gdbproxy ist.

Durch Recherche im Netz habe ich einen älteren Beitrag gefunden, wo 
angemerkt wurde, dass das 5438er JTAG-Protokoll vom z.B. dem 1611er 
abweicht.

Scheine nicht alleine mit dem Problem in Bezug auf den 54er-Typ und 
msp430-gdbproxy.

Meine Frage an dich: nutzt du den 54er-MSP430, so dass du gleiche 
Voraussetzungen hättest?

Gruß&Dank
Gunb

von g. b. (gunb)


Lesenswert?

Krapao schrieb:
> Vielleicht statt
>> msp430-gdbproxy
>> msp430.dll
>> hil.dll
>
> MSPDebug benutzen
>
>> "MSPDebug is a free debugger for use with MSP430 MCUs. It supports
>> FET430UIF, eZ430, RF2500, Launchpad and Olimex MSP-JTAG-TINY programmers."
>
> http://mspdebug.sourceforge.net/
>
> Vorkompilierte Windows-Version:
> http://www.mikrocontroller.net/articles/MSPGCC#Ein...

Oh, nach einer Alternative habe ich gesucht. Danke für deinen Hinweis, 
ich werde es heute noch ausprobieren.

Mit welchem Controller setzt du das o.g. Tool ein?

Gruß&Dank
Gunb

von Krapao (Gast)


Lesenswert?

Ich befasse mich seit kurzem mit dem Lauchpad (d.h. MSP430G2...) und bin 
dabei auf das MSPDebug gestossen. Laut MSPDebugs Versionshistory sollte 
dein MSP430F5438 aber auch von dem Tool unterstützt werden.

von Christian R. (supachris)


Lesenswert?

Gun B. schrieb:
> Versuche ich dann wieder mit msp430-gdbproxy, dann meckert er, dass die
> Firmware nicht kompatibel ist und upgedated werden muss - gut,
> verständlich.
>
> Also zurück per msp430-gdbproxy-Update und .dll's vom IAR ins
> msp430-gdbproxy-Verzeichnis - geht nicht, weil sie dann eben nicht mehr
> mit der Firmware des Programmers übereinstimmen.

Hm, das ist ja schon mal seltsam. Wenn du mit IAR das FW-Update 
eingespielt hast, müssten auch die DLLs dazu passen, denn die Firmware 
ist in der DLL drin. Du musst erst die DLLs reinkopieren und dann ein 
Update machen. Irgendwie geht das aus deinem Text genau andersrum 
hervor. Hast du mal die DLLs vom CCE ins bin Verzeichnis des alten 
msp430-gdbproxy kopiert und das FW-Update gleich mit dem Proxy gemacht? 
Irgendwas ist da bei dir komisch. Ich teste morgen mal, allerdings hab 
ich keine 54er Controller da. Bisher ging das immer problemlos mit den 
aktuellen DLLs.

von g. b. (gunb)


Lesenswert?

Christian R. schrieb:
> Wenn du mit IAR das FW-Update
> eingespielt hast, müssten auch die DLLs dazu passen, denn die Firmware
> ist in der DLL drin.

Ja, das geht aber nur aus der IAR heraus (Version FET_R610.exe), dann 
ist der Programmer aber über msp-gdbproxy.exe nicht mehr ansprechbar.

Christian R. schrieb:
> Du musst erst die DLLs reinkopieren und dann ein
> Update machen. Irgendwie geht das aus deinem Text genau andersrum
> hervor.

Na ja gut, das ist schon klar, ich habe natürlich erst die dll's ins 
Verzeichnis kopiert und dann msp-gdbrpoxy zum Updaten aufgerufen. Die 
Meldung mit msp430.dll und hil.dll aus dem IAR-Verzeichnis produziert 
dann folgende Meldungen (originale Kopien vom Screen):

notice:    msp430: TI USB FET update requested
error:     msp430: (null) (0)
debug: MSP430_Initialize()
error:     msp430: The FET tool version does not match this program. 
Update requ
ired.
debug: MSP430_Initialize()
error:     msp430: The FET tool version does not match this program. 
Update requ
ired.

Ich habe fast den ganzen Freitag, Samstag und auch heute sämtliche dll's 
ausprobiert, auch die von elmicro, da sieht's nicht anders aus. 
Allerdings kann ich mit deren Software den MSP430F5428 ansprechen, 
nachdem ich deren Update gemacht habe, was automatisch vorgeschlagen 
wird, so lange man die Firmware des msp-gdbproxy-Updates noch drauf hat.

Auch mit dem Crossworks wird der Controller erkannt, aber eben nur nach 
einem Update, wenn vorher die msp-gdbproxy-Firmware drauf war.

Selbst wenn die Updates mit msp-gdbproxy erfolgreich geflasht werden 
können, bei all den dll's, die ich in den letzten zwei Tagen schon aus 
dem Netz gezogen habe, kann zwar mein 1611er angesprochen werden, nicht 
aber der 5438er Controller.

Woher stammt denn dein msp-gdbproxy.exe? Wo finde ich die aktuellste 
Version? Ich habe bis jetzt die aus dem mspgcc20081230 - Paket genutzt 
und die aus dem Forum hier im Link:

http://www.mikrocontroller.net/articles 
MSP430_eclipse_helios_mspgcc4_gdb-proxy

Gruß
Gunb

von Christian R. (supachris)


Lesenswert?

Ich hab auch nur den gdbproxy aus der Version vom 30.12.2008. Aber wie 
gesagt das ist so ziemlich egal, da die Firmware in der msp430.dll drin 
ist und der (bisher) mit allen neuen msp430.dll/hil.dll zusammen 
gearbeitet hat. Hab erst letztens die DLLs aus dem CCE 5.0.1 genommen 
und die Firmware damit aktualisiert. Damit ging dann noch alles. Der 
aktuellste Controller, den ich hab, ist allerdings der 2618. Soweit ich 
weiß, ist dem Proxy egal, welcher Chip dran hängt, denn bei den 2618 
beispielsweise gings dann irgendwann mit den neuen TI DLLs einfach so. 
Vorher unknown device, nachher hat er den richtig erkannt.

von g. b. (gunb)


Lesenswert?

Christian R. schrieb:
> Soweit ich
> weiß, ist dem Proxy egal, welcher Chip dran hängt, denn bei den 2618
> beispielsweise gings dann irgendwann mit den neuen TI DLLs einfach so.

Tja, das wär' schön, aber 1000mal probiert und nicht erkannt, während 
der 1611er brav antwortet.

So ganz unbekannt scheint das Problem nicht:

http://forum.sparkfun.com/viewtopic.php?t=13349

und andere Seiten lassen sich ebenfalls mit dieser Meldung finden.


Ich lade gerade den Code Composer, mal sehen, was der macht.


Gruß
Gunb

von Christian R. (supachris)


Lesenswert?

Gun B. schrieb:
> So ganz unbekannt scheint das Problem nicht:
>
> http://forum.sparkfun.com/viewtopic.php?t=13349

Naja, da gehts ja um den Olimex. Der ist beim Update bissl eigen. Ich 
hab den ja auch, das update geht nur über die Prog-Software von Olimex. 
Die TI-Firmware passt dort auch nicht. Olimex liefert aber sehr 
regelmäßig die aktuellen DLLs, sodass man da auch wenig Probleme hat.
Du hast ja aber den original-UIF, da passt die Firmware aus der 
msp430.dll und das Update geht auch über den gdbproxy.

von g. b. (gunb)


Lesenswert?

Christian R. schrieb:
> Du hast ja aber den original-UIF, da passt die Firmware aus der
> msp430.dll und das Update geht auch über den gdbproxy.

Ja, bis dato hatte ich keine Probleme, glaube aber, der Sache näher zu 
kommen:

http://processors.wiki.ti.com/index.php/MSP_Debug_Stack

und

http://processors.wiki.ti.com/index.php/MSP430_JTAG_Interface_USB_Driver

entscheidend ist wohl, was unter

What's new in the MSP430.DLLv3

steht. Soeben habe ich die v2er Dlls ausprobiert, diese lassen über 
msp-gdbproxy noch ein Update zu, die aktuelle v3er-Dll, die in allen von 
mir oben genannten Applikationen (IAR, CCS, usw.) enthalten ist, 
funktioniert nicht mehr mit msp-gdbproxy, weder das Update, noch die 
eigentliche Funktion.

Der Updateversuch mit der v3er ruft dann:

error:     msp430: The FET tool version does not match this program.

hervor, mit der 2er geht's.

Ich habe mir ebenfalls die Dll-Developer Pakete von TI für den MSP430 
geladen, sowohl mit der alten als auch der neuen Dll.

alte msp430.dll: 2.4.8.2 -> geht mit msp430-gdbproxy

neue msp430.dll: 3.2.3.2 -> geht nicht mehr

Entscheidend ist nun, wann du deinen CCS geladen hast, oder allgemeiner, 
welcher Version deine msp430.dll entspricht.

Die ältere funktioniert zwar mit meinem 1611er, findet aber den 5438er 
nicht. Die neuere Dll läuft wiederum mit msp-gdbproxy nicht - was für 
ein Durcheinander.

Nun gut, vielleicht für dich interessant, falls du Morgen mit FET430-UIF 
testen solltest. Verhindert vielleicht aneinander vorbeizureden und 
vielleicht die Lösung für zukünftige Probleme mit msp430-gdbproxy.

Gruß
Gunb

von g. b. (gunb)


Lesenswert?

Krapao schrieb:
> Ich befasse mich seit kurzem mit dem Lauchpad (d.h. MSP430G2...) und bin
> dabei auf das MSPDebug gestossen. Laut MSPDebugs Versionshistory sollte
> dein MSP430F5438 aber auch von dem Tool unterstützt werden.

Habe dies heute ausprobiert. Beim Starten will das Teil immer eine 
Firmware haben, dich ich dann auch als hex-File im selben Ordner 
abgelegt habe.

Wie rufst du mspdebug auf (Optionen)?


Gruß
Gunb

von Christian R. (supachris)


Lesenswert?

So, jetzt wirds klarer. ich hab eben mal geschaut. Ich hab tatsächlich 
noch die DLL in der Version 2.4.9.1 drauf. Mit der Version 3 scheints 
dann ja ohne Änderungen am gdbproxy wirklich nicht zu laufen. Da müsste 
man sich mal msp-debug anschauen. Ist ja aber auch besser, dass jetzt 
alles open-source ist. msp430-gdbproxy enthält ja jede Menge TI-Code.

von g. b. (gunb)


Lesenswert?

Christian R. schrieb:
> So, jetzt wirds klarer. ich hab eben mal geschaut. Ich hab tatsächlich
> noch die DLL in der Version 2.4.9.1 drauf. Mit der Version 3 scheints
> dann ja ohne Änderungen am gdbproxy wirklich nicht zu laufen. Da müsste
> man sich mal msp-debug anschauen. Ist ja aber auch besser, dass jetzt
> alles open-source ist. msp430-gdbproxy enthält ja jede Menge TI-Code.

Ja, das war ein gutes Stück Arbeit am Wochenende, hat mich ganz schön 
geschlaucht :-)
Aber gut, nun sind wir um eine Erfahrung reicher.

mspdebug habe ich ebenfalls als Windows-Portierung angeschaut. Ich 
konnte sowohl den Treiber korrekt einrichten als auch eine erste 
Verbindung zum FET430-UIF machen, allerdings meckerte er noch. Werde ich 
mich heute noch mal mit beschäftigen.

So langsam qualmt mir aber der Kopf vor lauter Treiberinstallationen, 
dll-Kopiererei aus allen möglichen Softwaren :-)))

Danke dir für deine Antworten!


Gruß und guten Start in die neue Woche
Gunb

von g. b. (gunb)


Lesenswert?

Ein weiterer Link zum Thema MSP430F5438 und msp-gdbproxy, was die 
älteren dll's angeht:

http://develissimo.com/forum/topic/16061/?page=1#post-42555

Das Problem scheint also in Bezug auf diesen Controllertyp schon länger 
bekannt zu sein.

von Krapao (Gast)


Lesenswert?

> Wie rufst du mspdebug auf (Optionen)?

Bei dem Launchpad mit

>> mspdebug rf2500

Dann erscheint die Kommandozeile des Tools und man kann weitere 
Kommandos angeben. rf2500 ist der Adaptertyp auf dem Launchpad.

Mit den Optionen --fet-list und/oder --usb-list kannst du herausfinden, 
welche von MSPDebug erkannten Adapter angeschlossen sind und wie die 
anstelle des rf2500 anzusprechen sind.

Man kann auch beim Aufruf schon Kommandos angeben z.B. um einen nicht 
interaktiven betrieb zu ermöglichen z.B. in einem Makefile für ein 'make 
program'. Dann gibt man die Kommandos einzeln auf der Kommandozeile an 
z.B.

>> mspdebug rf2500 "prog a.out" exit

Programmiert das angeschlossene Lauchpad mit dem Programm a.out und 
verlässt MSPDebug.

Die "remote stub for gdb" bzw. "GDB  client  mode" Funktion von MSPDebug 
habe ich noch nicht benutzt.

http://mspdebug.sourceforge.net/manual.html

von g. b. (gunb)


Lesenswert?

Krapao schrieb:
> Mit den Optionen --fet-list und/oder --usb-list kannst du herausfinden,
> welche von MSPDebug erkannten Adapter angeschlossen sind und wie die
> anstelle des rf2500 anzusprechen sind.

Danke für die Kommandos.

Nun gut, ich habe mspdebug nun mit zwei FET430-UIF mit alter und neuer 
Firmware ausprobiert, allerdings komme ich nicht bis zum Funktionieren 
durch:

Searching for firmware for TI3410...
    - checking C:/MinGW/msys/1.0/local/lib//mspdebug/ti_3410.fw.ihex
    - checking ti_3410.fw.ihex
Loaded 13765 byte firmware image (checksum = 0xb5)
Starting download...
ti3410: bulk write failed: Falscher Parameter.
ti3410: firmware download failed

Die Firmware habe ich für die aktuelle v3-Dll.  Optionen --usb-list und 
--fet-list klappen, auch die Treiberinstallation ist ordnungsgemäß am 
Laufen.

Ich kann auf keine ältere Dll zurückgreifen, sonst komme ich an den 
5438er-Controller nicht dran.

Denke langsam in Richtung Code Composer, der läuft. Zahlt eh die Firma.

Wenn noch jemandem was einfällt, gerne interessiert. Ansonsten danke 
für's Mitmachen;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.