如何使用 Arduino 开发板作为 DAPLink 设备

什么是 DAPLink
Arm Mbed DAPLink 是一个开源软件项目,用于对运行在 Arm Cortex CPU 上的应用软件进行编程和调试。DAPLink 通常被称为接口固件,运行在连接到应用 MCU 的 SWD 或 JTAG 端口的辅助 MCU 上。这种配置在几乎所有开发板上都可用。它在您的开发计算机和 CPU 调试访问端口之间创建了一个桥梁。
请同时访问 DAPLink 获取更多信息。
Arduino 开发板的 DAPLink
现在,我们已经开发了运行在您的 Arduino 开发板(SAMD 系列)上的 DAPLink 固件,如 Wio Terminal 和 Seeeduino Xiao,这样您就可以以最经济有效的方式上传和调试支持 DAPLink 的开发板!
特性
- 调试和烧录 Arm Cortex CPU
- 提供虚拟串口,无需 USB 转串口
- 拖拽上传固件(即将推出)
支持的开发板
它支持 Seeed 的所有 SAMD 开发板:
- Wio Terminal
- Seeeduino XIAO
- Seeeduino Zero 系列:
- Seeeduino LoRaWAN
请确保您已安装了 最新的 Seeed ArduinoSAMD 开发板库(>=1.8.1) 以使其正常工作!
开始使用
1. 安装 DAPLink Arduino 库
-
访问 Seeed_Arduino_DAPLink 仓库,将整个仓库下载到您的本地驱动器。
-
现在,可以将 Seeed_Arduino_DAPLink 库安装到 Arduino IDE。打开 Arduino IDE,点击
sketch
->Include Library
->Add .ZIP Library
,选择您刚刚下载的Seeed_Arduino_DAPLink
文件。
2. 安装 Adafruit_TinyUSB_Arduino 库
-
访问 Adafruit_TinyUSB_Arduino 仓库,将整个仓库下载到您的本地驱动器。
-
现在,可以将 Adafruit_TinyUSB_Arduino 库安装到 Arduino IDE。打开 Arduino IDE,点击
sketch
->Include Library
->Add .ZIP Library
,选择您刚刚下载的Adafruit_TinyUSB_Arduino
文件。
自定义引脚定义
如果您使用的是 Wio Terminal 或 Seeeduino Xiao,您可以跳过此部分,直接使用默认定义。
- DAPLink 的引脚定义在
Seeed_Arduino_DAPLink/src
下的DAP_config.h
中定义,参考以下内容:

上传到 Arduino 开发板
使用 Arduino IDE 打开 Seeed_Arduino_DAPLink/example
下的 simple_daplink.ino
。在 Tools
-> USB Stack
下选择 TinyUSB。

编译并上传代码!
硬件连接示例
在本wiki中,我们使用了STM32F410RB开发板作为连接示例:
如果您已更改引脚定义,请根据您自己的定义进行连接。
- Seeeduino Xiao 连接示例

- Wio Terminal 连接示例

IDE调试和烧录示例
我们的Arduino开发板现在成为了用于MCU上传的DAPLink设备!让我们看一些不同IDE的示例供参考。
使用OpenOCD进行调试
-
根据上述连接将Arduino DAPLink连接到目标开发板,并连接到您的PC。
-
确保您已安装OpenOCD。
-
打开终端并运行以下命令:
根据您的开发板更改为您的设备目标,您可以查看官方文档进行参考。
openocd -f interface/cmsis-dap.cfg -f target/stm32f4x.cfg

- 在您的开发板项目构建路径下,运行gcc,看起来像下面这样:

- 在gdb下,通过运行以下命令连接到本地主机:
target remote 127.0.0.1:3333

- 现在开发板已连接,您可以开始调试或上传!
运行load
上传到开发板:

GDB的一些有用命令:
continue/cont
ctrl
+c
next
break
info break
clear
delete
list
使用Eclipse进行调试
对于Eclipse,它与OpenOCD非常相似,因为它可以使用OpenOCD作为后端。
- 导航到Help -> Eclipse Marketplace,搜索并下载Eclipse Embedded CDT:

- 导航到Window -> Preference -> MCU -> Global OpenOCD Path并填入您的OpenOCD路径,如下所示:

- 构建您的项目。在Run Last Tool下,点击External Tools Configurations:

- 复制以下设置,请更改为您的路径(以及您的目标板)。

如果一切顺利,应该看起来像这样:

- 在Debug下,点击Debug Configurations,选择Debugger部分,并填入您的gcc路径:

现在一切就绪,可以开始调试了!

更多参考,请查看这里。
使用Keil进行调试
- 根据上述连接将Arduino DAPLink连接到目标开发板并连接到您的PC。
要在Keil中使用我们的Arduino DAPLink,请检查以下内容:
- 用Keil打开您的项目,点击Options for target。
您应该看到如下所示的窗口。确保设备与您的设备匹配。导航到Debug部分并选择CMSIS-DAP Debugger。
- 点击CMSIS-DAP Debugger旁边的settings。

- 选择Seeed CMSIS-DAP(我们的Arduino开发板),您应该看到它已连接。

- 您可能还想导航到Flash Download部分以确保它是正确的设备,然后点击OK。

- 点击Build和Flash!

使用IAR Embedded Workbench进行调试
-
根据上述连接将Arduino DAPLink连接到目标开发板并连接到您的PC。
-
打开您的项目,导航到Project -> Options。在Options菜单中,选择Debugger:

- 在Setup选项卡中,从Driver下拉菜单中选择CMSIS DAP。

- 在Download选项卡中,勾选Verify download和Use flash loader(s)

- 从左侧菜单中选择CMSIS DAP,选择Interface选项卡并配置SWD协议。

- 点击OK,然后您可以点击Download and Debug!

串口使用
为了让使用更加便捷,我们还在 Arduino 代码中实现了 USB 转串口功能,这样您就无需额外的硬件!
- 默认情况下,它被定义为
Serial1
,这是硬件串口引脚。例如,对于 Seeeduino XIAO,它是引脚 6 和 7。
您可以在 Arduino 代码中定义自己的串口。

参考用法,请查看这里。
资源
技术支持与产品讨论
感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。