MSD就是Mass storage device的简称,也就是DAPLink的磁盘编程接口,让用户可以通过复制文件的方式实现更新文件。因为无需安装任何软件,使用上非常方便。
而MSD Commands是通过复制特殊文件名的文件到DAPLink的根目录,实现特定的操作或者配置。目前主要是两种,文件扩展名是.act的是进行某种动作,扩展名是.cfg的是实现参数配置。通常情况下,复制MSD Commands文件时需要按住RESET键不放,然后重新连接USB才能生效。MSD Commands下文件的内容不重要,重点是文件名。
- start_bl.act,强制进入Bootloader模式,等效于按住RESET键,在插入USB。
- start_if.act,强制进入编程模式。
- assert.act,调用util_assert() 测试DAPLink的维护功能。它会在根目录下产生一个文件ASSERT.TXT,里面包含断言失败的位置(文件名和行号)。删除ASSERT.TXT将清除断言,同时会重载MSD。实际上,任何文件操作(添加,删除,内容变化)可以用来触发daplink命令。
- refresh.act,强制重载MSD
- erase.act,清除目标
- auto_rst.cfg,允许自动复位功能,在编程完成后自动执行一个复位命令,这样用户程序将自动开始执行。默认自动复位功能是禁止的。
- hard_rst.cfg,关闭自动复位。
- auto_on.cfg,允许自动维护功能,在这个模式下,复制MSD Commands文件不需要按住RESET键
- auto_off.cfg,关闭自动维护功能
- ovfl_on.cfg,打开串口数据溢出报告
- ovfl_off.cfg,关闭串口数据溢出报告
设备的MSD状态可以在文件DETAILS.TXT中查看。下面是一个DAPLink的DETAILS.TXT内容:
# DAPLink Firmware - see https://mbed.com/daplink
Unique ID: 9009000001b5501f00000000000000000000000097969902
HIC ID: 97969902
Auto Reset: 1
Automation allowed: 0
Overflow detection: 0
Daplink Mode: Interface
Interface Version: 0243
Git SHA: 068b7ea0b2e62803d84fc5038ba671abb55b5d2d
Local Mods: 1
USB Interfaces: MSD, CDC, HID
Interface CRC: 0x3efd8941
Remount count: 0