Estoy interesado en crear una interfaz simple para SWD para poder escribir memoria flash de chips ARM. Es decir, para crear un dispositivo de programación improvisado, más por el bien del ejercicio.
Empecé a leer la documentación y a buscar ejemplos (porque creo que la gente ya lo intentó). Actualmente tengo algunas preguntas, para las cuales agradecería su orientación:
Creo que actualmente es suficiente (aunque también estaría agradecido por una breve muestra de la secuencia de comandos para leer / escribir el flash, pero creo que lo descubriré pronto de todos modos), ¡gracias de antemano!
Actualmente estoy tratando de usar Arduino para crear un prototipo básico, aunque puedo cambiar a Atmega simple o LPC111x con cable FTDI en cualquier momento... Aunque creo que esto no es importante.
PD: para explicar mejor SWDIO: con AVR, por ejemplo, coloco el pin en estado BAJO y luego, si se cambia a salida, produce 0. Sin embargo, si se cambia a entrada, está en estado Z alto y realmente funciona como aporte. Es decir, no manipulo el bit PORTx, sino DDRx (mientras que PORTx es 0 permanente y PINx se usa para leer).
Voy a configurar SWDCLK como salida normal y SWDIO como drenaje abierto
SWDCLK está bien, pero SWDIO es bidireccional y no abre el drenaje. Eso significa que debe poder cambiar del modo de salida al modo de entrada y viceversa.
¿Hay un período de reloj mínimo permitido?
Por lo general, no, pero algunos dispositivos tienen velocidades de reloj mínimas para funciones especiales como el desbloqueo.
También estaría agradecido por una breve muestra de la secuencia de comandos para leer/escribir el flash
Eso es específico para cada dispositivo. OpenOCD admite muchos tipos diferentes (tanto microcontroladores como programadores) y tiene código fuente disponible.
Ya he portado Versaloon a la MCU LPC1343 en el CCC R0ket , este podría ser un punto de partida más simple.
Alumashka
Super gato
Super gato