¿Es JTAG la forma estándar de programar procesadores ARM?

3

Algún ingeniero eléctrico me dijo una vez que cada procesador ARM M3 se puede flashear de la misma manera, sin importar de qué fabricante venga.

Supongo que se refería a usar JTAG, ¿o hay otra manera?

Por cierto, quiero destellar un procesador ARM vacío sin un cargador de arranque.

    
pregunta user41666

1 respuesta

6
  

Supongo que se refería a usar JTAG, ¿o hay otra manera?

Probablemente no lo hizo. ARM tiene su propio estándar de bus de depuración, SWD (depuración de un solo cable), que está muy bien especificado. JTAG, por otro lado, es simplemente un estándar eléctrico y de nivel de registro de cambios, y depende de los fabricantes de dispositivos darles un significado a los puntos finales y acciones de JTAG.

Los programadores de SWD se pueden obtener por < 5 €. Busque productos llamados "compatibles con STLink v2" o algo así. El ST en el nombre se deriva del hecho de que se basan en el protocolo que los adaptadores STmicro USB a SWD hablan entre la computadora host y el adaptador, pero como solo "transportan" SWD, funcionan con todos los microcontroladores compatibles con SWD.

En la mayoría de los sistemas de desarrollo, desearía usar OpenOCD como "controlador" para estos dispositivos, de modo que pueda flashear imágenes fácilmente (ya sea directamente a través de OpenOCD o utilizando, por ejemplo, load de GDB). Si está atascado con un sistema operativo absurdo que necesita controladores específicos incluso para dispositivos genéricos, probablemente tenga que instalar las herramientas de ST.

  

Por cierto, quiero destellar un procesador ARM vacío sin un cargador de arranque.

Sí, suena como un caso clásico para SWD - ARM ofrece hardware para eso en sus núcleos, y la mayoría de los fabricantes eligen usar eso y asignar pines.

También tenga en cuenta que la mayoría de los fabricantes (incluido ST) envían sus ICs "vacíos" con algún tipo de cargador de arranque, sobre el cual puede cargar firmware a través de un puerto serie o incluso USB en el dispositivo; es muy útil para la fabricación.

Para un poco de discusión sobre SWD, en realidad recomiendo (por pura diversión es leer) PoC || GTFO 0x10, pp. 26 , que comienza con una introducción de la infraestructura de depuración de ARM y SWD como protocolo, y luego explica cómo utilizar ARM conectadas con SWD como sofisticados expansores de IO en lugar de MCU independientes .

    
respondido por el Marcus Müller

Lea otras preguntas en las etiquetas