IAR CC2540 a target cannot be selected when used in another debug session or other application 解决方法
- 蓝牙4.0 BLE学习时,使用的是TI的CC2540芯片,首先安装IAR 8.10.4,BLE协议栈版本为1.3.2。编译开发板的基础实验工程代码没有什么问题,点击"download and debug"按钮尝试将代码下载到CC2540板子调试时出现“ a target cannot be selected when used in another debug session or other application”提示框,下载失败,无法进行调试,如下图1所示:
图1
- 安装TI的工具PacketSniffer,插入USB dongle,打开PacketSniffer软件后无法识别dongle,如图2所示:
图2
- 安装TI的工具SmartRF Flash Programmer,插入CC debugger,打开SmartRF Flash Programmer软件后无法识别CC debugger,如图3所示:
图3
- 打开电脑的设备管理器,电脑看上去识别了CC debugger和USB dongle,结合上面的现象,实际上没有成功安装,因为驱动旁边有感叹号。右击查看属性可以看到“Windows 无法验证此设备所需的驱动程序的数字签名。最近的硬件或软件更改安装的文件可能未正确签名或已损坏,或者可能是来自未知来源的恶意软件。 (代码 52)”的提示,如图4所示:
图4
- 根据提示“Windows 无法验证此设备所需的驱动程序的数字签名。最近的硬件或软件更改安装的文件可能未正确签名或已损坏,或者可能是来自未知来源的恶意软件。 (代码 52)”,结合自己电脑是win7 64位旗舰版,查找解决办法如下:
原因是64 位系统强制要求所有设备驱动程序要有数字签名,因此只能通过启动系统时 F8 进入高级选项,选择禁用数字签名,进入系统后驱动显示正常了,可以用啦。
但是随后又出现一个问题,开机后重启,又恢复原样,再次查找解决办法,如下:
禁止Win7驱动强制签名
bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECK
或者
bcdedit /set testsigning on
恢复WIN7驱动强制签名
bcdedit -set loadoptions ENABLE_INTEGRITY_CHECKS
或者
bcdedit /set testsigning off
重启后生效, 第二种桌面右下角有水印: "测试模式"
使用管理员的身份打开CMD命令行,然后输入上面的命令,完成之后重新启动计算机,就可以随时在64位win7系统上使用未有数字签名的驱动程序了。当然,此操作也降低了系统的安全系数,所以不推荐一直关闭,而且也不推荐也没有经验的用户使用,养成良好的安全意识是安全的第一步。
自己的电脑是win7 64旗舰版,试了下,两种方法仍然不行,继续找,终于找到最终的解决办法,如下:
解决方法的网址:http://nick.txtcc.com/index.php/nocategory/290
摘录如下:
这个问题,一直都很找不到很好的解决方法。不过Windows 7还是有个空子可钻:它提供了一个开发者测试模式,为了让软件开发者能在拿到签名前测试自己的软件,它提供了一个测试模式。使用这个模式,就可完美解除驱 动程序强制签名限制。
Driver Signature Enforcement Overrider这款软件可方便地把Windows 7转换到这个测试模式下
成功开启测试模式后,再选择Sign a System File手动注册被Windows 7阻止的驱动程序文件(.sys文件,之前安装时Windows 7会有相应的阻拦提示,根据提示中的路径找到它)
但是,开启了测试模式后,在桌面右下角会有数字水 印,提示系统正工作在测试模式下,影响美观。
可使用一款软件来去除水印:Remove WaterMark,之后就完美了。
下载本文中涉及的软件:
Driver Signature Enforcement Overrider | Remove WaterMark