You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cortex-M4调试状态设置PC后,如何退出调试并从指定地址启动?

Cortex-M4调试状态下从指定PC启动的实现方法

关于VECTRESET的误区

不要使用VECTRESET位!触发向量复位后,CPU会强制从0x0地址加载主栈指针(MSP)、从0x4地址加载复位向量(PC值),直接覆盖你之前手动设置的PC,回到默认复位启动流程,完全无法实现从指定地址启动的需求。

正确操作步骤

在完成ARM论坛所述的准备工作(设置MSP到RAM栈顶、PC指向测试代码入口、xPSR设为0x01000000、测试代码已写入可执行内存)后,按以下步骤退出调试并启动:

  • 清除DHCSR寄存器的VECTRESET_CATCH位,防止后续操作意外触发复位捕获,导致CPU重新进入调试状态。
  • 清除DHCSR寄存器的DEBUGEN位,这会让CPU退出调试暂停模式,直接从你预先设置的PC地址开始执行代码。

关键注意点

  • 必须确保xPSR的EPSR.T位已置1(值为0x01000000),Cortex-M4是纯Thumb指令架构,该位未正确设置会导致CPU进入故障状态。
  • 测试代码所在的内存区域必须同时具备可写和可执行属性,避免触发MPU(内存保护单元)或总线错误。

内容的提问来源于stack exchange,提问作者cher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 15:50:17