1、 文档目标
本文介绍了流行的开源调试解决方案 DAPLink 和 OpenOCD 的情况。
2、 什么是 DAPLink?
Arm Mbed DAPLink 是一个开源软件项目,一直在 Arm、其合作伙伴、众多硬件供应商和世界各地的开源社区的大力开发下。
DAPLink 支持对 Arm Cortex CPU 上运行的应用软件进行编程和调试。DAPLink 通常称为固件接口,在连接到应用 MCU 的 SWD 或 JTAG 端口。
DAPLink是arm开源的一款烧写器,硬件电路与 STlink可以兼容,可以用于cortex系列的单片机调试与程序烧写。V2版本增加串口支持。由于arm开源了整个项目,所以任何人使用DAPLink,都不存在版权的问题。
如果您使用支持 CMSIS-DAP 调试协议的 IDE 进行开发,则是兼容DAPLink 。
3、什么是 OpenOCD?
OpenOCD(即开放片上调试器)是一种用于嵌入式系统开发的功能强大且多功能的开源软件工具。它具有多种用途,包括针对各种微控制器和处理器的调试、系统内编程和边界扫描测试。
OpenOCD 支持 JTAG 和 SWD 等各种硬件接口,允许开发人员与嵌入式设备上的软件进行交互和调试。其灵活性、多架构支持和跨平台兼容性使其成为嵌入式系统开发人员工具链中的宝贵工具,可在开发过程中促进固件编程和边界扫描测试等任务。
4、OpenOCD 支持 DAPLink 吗?
是的,OpenOCD 的 master 分支支持它。以下位置有 CMSIS-DAP 的接口配置: interface/cmsis-dap.cfg
驱动程序实现自动检测以下 DAPLink 设备及其各自的 USB VID/PID 组合:
VID 0xc251: Keil Software
PID 0xf001: LPC-Link-II CMSIS_DAP
PID 0xf002: OPEN-SDA CMSIS_DAP (Freedom Board)
PID 0x2722: Keil ULINK2 CMSIS-DAP
PID 0x2750: Keil ULINKplus CMSIS-DAP
OpenOCD作为服务器,并通过端口3333接受来自GDB的传入连接或通过端口4444接受来自telnet的传入连接。GDB用于源文件步骤调试。telnet连接用于刷新。OpenOCD连接到 DAPLINK仿真器。DAPLINK适配器连接到目标
5、OpenOCD command 常用命令
- 适配器命令
“adapter driver ” 命令告诉OpenOCD您正在使用哪种类型的调试适配器,比如DAPLINK/cmsis-dap的驱动器名称是”cmsis-dap”;
“transport select “通信方式配置,声明使用SWD/JTAG或其他通信方式,例如为”swd”;
“adapter_khz ” 该命令设置时钟通信速率,例如5M的为”500″;
- 目标板状态处理命令(Target state handling)
init 此命令终止配置阶段并进入运行阶段,如重置目标,编程闪存等需要执行该命令
poll 查询目标板当前状态
halt 中断目标板的运行
resume <address>
恢复目标板的运行,如果指定了<address>
,则从地址开始运行
step <address>
单步执行,如果指定了<address>
,则从地址开始执行一条指令
reset [run|halt|init] run:复位并运行目标; halt:复位并停止目标运行; init:立即停止目标,并执行复位的init脚本
- 编程一个文件默认情况下将执行以下操作:
1. 执行'init'
2. 调用"reset init"
来重置和停止目标
3. 调用"flash write_image"
给指定的文件名擦除和写入到Flash
4. 调用"verify_image "
对比下载文件是否有误
5. 调用"reset run"
复位运行程序
6. 退出OpenOCD服务
关于OpenOCD 相关的用户手册请参考:
【更多软件使用问题请站内搜索或关注B站:查看视频教学】