Dafür gibt es nicht viele Tools und keins wollte bei mir Funktionieren. Bis ich ein Python Script gefunden habe, das zwar für Python 2.6 geschrieben wurde, aber immerhin veränderbar ist. Das Tool stammt von "Ivan A-R" und wurde von mir nur angepasst.
Um meine Bemühungen das Script nach Python 3.3 nicht verlieren zu lassen, will ich es hier mit der Welt teilen.
Bisher habe ich nur das flashen auf einem STM32F207 probiert, es kann und es wird vorkommen, dass es für andere Controller nicht funktioniert.
Ein Knackpunkt ist das Erase-Kommando:
Es gibt in der Protokollbeschreibung(AN3155) den Hinweis, dass es zwei unterschiedliche Kommandos gibt: 0x43 und 0x44, die Exklusiv sind, entweder gibt es das eine, oder das andere.
Wenn man einen Controller mit 0x43 hat, dann muss man das Kommando in der Funktion cmdEraseMemory anpassen sowie die Daten die gesendet werden(Das ist dann nur noch 1 Byte + Prüfsumme)
Es kann passieren, das Lesevorgänge exceptions auslösen, da ungültige Notationen verwendet wurden. Die "map" Funktion hat eine andere Funktionalität bekommen.
Zudem muss ein byte für die serielle Schnittstelle folgendermaßen übertragen werden:
Code: Alles auswählen
self.sp.write(bytes([c]))
Mit freundlichen Grüßen
cloidnerux