keil No Cortex-M Device found in JTAG chain. Please check the JTAG cable and the connected devices
问题如图
排查原因
这个错误信息是:
No Cortex-M Device found in JTAG chain. Please check the JTAG cable and the connected devices.
意思是 J-Link 没能在 JTAG/SWD 链路中找到 Cortex-M 设备。
既然你说“其他工程都没问题”,那硬件、线缆、J-Link 本身基本可以排除。
那就说明问题很可能出在这个工程的调试配置或固件本身。
下面是最常见的几个原因和排查思路(按优先级从高到低)
一、检查 Keil 调试接口设置
打开:Project -> Options for Target -> Debug -> Settings
在 J-Link/J-Trace Cortex 配置窗口中,确认:
Interface 选择的是 SWD(不是 JTAG)
Device 正确,比如 GD32F415, STM32F103C8, HC32F460 等(要和你的 MCU 型号一致)
SWD speed 可以先改成低一点,比如 1000 kHz 或 500 kHz
太高的速度有时会导致握手失败。
若你之前在别的工程里能连上,那么对比一下两个工程的这部分配置是否不一样。
二、工程里可能启用了低功耗模式或关闭了 SWD 引脚
有时候代码会:
MCU 进入了 Sleep/Standby/PowerDown 模式;
或者 复用了 SWD 引脚(PA13/PA14 或 SWCLK/SWDIO)当作 GPIO 输出;
或者程序跑飞后 SWD 被关掉。
解决办法:
重新上电后立即下载(上电瞬间点“Download”),在程序运行前接入调试;
或者使用 J-Link Commander:
JLinkExe
> connect
然后在弹出的对话框中指定正确的芯片型号、SWD 接口;
若能连接成功,可以执行:
erase
来擦除 Flash,让芯片重新可下载。
三、电源或复位问题
即使是同一个板子,如果这个工程的电源初始化或复位控制不同,也可能导致:
MCU 没启动(比如电源 rail 没上)
或者 RST 脚被拉低
可尝试:
测量 3.3V 是否正常;
检查 NRST 是否被其他电路一直拉低;
检查是否用到外部电源时没供给 MCU。
四、调试下载算法配置错误
在 Keil:
Project -> Options for Target -> Utilities -> Settings
检查 Flash Download 里是否选对了芯片的 Flash 编程算法。
比如:
如果你之前的工程是 GD32F103C8,而这个工程误选成了 STM32F103C8,就会出问题。
五、缓存/临时文件异常
有时 Keil 的配置文件损坏也会导致奇怪现象。
可以尝试:
删除工程目录下的:
*.uvguix
*.uvoptx
文件(这是 Keil 的用户配置文件);
然后重新打开工程,重新设置 J-Link 参数。
建议排查顺序
确认 SWD 模式 + 正确芯片型号
降低 SWD 速度
尝试复位后立刻下载
在 JLinkExe 里尝试手动连接并擦除
检查 SWD 引脚是否被占用
对比 Flash 下载算法
————————————————
版权声明:本文为CSDN博主「ACM_User」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_57249200/article/details/153627993
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|