当我使用 JTAG 将我的 C 代码加载到评估板时,它加载成功。但是,当我从 main() 执行代码时,我立即收到“CPU 未停止”错误,然后是“未找到 APB-AP”错误。
在出现此错误之前,我能够加载并执行与 USB 相关的代码。
我用谷歌搜索它并使用 JTAG 命令“rx 0”来重置目标,但它没有做任何改变。
我正在使用 ARM Cortex-M3 处理器、J-Link ARM V4.14d、IAR Embedded Workbench IDE。
感谢您的帮助。
当我使用 JTAG 将我的 C 代码加载到评估板时,它加载成功。但是,当我从 main() 执行代码时,我立即收到“CPU 未停止”错误,然后是“未找到 APB-AP”错误。
在出现此错误之前,我能够加载并执行与 USB 相关的代码。
我用谷歌搜索它并使用 JTAG 命令“rx 0”来重置目标,但它没有做任何改变。
我正在使用 ARM Cortex-M3 处理器、J-Link ARM V4.14d、IAR Embedded Workbench IDE。
感谢您的帮助。
一种可能性:看门狗
如果您的硬件有看门狗,那么您必须确保当 JTAG 想要停止 CPU 时它不会复位 CPU。如果看门狗重置 CPU,您通常会收到您描述的“CPU 未停止”类型的错误。
如果 CPU 具有内部看门狗电路,则在某些 CPU 上,当 JTAG 停止 CPU 时,它会自动“暂停”。但在其他情况下,这不会发生,您需要确保在进行 JTAG 调试时禁用看门狗。
如果您的电路有一个 CPU 外部的看门狗电路,那么通常您需要能够以某种方式禁用它(通常硬件设计人员会在板上提供某种开关/跳线来执行此操作)。
您是否将 jtag 线重新用作 gpio 线并破坏了 jtags 与芯片通信的能力?我用这种方法砌了一块恒星板。
确保您在代码中有这一行:
WatchdogStallEnable(WATCHDOG0_BASE); // 当 CPU 停止时停止看门狗