Forum: Mikrocontroller und Digitale Elektronik SWD mit MSP430


von Tech N. (technick)


Lesenswert?

Hi,

ich möchte gern einen Freescale Kinetis Controller über SWD 
programmieren.
Dazu möchte ich einen MSP430 benutzen, den ich dann per UART vom PC 
steuern möchte.

Das heißt, ich möchte keinen Degugger/Flasher kaufen, sondern mittels 
eigenem MSP430 und eigener Firmware den Kinetis programmieren.

Grund dafür ist , dass es lediglich eine Box werden soll, die den 
Kinetis programmieren soll aber nicht debuggen !

Ich habe bereits den IDCODE erfolgreich ausgelesen.
Doch nun möchte ich den FLASH Speicher mit dem entsprechenden Code 
füllen ...

Hat da bereits jemand Erfahrungen bzw. hilfreiche Tipps ?

Vielen Dank

von Hans Dampf (Gast)


Lesenswert?

Hallo,

schau dir mal libswd (http://sourceforge.net/apps/trac/libswd) an. Damit 
kannst du SWD-Instruktionen generieren.

Viele Grüße
Hans

von Tech N. (technick)


Lesenswert?

Hi Hans ,

hast du mit SWD bereits Erfahrungen gesammelt ?

von Hans Dampf (Gast)


Lesenswert?

Hallo,

ja ich habe mich in das Thema vor einiger Zeit mal eingearbeitet und 
auch mit libswd gearbeitet. Stecke aber gerade nicht im Detail drin.

Viele Grüße
Hans

von Tech N. (technick)


Lesenswert?

ich habe zur Zeit das Problem, dass ich zwar den IDCODE lesen kann, aber 
wenn ich ein Write Kommando sende bekomme ich kein ACK vom Kinetis 
zurück ...
Wenn ich von Ausgang auf Eingang schalte geht sofort das SWDIO Signal 
auf Lo-Signal ...

von TechNick (Gast)


Lesenswert?

Muss mich korrigieren,

wenn ich ein Write Kommando senden möchte,bleibt die SWDIO Leitung nach 
dem TurnAround immer auf High ...

von Random .. (thorstendb) Benutzerseite


Lesenswert?

Moment ...
Lad doch den FlashAlg in den Kinetis (RAM), schieb die Blöcke 
nacheinander ins RAM und prog sie dann ins Flash...

: Bearbeitet durch User
von TechNick (Gast)


Lesenswert?

Ja, aber dazu muss ich ja auch erstmal die Daten in den RAM bekommen ... 
(FlashAlg)
In dem Kinetis ist ja noch keinerlei Firmware drin ...

von Uwe Bonnes (Gast)


Lesenswert?

Tech Nick schrieb:
> Das heißt, ich möchte keinen Degugger/Flasher kaufen, sondern mittels
> eigenem MSP430 und eigener Firmware den Kinetis programmieren.

Um zu flashen, brauchst Du recht viel Infrastruktur, die dann auch fast 
schon das Debuggen ermöglicht. Willst Du das alles selbst machen? Schau 
Dir mal Blackmagic an:

https://github.com/gsmcmullin/blackmagic

Da hast Du alles um über SWD oder JTAG mit Cortex (und anderen) 
Bausteinen zu sprechen, also zu flashen oder zu debuggen. Der Code kann 
schon auf STM32 und dem PC über eine FTDI laufen, eine neue Platform, 
die seriell mit dem PC spricht, sollte ohne grossen Aufwand drangeflickt 
sein. Etwas ähnliches hat schon
https://github.com/xpgdk/blackmagic/tree/stellaris_launchpad
gemacht.

Allerdings fehlt noch der Kinetis Flash Algorithmus, z.B. wie oben 
beschrieben durch Uplaod und Ausführen im RAM. Den musst Du aber auch in 
Deinem Ansatz schreiben...

von TechNick (Gast)


Lesenswert?

Danke Uwe,

das hilft mir weiter. Ich kann nun schon mal den Speicher lesen.
Dann wird der Rest auch noch ...

Vielen Dank

von TechNick (Gast)


Lesenswert?

so ich kann nun den Flash über SWD lesen/löschen und beschreiben.
Doch leider dauert das flashen von einem 32Bit Wert ca. 6ms ...

Das bedeutet das ich ca. 200 Sekunden brauche um den kompletten Flash zu 
beschreiben ...

(ich kann sicherlich noch etwas an der SWD Geschwindigkeit machen, da ic 
hzur zeit nur einen MSP430 mit 8MHz Takt benutze)

Gibt es noch schnellere Möglichkeit den Flash zu beschreiben, als über 
das "Flash Memory Module( FTFA )" ?

von Uwe Bonnes (Gast)


Lesenswert?

Ein sogenannter Flash Stub. Man laedt ueber JTAG ein Programm und die zu 
programmierenden Daten ins Ram und startet dann das Programm. Schau Dir 
mal an, wir das bei blackmagic/src/stm32f1.c geloest ist. Vielleicht 
hilft der Stub aus
http://openocd.sourceforge.net/doc/doxygen/html/kinetis_8c_source.html
weiter.

von TechNick (Gast)


Lesenswert?

Bin jetzt vom MSP430 auf einen Freescale umgestiegen, da dieser viel 
schneller ist.
Brauche jetzt für das Flashen eines 32Bit Wertes ca. 850µs. Das wären 
ca. 25-30s für die 128KB.
Wahrscheinlich sogar noch weniger wenn man alles nacheinander schreibt, 
da man dann wohl nicht jedesmal die Adresse setzen muss ...

Vielen Dank an alle

von Uwe Bonnes (Gast)


Lesenswert?

TechNick schrieb:
> Bin jetzt vom MSP430 auf einen Freescale umgestiegen

Kann was nach blackmagic zurueckfliessen?

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.