本帖最后由 dcexpert 于 2017-8-2 22:13 编辑
MAX32630开发板带有一个DAPLink仿真器(MAXREFDES100HDK)。DAPLink是CMSIS-DAP的升级,支持CMSIS-DAP的所有功能,支持的芯片型号更多,扩展性更好。
DAPLink有一个有用的功能是自动复位,就是通过复制文件方式下载新的程序后,在完成程序写入后,可以自动复位用户单片机,实现自动运行的效果。默认情况下,这个功能是关闭的,每次都需要按一下复位键才能运行程序,稍微有点麻烦,因此就想把自动复位功能加上。
要查看自动复位(auto_rst)功能是否允许了,可以打开DAPLink所在的磁盘,可以看到有一个DETAILS.TXT文件。我们打开这个文件,可以看到下面的内容,其中第4行就显示了自动复位功能。
- # DAPLink Firmware - see [url=https://mbed.com/daplink]https://mbed.com/daplink[/url]
- Unique ID: 040900004d8043d800000000000000000000000097969904
- HIC ID: 97969904
- Auto Reset: 0
- Automation allowed: 0
- Daplink Mode: Interface
- Interface Version: 0241
- Bootloader Version: 0242
- Git SHA: 1dae6a4f19d03a5050d5d8ee43cdaebaeab64e03
- Local Mods: 1
- USB Interfaces: MSD, CDC, HID
- Bootloader CRC: 0x8db0eef9
- Interface CRC: 0x25b50efc
复制代码
在0241以后版本中,DAPLink可以通过MSD Commands设置一些状态开关,详细的MSD Commands可以
参考这里。通过复制文件auto_rst.cfg到DAPLink就可以打开自动复位功能(复制文件同时需要按住RESET键),但是可惜的是,MAXREFDES100HDK可以响应这个命令(复制文件后打开DETAILS.TXT,可以看到Auto Reset变为了1),但是不能保存,掉电后又会恢复为禁用状态。
MAXIM也没有提供这个仿真器的源码,所以不能通过编译源码方式实现自动复位功能。经过几次实验,发现通过修改bin文件(将0xCA90处的0改为1),可以实现自动复位功能,使用新的固件文件后,只要复制bin文件到DAPLink磁盘后,就会自动运行,不需要再按复位键了。
固件文件:
升级固件的方法是:
- 下载固件文件(可以只下载我修改后的文件)
- 按住RESET键不放,然后连接USB到计算机。
- 保持RESET不放,直到出现MAINTENANCE(维护)磁盘
- 复制新的固件文件到MAINTENANCE磁盘,复制完成后会自动复位
- 再次打开DETAILS.TXT,查看Auto Reset是否变为了1,如果不是检查并重复上述步骤
测试文件: