2

当我使用 JTAG 将我的 C 代码加载到评估板时,它加载成功。但是,当我从 main() 执行代码时,我立即收到“CPU 未停止”错误,然后是“未找到 APB-AP”错误。

在出现此错误之前,我能够加载并执行与 USB 相关的代码。

我用谷歌搜索它并使用 JTAG 命令“rx 0”来重置目标,但它没有做任何改变。

我正在使用 ARM Cortex-M3 处理器、J-Link ARM V4.14d、IAR Embedded Workbench IDE。

感谢您的帮助。

4

3 回答 3

3

一种可能性:看门狗

如果您的硬件有看门狗,那么您必须确保当 JTAG 想要停止 CPU 时它不会复位 CPU。如果看门狗重置 CPU,您通常会收到您描述的“CPU 未停止”类型的错误。

如果 CPU 具有内部看门狗电路,则在某些 CPU 上,当 JTAG 停止 CPU 时,它会自动“暂停”。但在其他情况下,这不会发生,您需要确保在进行 JTAG 调试时禁用看门狗。

如果您的电路有一个 CPU 外部的看门狗电路,那么通常您需要能够以某种方式禁用它(通常硬件设计人员会在板上提供某种开关/跳线来执行此操作)。

于 2010-09-06T05:31:44.747 回答
0

您是否将 jtag 线重新用作 gpio 线并破坏了 jtags 与芯片通信的能力?我用这种方法砌了一块恒星板。

于 2010-09-30T21:46:37.437 回答
0

确保您在代码中有这一行:

WatchdogStallEnable(WATCHDOG0_BASE); // 当 CPU 停止时停止看门狗

于 2016-12-08T17:56:11.693 回答