请阅读【ARM Coresight SoC-400/SoC-600 专栏导读】
文章目录
1.1 Cortex-M Debug Mode
在 Cortex-M7 中的调试操作模式分为两种:
- 第一种称为“halt”(停机模式),在进入此模式时,处理器完全停止程序的执行。
- 第二种则称为“debug monitor exception”(调试监视器模式),此时处理器执行相应的调试监视器异常服务例程,由它来执行调试任务,并且依然允许更高优先级的异常抢占它。调试监视器的异常号为 12,优先级可编程。除了调试事件可以触发异常外,手工设置其悬起位也可以触发本异常。
1.1.1 停机模式
- 指令执行被停止
- SysTick 定时器停止
- 支持单步操作
- 中断可以在这期间悬起,并且可以在单步执行时响应。也可以掩蔽它们,使得单步时不受干扰
如果要进入停机模式,需要把 NVIC 调试停机控制及状态寄存器(DHCSR
)的 C_DEBUGEN
位置位。这个位只能由调试器来设置,没有调试器是不能把 Cortex-M 停机的。在 C_DEBUGEN
置位后,就可以设置 DHCSR.C_HALT