一、背景 keil使用ULINK2调试的时候,提示 "No Ulink Device found", "error: flash download failed - Target DLL has cancelled" 。 之前一直都OK,然后今天突然不行,插上的时候,"COM","RUN"的绿灯也跟平时一样亮了1s左右,熄灭, 红灯也长亮,看设备管理器,电脑也识别了。后来才知道同事将ULINK带回家使用了,而他的keil版本是V4.70,公司kel版本却是V4.60,问题就出在这里。 若是设备管理器找不到keil,那么就是ULINK硬件有问题,不在本篇文章讨论之列。二、正文 出现原因: ULINK根据PID分为两个可用固件版本:PID = "PID2720"或者PID = "PID2722"。 PID即USB的PID,查看方式为: 设备管理器 --> 人体输入学设备 --> HID-compliant device --> 右击选择属性 --> "属性"一框 --> 选择硬件ID --> 即可得到PID信息。 > "PID2720" --> 固件版本为V1.42或者更低的固件版本,则支持MDK-ARM V4.60或者更低的keil版本。 > "PID2722" --> 固件版本为V2.00或者更高的固件版本,则支持MDK-ARM V4.70或者更高的keil版本。 如果需要用该版本固件去配合MDK-ARMV4.60或者更低版本的KEIL使用,则应该 使用"UL2_Configure.exe"(附件)工具,将ULINK设置为"for ULINK boot mode"。 解决办法一共有两种: 1、 将MDK-ARM V4.60升级到V4.70以上版本。(V4.70调试的时候有些小问题,我暂时没这么干)。 2、 利用"UL2_Configure.exe"将ULINKD boot mode 更改为"for ULINK boot mode": "UL2_Configure.exe"这个玩意儿在MDK v4.7的安装目录(..\Keil\ARM\ULINK\Utilities)下, 现在问题来了,我又不想装V4.70哪有这玩意儿,所以我把他提取出来了,下载链接见文章第三 部分。 操作办法既是:打开cmd,输入 : ..\UL2_Configure.exe SN码 B0 ,然后回车("..\"代表这个文件所在的链接。) > SN码查看方法:keil --> Target option --> Debug --> setting --> Serial No:SN码; > B0 --> ULINK boot mode; B1 --> CMSIS-DAP boot mode; 接着就会出现Disconnect......等等的提示,等待其自行操作完毕即可。三、参考链接: 1、 "UL2_Configure.exe"下载地址: http://pan.baidu.com/s/1c1LRS6c 2、 "ULINK: No ULINK Device Found" http://www.keil.com/support/docs/3613.htm 3、 "ULINK2 User's Guide --> Hardware Checklist": http://www.keil.com/support/man/docs/ulink2/ulink2_trblsh_hwcheck.htm 4、 "ULINK: How to downgrade the firmware of ULINK2/ME" http://www.keil.com/support/docs/3632.htm 至此记录完毕。记录时间:2016年11月14日记录地点:深圳WZ