SWDAP frente a CMSIS-DAP frente a DAPLink

EDITAR:
Recibí las preguntas básicas (por ejemplo, ¿qué es CMSIS-DAP?) Contestadas por el usuario @Nipo. En base a eso, reestructuré mi publicación de una manera más lógica. Con suerte, las preguntas restantes también serán respondidas :-)

 

1. Programación de un microcontrolador

Para programar y/o depurar un microcontrolador, es común el siguiente procedimiento:

ingrese la descripción de la imagen aquí

Hay toneladas de sondas diferentes en el mercado. La comunicación entre la sonda y el microcontrolador está estandarizada en los protocolos SWDy JTAG. Desafortunadamente, la comunicación entre la sonda y la computadora host no está estandarizada. Eso hace que el trabajo de OpenOCD sea muy difícil. Este software, que se ejecuta en la computadora host, intenta conectarse a la sonda. ¡Imagínese cuánto trabajo tiene la gente de OpenOCD para apoyarlos a todos!
ARM se esfuerza por estandarizar esta comunicación USB entre la sonda y la computadora central.

 

2. El estándar CMSIS-DAP

CMSIS-DAPes la especificación (o estándar, o protocolo, o...) de ARM, que define cómo debe construirse una sonda de programador/depuración. Según tengo entendido, especifica algunos aspectos del hardware, así como el protocolo de comunicación entre la computadora host y la sonda (1) .

PREGUNTA 1: ¿Dónde se encuentra
la especificación oficial ? CMSIS-DAPSé que el GitHub de CMSIS-DAPestá siendo reemplazado por un nuevo GitHub de DAPLink. Pero no lo olvidemos: DAPLinkes simplemente una implementación del estándar. No sé dónde encontrar el estándar en sí ...

RESPUESTA:
El usuario @Nipo publicó los enlaces:

 
(1) Creo que la comunicación entre la sonda y la computadora host está definida por este CMSIS-DAPprotocolo, pero no la comunicación entre la sonda y el microcontrolador, porque eso ya está definido por el protocolo JTAGo .SWD

 

3. La sonda SWDAP y DAPLink

La SWDAPsonda es una implementación de hardware y DAPLinkuna implementación de firmware de la CMSIS-DAPespecificación. Obviamente, el DAPLinkfirmware se ejecuta en el SWDAPhardware.

Te enumero los SWDAPrecursos:

ingrese la descripción de la imagen aquí

Y los DAPLinkrecursos:

 
PREGUNTA 2:
La SWDAPsonda ejecuta el DAPLinkfirmware, por lo que debe ser compatible con SWDy JTAG. Pero el Sr. Gorazd Kovacic de LTek me respondió en un correo electrónico que SWDAPsolo admite la sonda SWD. Creo que está equivocado. ¿Qué opinas?
Nota: Solo puedo probarlo la próxima semana cuando llegue el hardware adecuado.

RESPUESTA:
El usuario @Nipo afirma: "Todas las sondas que utilicen la implementación de DAPLink como firmware central proporcionarán el mismo conjunto de funcionalidades". Así que la única limitación está en el hardware. Si el fabricante del hardware no proporcionó las conexiones JTAG adecuadas, no tendrá suerte.

 

4. Uso de OpenOCD para la sonda SWDAP

Sé que la SWDAPsonda está diseñada para usarse con pyOCD . Eso nos lleva a mi tercera pregunta:

 
PREGUNTA 3: ¿ Se puede usar
la SWDAPsonda (y la sonda) también con OpenOCD ? ¿O solo con pyOCD ?  RESPUESTA: Recibí un correo de la lista de correo de desarrolladores de OpenOCD para responder esta pregunta. El Sr. Paul Fertser mencionó el archivo de configuración, que se encuentra en la carpeta. Lo probaré la próxima semana, cuando llegue mi hardware.CMSIS-DAP
 

cmsis-dap.cfgopenocd/scripts/interface/

 

5. La misteriosa sonda CMSIS-DAP

