Ich bin daran interessiert, eine einfache Schnittstelle zu SWD zu erstellen, um Flash-Speicher von ARM-Chips schreiben zu können. Dh ein behelfsmäßiges Programmiergerät zu erstellen - eher der Übung halber.
Ich fing an, die Dokumentation zu lesen und nach Beispielen zu suchen (denn ich glaube, die Leute haben das schon versucht). Aktuell habe ich ein paar Fragen, bei denen ich für Hinweise dankbar wäre:
Ich denke derzeit reicht das (obwohl ich auch dankbar wäre für kurze Beispielbefehle zum Lesen/Schreiben des Flashs - aber ich glaube, ich werde es sowieso bald herausfinden) - vielen Dank im Voraus!
Derzeit versuche ich, Arduino zu verwenden, um einen einfachen Prototyp zu erstellen, obwohl ich jederzeit mit FTDI-Kabel auf einfachen Atmega oder LPC111x umsteigen kann ... Obwohl ich glaube, dass dies nicht wichtig ist.
PS, um SWDIO besser zu erklären - mit AVRs zum Beispiel setze ich den Pin auf LOW-Zustand und wenn er dann auf Ausgang geschaltet wird, erzeugt er 0. Wenn er jedoch auf Eingang geschaltet wird, befindet er sich im High-Z-Zustand und funktioniert wirklich als Eingang. Dh ich manipuliere nicht PORTx-Bit, sondern DDRx (während PORTx permanent 0 ist und PINx zum Lesen verwendet wird).
Ich werde SWDCLK als normalen Ausgang und SWDIO als Open-Drain konfigurieren
SWDCLK ist OK, aber SWDIO ist bidirektional und kein Open-Drain. Das heißt, Sie müssen in der Lage sein, vom Ausgabe- in den Eingabemodus und umgekehrt zu wechseln.
Gibt es eine zulässige Mindestuhrzeit?
Normalerweise nicht, aber einige Geräte haben Mindesttaktraten für spezielle Funktionen wie das Entsperren.
Ich wäre auch dankbar für ein kurzes Beispiel der Befehlssequenz zum Lesen / Schreiben des Flash
Das ist für jedes Gerät spezifisch. OpenOCD unterstützt viele verschiedene Typen (sowohl Mikrocontroller als auch Programmierer) und verfügt über Quellcode.
Ich habe Versaloon bereits auf die LPC1343-MCU auf dem CCC R0ket portiert , dies könnte ein einfacherer Ausgangspunkt sein.
Alumaschka
Superkatze
Superkatze