Skip to main content

Cómo usar placas Arduino como dispositivo 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.

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:

note

¡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. Visita los repositorios Seeed_Arduino_DAPLink y descarga todo el repositorio a tu unidad local.

  2. 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 archivo Seeed_Arduino_DAPLink que acabas de descargar.

InstallLibrary

2. Instalando la librería Adafruit_TinyUSB_Arduino

  1. Visita los repositorios Adafruit_TinyUSB_Arduino y descarga todo el repositorio a tu unidad local.

  2. 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 archivo Adafruit_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 bajo Seeed_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.
note

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.

Loading Comments...