DAPLink使用手册
够用的硬件
能用的代码
实用的教程
屋脊雀工作室编撰
DAPLink是ARM官方调试器,以前叫CMSIS DAP,现在改名叫DAPLink。
软硬件都是开源的,在github上可以找到原理图和源码。
功能
DAPLink 提供3个接口:
1. drag-n-drop programming
2. a serial port
3. debugging support
这3个功能都是通过一个USB口连接,USB在电脑上生成3个设备:
1. MSD(mass storge disk/文件夹)
2. CDC(串口)
3. HID(调试)
drag-n-drop programming
下载目标文件
DAPLink连接到电脑后,在电脑上可以看到一个U盘文件夹。如下图:
打开U盘,有两个文件
DETAILS.TXT是MSD配置,默认内容如下:
# DAPLink Firmware - see https://mbed.com/daplink
Unique ID: 505000000784954800000000000000000000000097969902
HIC ID: 97969902
Auto Reset: 0
Automation allowed: 0
Overflow detection: 0
Daplink Mode: Interface
Interface Version: 0246
Git SHA: b202ddc3fc89ff9750dc01afea7de4641b54666d
Local Mods: 0
USB Interfaces: MSD, CDC, HID
Interface CRC: 0x929415d5
Remount count: 0
拷贝程序文件到这个文件夹,即可完成对目标芯片编程。
如果编程失败,在文件夹内有一个FAIL.TXT文件说明失败原因。
支持的文件格式:
Raw binary file
Intel Hex
固件和目标芯片
当前一个DAPLink固件通常只支持一种CPU。如要对不同的芯片进行drag-n-drop programming,请更
新对应目标芯片的固件。
以下是当前github代码支持的目标芯片的固件:
固件名称:lpc11u35_arm_watch_stm32f411_if,代表使用lpc11u35芯片的DAPLink,MSD支持
stm32f411。
官方一直在持续更新,如果有兴趣,你也可以自己增加目标芯片。
还可以移植DAPLink到不同的芯片上,国内已经有人将DAPLink移植到STM32上。
官方已经放出STM32版本的原理图,固件暂时没看到。
不同的芯片,FLASH编程方法不同。
ARM为什么不把所有算法整合呢?芯片空间不够?
MSD命令
参考说明文档:MSD_COMMANDS.md
可以通过MSD接口对DAPLink发送一些指定的简单命令。
只要拷贝一个指定名字的文件到MSD内,就可以让DAPLink进行一些操作,或者配置DAPLink。
在拷贝指令文件时,需要按住复位按键,或者是DAPLink处于automation-allowed模式(进入
automation-allowed模式也需要通过指令文件)。
.act 文件触发一个动作
.cfg 则是一个配置
拷贝文件到MSD后,需要重新加载DAPLink MSD,指令或配置才生效。实测,DAPLink会自动重新挂
载MSD。
Action Commands
start_bl.act
start_if.act
assert.act
refresh.act
erase.act:This file triggers an erase of the target's flash.
Configuration Commands
auto_rst.cfg:更新文件到目标芯片后,自动运行。默认关闭。请看DETAILS.TXT文件内
Automation allowed: 0。
hard_rst.cfg:与auto_rst.cfg对应,关闭自动运行。
auto_on.cfg:This file turns on automation-allowed mode. In this mode, DAPLink
MSD commands can be triggered without needing to hold down the RESET button.
auto_off.cfg:This file turns off automation-allowed mode. This mode
is off by default
ovfl_on.cfg
ovfl_off.cfg.
个人认为这些命令用处并不是很大。
serial port
DAPLink通过USB CDC方式虚拟出一个串口。将DAPLink的TX和RX连接到目标板串口,可做调试信
息串口使用。
驱动安装
WIN7系统需要安装串口驱动,驱动文件名叫: mbedWinSerial_16466.exe
使用
跟其他USB转串口一样使用。
CDC
串
口
挂
载
久了
(
例
如
插
在
电
脑
一
晚
上不关
机
),
会传
输
失
败
,
插拔
DAPLink
即可
。
注意事项
实测,CDC串口不能直接对目标芯片进行ISP。
XP系统不支持CDC
debugging support
在支持CMSIS-DAP 协议的IDE上可使用DAPLink在线调试目标芯片,功能类似JLINK、STLINK。
下面IDE支持DAP协议:
pyOCD
uVision
IAR
MDK设置
点击红框内的魔术棒按钮,进入工程Option。
点击Debug标签页,在仿真器下来菜单内旋转CMSIS-DAP Debugger,然后点击Settings进入调试器设
置
进入调试器设置后,在Debug标签页,
选择CMSIS-DAP HID或DAPLink CMSIS-DAP。(如果是其他DAP,名称可能会修改,选择对应的即
可)
Port选择框选择SW。
Max Clock可以设置为最高的10MHz(使用优质杜邦线连接,长度最好不要大于40CM)