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 :-)
Para programar y/o depurar un microcontrolador, es común el siguiente procedimiento:
Hay toneladas de sondas diferentes en el mercado. La comunicación entre la sonda y el microcontrolador está estandarizada en los protocolos SWD
y 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.
CMSIS-DAP
es 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-DAP
Sé que el GitHub de CMSIS-DAP
está siendo reemplazado por un nuevo GitHub de DAPLink
. Pero no lo olvidemos: DAPLink
es simplemente una implementación del estándar. No sé dónde encontrar el estándar en sí ...
RESPUESTA:
El usuario @Nipo publicó los enlaces:
CMSIS-DAP
: http://arm-software.github.io/CMSIS_5/DAP/html/index.htmlCMSIS-DAP
Detalles: http://arm-software.github.io/CMSIS_5/DAP/html/group__DAP__Commands__gr.html
(1) Creo que la comunicación entre la sonda y la computadora host está definida por este CMSIS-DAP
protocolo, pero no la comunicación entre la sonda y el microcontrolador, porque eso ya está definido por el protocolo JTAG
o .SWD
La SWDAP
sonda es una implementación de hardware y DAPLink
una implementación de firmware de la CMSIS-DAP
especificación. Obviamente, el DAPLink
firmware se ejecuta en el SWDAP
hardware.
Te enumero los SWDAP
recursos:
Y los DAPLink
recursos:
PREGUNTA 2:
La SWDAP
sonda ejecuta el DAPLink
firmware, por lo que debe ser compatible con SWD
y JTAG
. Pero el Sr. Gorazd Kovacic de LTek me respondió en un correo electrónico que SWDAP
solo 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.
Sé que la SWDAP
sonda está diseñada para usarse con pyOCD . Eso nos lleva a mi tercera pregunta:
PREGUNTA 3: ¿ Se puede usar
la SWDAP
sonda (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.cfg
openocd/scripts/interface/
La CMSIS-DAP
sonda de LTek ( https://l-tek.si/web-shop/cmsis-dap-debug-probe ) sigue siendo un misterio para mí. Como CMSIS-DAP
es 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-DAP
sonda compatible en su lugar.
Esto nos lleva a la última pregunta:
PREGUNTA 4:
Todavía no entiendo en qué se diferencia esta sonda de la SWDAP
sonda. 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 SWDAP
sonda, por lo que cumple con el CMSIS-DAP
estándar. El nombre de esta sonda es un poco engañoso.
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.
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.
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.
chris stratton