Cómo usar placas Arduino como dispositivo DAPLink

Qué es DAPLink
Arm Mbed DAPLink es un proyecto de software de código abierto que programa y depura software de aplicación ejecutándose en CPUs Arm Cortex. DAPLink a menudo se denomina firmware de interfaz y se ejecuta en un MCU auxiliar conectado al puerto SWD o JTAG del MCU de aplicación. Esta configuración está disponible en casi todas las placas de desarrollo. Crea un puente entre tu computadora de desarrollo y el puerto de acceso de depuración de la CPU.
Por favor visita también DAPLink para más información.
DAPLink para placas Arduino
Ahora, hemos desarrollado el firmware DAPLink ejecutándose en tus placas Arduino(Serie SAMD) como Wio Terminal y Seeeduino Xiao para que puedas cargar y depurar placas de desarrollo que soporten DAPLink de la manera más rentable!
Características
- Depurar y flashear CPUs Arm Cortex
- Proporciona un puerto serie virtual, eliminando la necesidad de un convertidor USB a puerto serie
- Arrastrar y soltar para cargar firmware (próximamente)
Placas compatibles
Soporta todas las placas SAMD de Seeed:
- Wio Terminal
- Seeeduino XIAO
- Serie Seeeduino Zero:
- Seeeduino LoRaWAN
¡Por favor asegúrate de haber instalado la última librería de placas ArduinoSAMD para Seeed (>=1.8.1) para que esto funcione!
Comenzar
1. Instalando las librerías Arduino de DAPLink
-
Visita los repositorios Seeed_Arduino_DAPLink y descarga todo el repositorio a tu unidad local.
-
Ahora, la librería Seeed_Arduino_DAPLink puede instalarse en el IDE de Arduino. Abre el IDE de Arduino, y haz clic en
sketch
->Include Library
->Add .ZIP Library
, y elige el archivoSeeed_Arduino_DAPLink
que acabas de descargar.
2. Instalando la librería Adafruit_TinyUSB_Arduino
-
Visita los repositorios Adafruit_TinyUSB_Arduino y descarga todo el repositorio a tu unidad local.
-
Ahora, la librería Adafruit_TinyUSB_Arduino puede instalarse en el IDE de Arduino. Abre el IDE de Arduino, y haz clic en
sketch
->Include Library
->Add .ZIP Library
, y elige el archivoAdafruit_TinyUSB_Arduino
que acabas de descargar.
Personalizando las definiciones de pines
Si estás usando Wio Terminal o Seeeduino Xiao, puedes omitir esta sección y simplemente usar las definiciones predeterminadas.
- Las definiciones de pines para DAPLink están definidas en
DAP_config.h
bajoSeeed_Arduino_DAPLink/src
, consulta lo siguiente:

Cargar a placas Arduino
Abre el simple_daplink.ino
bajo Seeed_Arduino_DAPLink/example
usando el IDE de Arduino. Bajo Tools
-> USB Stack
y elige TinyUSB.

¡Compila y carga el código!
Ejemplo de Conexión de Hardware
En este wiki, hemos usado la placa de desarrollo STM32F410RB como ejemplo de conexión:
Si has cambiado las definiciones de pines, por favor conecta según tus propias definiciones.
- Ejemplo de Conexión Seeeduino Xiao

- Ejemplo de Conexión Wio Terminal

Ejemplo de Depuración y Flash para IDEs
¡Nuestra placa Arduino ahora se convierte en nuestro dispositivo DAPLink para cargar en MCUs! Veamos algunos ejemplos para diferentes IDEs como referencia.
Depuración con OpenOCD
-
Conecta el Arduino DAPLink al desarrollo objetivo según la conexión anterior, y a tu PC.
-
Asegúrate de haber instalado OpenOCD.
-
Abre Terminal y ejecuta lo siguiente:
Cambia a tu dispositivo objetivo según tu placa de desarrollo, puedes consultar el documento oficial como referencia.
openocd -f interface/cmsis-dap.cfg -f target/stm32f4x.cfg

- Bajo la ruta de compilación del proyecto de tu placa de desarrollo, ejecuta gcc, que se ve algo así:

- bajo gdb, conéctate al host local ejecutando lo siguiente:
target remote 127.0.0.1:3333

- ¡Ahora la placa de desarrollo está conectada, puedes comenzar a depurar o cargar!
Ejecuta load
para cargar a la placa de desarrollo:

Algunos comandos útiles para GDB:
continue/cont
ctrl
+c
next
break
info break
clear
delete
list
Depuración con Eclipse
Para Eclipse, es muy similar a OpenOCD ya que puede usar OpenOCD como backend.
- Navega a Help -> Eclipse Marketplace, busca y descarga Eclipse Embedded CDT:

- Navega a Window -> Preference -> MCU -> Global OpenOCD Path y completa tu ruta de OpenOCD como sigue:

- Compila tu proyecto. Bajo Run Last Tool, haz clic en External Tools Configurations:

- Copia las siguientes configuraciones, por favor cambia a tu ruta (también tu placa objetivo).

Si va bien, debería verse algo así:

- Bajo Debug, haz clic en Debug Configurations, selecciona la sección Debugger, y completa tu ruta de gcc:

¡Ahora todo está listo para depurar!

Para más referencia, por favor revisa aquí.
Depuración con Keil
- Conecta el Arduino DAPLink al desarrollo objetivo según la conexión anterior y a tu PC.
Para usar nuestro Arduino DAPLink en Keil, verifica lo siguiente:
- Abre tu proyecto con Keil, haz clic en Options for target.
Deberías ver una ventana como la de abajo. Asegúrate de que el dispositivo coincida con tu dispositivo. Navega a la sección Debug y selecciona CMSIS-DAP Debugger.
- Haz clic en settings junto al CMSIS-DAP Debugger.

- Elige Seeed CMSIS-DAP(nuestra placa Arduino) y deberías ver que está conectada.

- También puedes navegar a la sección Flash Download para asegurarte de que es el dispositivo correcto y hacer clic en OK.

- ¡Haz clic en Build y Flash!

Depuración con IAR Embedded Workbench
-
Conecta el Arduino DAPLink al desarrollo objetivo según la conexión anterior y a tu PC.
-
Abre tu proyecto, y navega a Project -> Options. En el menú Options, selecciona Debugger:

- En la pestaña Setup, selecciona CMSIS DAP del menú desplegable Driver.

- En la pestaña Download, marca Verify download y Use flash loader(s)

- Selecciona CMSIS DAP del menú de la izquierda, selecciona la pestaña Interface y configura el protocolo SWD.

- ¡Haz clic en OK, y puedes hacer clic en Download and Debug!

Uso Serial
Para hacer la vida más fácil, también implementamos una función USB a Serial en el Arduino Sketch que te ahorra la necesidad de hardware adicional!
- Por defecto, está definido como
Serial1
y son los pines Serial de Hardware. Por ejemplo, son los pines 6 y 7 para Seeeduino XIAO.
Puedes definir tu propio Serial en el Arduino Sketch.

Uso de referencia, consulta aquí.
Recursos
Soporte Técnico y Discusión de Productos
¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para atender diferentes preferencias y necesidades.