SWD mit MSP430

OP #3546626
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
Gast #3546770
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
OP #3546815
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 ...
Gast #3548461
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...
Gast #3552739
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 )" ?
Gast #3562256
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.