我在使用 µVision4 和 ULINK2 的 STM32F205ZG 上运行调试器时遇到问题。我不断收到错误消息“无法停止 Cortex-M 设备!请检查 JTAG 电缆。” 我正在使用 SW 端口。对此的任何帮助将不胜感激。
4 回答
我的 NXP uC 也遇到了同样的问题。
问题是加载到闪存中的代码有问题,并且将 CPU 置于一个繁忙的循环中,并分支回相同的地址,这阻止了调试器访问总线。
如果我将设备置于 ISP 模式,uLink 就可以工作,因为它从未进入用户代码。
似乎 uLink 在复位后需要很长时间才能停止设备,规范在某处告诉你这一点,所以当 uLink 尝试停止 CPU 时为时已晚,因为它无法访问总线并锁定。
以我自己的经验,当 ULINK2 在调试会话期间断开并重新连接时,或者如果您有一些外部硬件不受调试器的控制,而这些硬件正在作用于您的处理器时,我通常会看到此错误。
如果 ULINK2 在调试过程中断开连接,那么通常循环给您的设备供电可以解决问题。
如果您有类似看门狗定时器之类的东西在调试过程中试图重置处理器,那么您必须先禁用看门狗,然后才能启动调试会话。
我在 LPC4337 上遇到了这个问题。我尝试了人们谈论的所有解决方案,但唯一对我有用的是使用较低的处理器时钟,以便 JTAG/SWD 接口可以在处理器执行用户代码之前匹配/赶上处理器。在我的情况下,我将 Keil uVision 5 中的 JTAG/SWD 时钟设置为 10MHz,并将处理器时钟除数更改为 36MHz。使用这些设置,当我开始调试会话时,它不会错过在重置时捕获。
ULink2 会发生这种情况,但 ULINK Pro 和 ULINK Pro-D 支持 JTAG/SWD <= 50MHz。有关更多比较,请参见此链接: ulink 比较
此消息的另一个问题是:
我们有相同的错误消息,但问题是RESET行的错误状态。