arm - "CPU is not halted"和 "No APB-AP found"错误

标签 arm embedded microcontroller cortex-m jtag

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

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

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

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

感谢您的帮助。

最佳答案

一种可能性:看门狗

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

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

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

关于arm - "CPU is not halted"和 "No APB-AP found"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3638312/

相关文章:

c - 保持微 Controller 外设驱动独立

c - 在 X86 上用 C 或 C++ 为通用 ARM 环境编程

iphone - LLVM IR(中间表示)可以用于创建跨平台(iphone 和 Android)ARM 可执行文件吗?

c - 读取输入引脚的状态并显示在 LED 上 - LPC1115

assembly - GBA ARM汇编程序帮助

c++ - STM32 SPI 硬件和严格的别名警告

c - 如何调试嵌入式应用程序中的内存问题

c - 如何有效地将 uint16_t[2N] 转换为 uint32_t[N]?

c - 使用 gnu gcc 编译器定义类型

c++ - 带参数的非空函数的空包装