Embedded &引用;“CPU未停止”;及;“未找到APB-AP”;错误

Embedded &引用;“CPU未停止”;及;“未找到APB-AP”;错误,embedded,arm,microcontroller,cortex-m3,jtag,Embedded,Arm,Microcontroller,Cortex M3,Jtag,当我使用JTAG将我的C代码加载到评估板时,它成功加载。然而,当我从main()执行代码时,我立即得到“CPU未停止”错误,然后是“未找到APB-AP”错误 在我出现这个错误之前,我能够加载并执行与USB相关的代码 我在谷歌上搜索它,并使用JTAG命令“rx0”重置目标,但它没有做任何更改 我使用的是ARM Cortex-M3处理器、J-Link ARM V4.14d、IAR嵌入式工作台IDE 谢谢你的帮助。一种可能性:看门狗 如果您的硬件有一个看门狗,那么您必须确保当JTAG想要停止它时,它不

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

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

我在谷歌上搜索它,并使用JTAG命令“rx0”重置目标,但它没有做任何更改

我使用的是ARM Cortex-M3处理器、J-Link ARM V4.14d、IAR嵌入式工作台IDE


谢谢你的帮助。

一种可能性:看门狗

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

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


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

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

确保代码中有这一行:


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

您确定
main()
是入口点吗?在开始设置C运行时库等操作之前,通常必须执行大量的启动代码来设置内存寻址、初始化硬件、设置堆栈指针等等,更不用说实际调用
main()
。IAR将执行启动代码并在main()处插入断点。但是当我从main()继续运行时,出现了错误。