在某些情况下,J-Link/Flasher仿真器可能无法与芯片正确连接,而导致在IDE中调试失败,出现例如“Failed to get CPU status after 4 retries”的报错信息,无法获取芯片的状态,可能是由于J-Link未与芯片成功连接导致的。
一、验证J-Link与PC的连接
通常使用J-Link Commander来验证J-Link与PC的连接状况,以及电脑能否成功识别到J-Link。打开J-Link Commander,可以看到当前J-Link的连接状态及硬件版本信息。
若无法看到上述信息,则可以打开电脑的设备管理器,看设备管理器中能否检测到J-Link设备,如下图所示:
如果未能成功检测到设备,建议尝试如下方法:
1、重新启动PC,以确保USB协议本身未处于混乱状态
2、更换USB连接线缆
3、尝试其他的USB接口
4、如果使用到USB集线器,将集线器移除
5、尝试重新安装J-Link驱动程序,或将J-Link驱动程序升级到最新版本
6、切换到其他PC进行测试以排除PC本身的问题
二、验证J-Link与芯片的连接
在验证J-Link与芯片连接时,建议先使用芯片公司的官方评估板,或者其他可靠的硬件设备来进行验证,以避免可能由错误的硬件设计带来的问题。
首先通过如下链接将J-Link驱动更新到最新版本:
https://www.segger.com/downloads/jlink
按照如下步骤连接J-Link与芯片:
1、将J-Link连接到PC
2、给开发板进行供电
3、将J-Link与开发板连接
4、打开J-Link Commander输入connect等命令进行测试
如果输入connect命令行连接失败,请检查如下事项:
1、Vtref=0 v
J-Link使用目标板参考电压来创建调试信号的电平,因此该引脚必须与芯片的电源引脚连接,以获取正确的目标板参考电压。出现下图所示情况时,请检查芯片的供电情况及Vtref引脚的连接情况。
2、检查目标板的电源并验证其电源
使用万用表测量J-Link的引脚1(Vtref)和引脚4(GND)之间的电压,确保J-Link能够检查到目标板的参考电压。
3、确认是否选择了正确的调试接口
在不同的芯片上,存在多种调试接口,例如JTAG和SWD,首先需确认芯片能否支持某一调试接口,例如在一些较早期的芯片型号可能仅支持JTAG调试接口而无法支持SWD调试接口。
除了确认芯片能够支持该调试接口外,还应进一步检查目标板的调试接口的硬件设计,确保芯片的调试引脚有成功连接到调试接口。
4、对目标设备进行编程后,无法再建立连接
请查看目标设备的相关安全设置,在某些设备中可以写入特定寄存器来禁用调试接口,从而导致无法连接,或者是芯片上存在其他安全措施会影响到芯片的调试功能,建议查阅芯片手册进行确认。