La CMSIS-DAPsonda de LTek ( https://l-tek.si/web-shop/cmsis-dap-debug-probe ) sigue siendo un misterio para mí. Como CMSIS-DAPes solo un estándar (o llámelo 'especificación' o 'protocolo'), el nombre de la sonda es un poco confuso. Por lo tanto, debe llamarse CMSIS-DAPsonda compatible en su lugar.

ingrese la descripción de la imagen aquí

Esto nos lleva a la última pregunta:

 
PREGUNTA 4:
Todavía no entiendo en qué se diferencia esta sonda de la SWDAPsonda. Ambos son del mismo proveedor LTek y parecen estar diseñados por ARM.

RESPUESTA:
Aparentemente, esta sonda es solo una especie de clon de la SWDAPsonda, por lo que cumple con el CMSIS-DAPestándar. El nombre de esta sonda es un poco engañoso.

Vale la pena señalar que algunas de las implementaciones de CMSIS-DAP publicadas (especialmente las más portátiles) son muy lentas en comparación con otras soluciones. Más allá de la idea específica de CMSIS-DAP, la mayoría de los adaptadores de depuración simples no admiten que el voltaje operativo del objetivo se aleje más de un diodo del adaptador. Idealmente, al comprar un adaptador "mejor", está pagando por una solución de comunicación más rápida y flexibilidad de voltaje; pero con algunos productos que permanecerán sin nombre, gran parte de lo que está pagando es el nombre de una empresa, y algunas veces se agregan molestias intencionalmente .

Respuestas (2)

CMSIS es el nombre genérico de la infraestructura especificada por ARM en torno a los procesadores Cortex. El proyecto que conocemos hoy como DAPLink en realidad comenzó como mbedmicro/CMSIS-DAP , podemos encontrar múltiples referencias del cambio de nombre en el historial del proyecto. El nombre "CMSIS-DAP" se volvió ambiguo, ya que era tanto el nombre de la especificación como la implementación de Mbed.

Entonces, hoy, CMSIS-DAP es el protocolo, DAPLink es una implementación de este protocolo.

CMSIS-DAP no es el protocolo de depuración más eficiente en el mundo JTAG/SWD, pero hace el trabajo con recursos informáticos del lado de la sonda (muy) razonables (es decir, MCU de nivel de entrada con USB pueden ejecutarlo, como LPC11 baratos). CMSIS-DAP es compatible con OpenOCD y muchas otras herramientas en el lado del host.

CMSIS-DAP especifica los comandos JTAG y SWD, DAPLink brinda soporte para ambos.

Como DAPLink es una implementación con una licencia permisiva, básicamente se puede usar en cualquier lugar sin costo adicional. Muchos proveedores diferentes crean placas con firmware DAPLink en ellas, ya sea solas (haciendo una sonda independiente como la que vinculaste) o junto con una CPU de destino (como tenemos en las placas de desarrollo). Todas las implementaciones de hardware de DAPLink incorporan el mismo firmware con las mismas funcionalidades, y debería poder reconstruir DAPLink y actualizarlas si es necesario.

Actualización después de modificaciones de OP

CMSIS-DAP se define en el documento correspondiente en la página del software ARM . Encontrarás todos los detalles en la sección de Referencia .

LTek puede nombrar sus tableros como quiera, incluso si el nombre es algo engañoso.

Como escribí anteriormente, todas las sondas que utilizan la implementación de DAPLink como firmware central proporcionarán el mismo conjunto de funcionalidades.

En cuanto a la compatibilidad con SWD/JTAG, la única limitación que puede tener en algunas placas será el hardware: si los fabricantes no proporcionaron conexiones para TDI y TDO, no podrá hacer que JTAG funcione con ellas.

Acerca de la sonda SWDAP, la propia página de ARM afirma que "SWDAP es un diseño de hardware abierto entregado como parte de mbed-HDK", es por eso que LTek puede proporcionar un clon textual.

Hola @Nipo, muchas gracias. Su respuesta ayudó significativamente a comprender mejor la terminología utilizada por ARM. Sin embargo, todavía hay algunas cosas que no están claras. Reestructuré mi publicación original y enumeré las cosas poco claras en 4 preguntas. Por favor, eche un vistazo a ellos. te lo agradeceria mucho :-)

DAPLink afirma que utiliza el protocolo CMSIS-DAP, que es compatible con OpenOCD

CMSIS-DAP, como sugiere su nombre, es un protocolo y firmware desarrollado por ARM, la empresa que diseña los núcleos del procesador. El firmware en sí es compatible con SWD y JTAG. http://www.keil.com/pack/doc/cmsis/DAP/html/index.html?_ga=2.84588765.557139549.1541455299-619225292.1541455299

A juzgar por el etiquetado de PCB ( "ARM University" ), la sonda CMSIS-DAP es una implementación de referencia de ARM o su filial.