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
Hallo, schau dir mal libswd (http://sourceforge.net/apps/trac/libswd) an. Damit kannst du SWD-Instruktionen generieren. Viele Grüße Hans
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
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 ...
Muss mich korrigieren, wenn ich ein Write Kommando senden möchte,bleibt die SWDIO Leitung nach dem TurnAround immer auf High ...
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
Ja, aber dazu muss ich ja auch erstmal die Daten in den RAM bekommen ... (FlashAlg) In dem Kinetis ist ja noch keinerlei Firmware drin ...
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...
Danke Uwe, das hilft mir weiter. Ich kann nun schon mal den Speicher lesen. Dann wird der Rest auch noch ... Vielen Dank
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 )" ?
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.