Te recomiendo que obtengas una parte equivalente y una tabla de ruptura. Solo deberías necesitar poder y tierra y vdda. obtén el paquete más pequeño si lo prefieres (más barato). otra opción es una placa de núcleo, y es posible que desees el final de la depuración de todos modos, querrás desconectar el swd / debugger para que puedas obtener lo que estoy buscando ...
las partes vienen preprogramadas desde ST con un cargador de arranque en ellas. Correas boot0 de la manera correcta y luego puedes programar a través de uart. en cualquier momento debería poder utilizar la interfaz swd (jtag-ish). Utilizo el extremo superior de estas tarjetas para programar otros chips, ellos quieren usar el dispositivo mbed y se montan como una unidad de disco y arrastran y sueltan el archivo. no es la experiencia que busca después de una experiencia de entorno controlado utilizando openocd o algo así en swd para tratar con una de estas partes. Por lo tanto, la idea de obtener un tablero de descubrimiento, o una ruptura u otro. no debería costarle más de $ 20 en total, tal vez $ 10 dependiendo de la ruta que tome.
una vez que lo experimentes con una placa que no tiene nada más que hacer, puedes adaptar ese conocimiento a tu placa en el circuito. los pines uart pueden ser reutilizados, por ejemplo, por lo que es posible que no pueda acceder al cargador de arranque principal. No puedo imaginar que los pines del swd sean reutilizados, querrían tener una manera de hacer una actualización del firmware en el circuito. Es posible que preprogramen las piezas para la producción, pero también es posible que las programen en circuito. También puede ser posible que se puedan programar una sola vez, pero no se veían tan de cerca en su número de referencia.
Como Chris Stratton mencionó que la tabla vectorial será una lista de direcciones, comience con un número de tipo 0x2000x000 y luego con números impares, desde un puñado hasta docenas, posiblemente muchos de ellos apuntando al mismo controlador. 0x00000051 0x00000071, 0x00000103, etc. no necesariamente incrementando su valor. La tabla de vectores, etc. están todas en los documentos st y arm en cuanto a lo que hacen.
Creo que el flash del usuario está basado en 0x08000000, por lo que en el código puede haber direcciones basadas en eso. en realidad, la tabla de vectores puede / debe contener vectores en ese espacio
08000000 <_start>:
8000000: 20001000 andcs r1, r0, r0
8000004: 08000041 stmdaeq r0, {r0, r6}
8000008: 08000047 stmdaeq r0, {r0, r1, r2, r6}
800000c: 08000047 stmdaeq r0, {r0, r1, r2, r6}
8000010: 08000047 stmdaeq r0, {r0, r1, r2, r6}
8000014: 08000047 stmdaeq r0, {r0, r1, r2, r6}
8000018: 08000047 stmdaeq r0, {r0, r1, r2, r6}
800001c: 08000047 stmdaeq r0, {r0, r1, r2, r6}
8000020: 08000047 stmdaeq r0, {r0, r1, r2, r6}
8000024: 08000047 stmdaeq r0, {r0, r1, r2, r6}
8000028: 08000047 stmdaeq r0, {r0, r1, r2, r6}
800002c: 08000047 stmdaeq r0, {r0, r1, r2, r6}
8000030: 08000047 stmdaeq r0, {r0, r1, r2, r6}
8000034: 08000047 stmdaeq r0, {r0, r1, r2, r6}
8000038: 08000047 stmdaeq r0, {r0, r1, r2, r6}
800003c: 08000047 stmdaeq r0, {r0, r1, r2, r6}
a menos que se hayan hecho cargo del gestor de arranque incorporado (si es posible).
mire el pinout del paquete y averigüe dónde están los pines de swd, y colóquelos en el tablero, no me sorprendería si hubiera algunas almohadillas. ir con una placa de núcleo de $ 10 es más barato que un enlace de $ 15, aunque ambos son relativamente baratos, prefiero la ruta del núcleo o una placa de descubrimiento y uso la parte frontal para programar partes en el circuito. bastante fácil de conectar con openocd.