Cortex-M3调试:断点与监视器模式响应
需积分: 0 17 浏览量
更新于2024-08-10
收藏 9.28MB PDF 举报
"Cortex-M3调试监视器模式下的调试事件响应及断点机制"
在Cortex-M3微控制器中,调试事件的响应是通过调试监视器模式进行的,这一模式对于开发者来说非常重要,因为它允许在运行时对处理器进行观察和控制。在调试过程中,断点是最常用的工具之一。
标题中提到的"调试监视器模式下对调试事件的响应"是指当处理器执行到特定的调试事件,如断点或监控器使能时,系统会如何响应。在Cortex-M3中,有两种主要的断点机制:
1. **断点指令**:这是最常见的断点实现方式,使用16位的Thumb指令`BKPT #im8`。当执行到这个指令时,它会引发一个调试事件。如果C_DBGEN位被置位,处理器内核会被暂停;若调试监视器已使能,会触发调试监视器异常。然而,由于NMI(非屏蔽中断)和Hard Fault的优先级更高,因此在它们的服务例程中不能使用`BKPT`指令启动调试,必须等到它们返回后才能响应调试监视器异常。
2. **基于FPB(Fault-Predicate Breakpoint)的断点**:当程序内存不可修改时,可以使用FPB来设置硬件断点。FPB允许对6个指令地址和2个文字地址进行比较,以触发断点。不过,FPB资源有限,只有6个硬件断点。
执行`BKPT`指令后,处理器会在调试监视器异常返回时跳转回断点指令的地址,而不是执行下一条指令的地址。这是因为`BKPT`通常替换一条正常的指令,调试操作完成后,指令内存恢复到原来的状态。
如果在执行`BKPT`指令时,C_DEBUGEN和MON_EN均为0,这意味着处理器无法进入调试模式,此时会生成一个硬fault,并在HFSR(Hard Fault Status Register)的DEBUGEVT位和DFSR(Debug Fault Status Register)的BKPT位上设置标志。
关于FPB的详细配置和使用,将在后续章节中进一步介绍。FPB提供了一种灵活的硬件断点机制,尽管其资源有限,但在某些场景下非常有用。
这段内容出自《Cortex-M3权威指南》,作者Joseph Yiu,译者宋岩。书中以深入浅出的方式介绍了Cortex-M3的调试技术,包括断点的使用和调试监视器的响应机制,旨在帮助读者更好地理解和使用这种微控制器。
2014-02-10 上传
2012-03-11 上传
2019-01-04 上传
2021-09-28 上传
2015-12-27 上传
2022-06-19 上传
三里屯一级杠精
- 粉丝: 35
- 资源: 2万+
最新资源
- 新代数控API接口实现CNC数据采集技术解析
- Java版Window任务管理器的设计与实现
- 响应式网页模板及前端源码合集:HTML、CSS、JS与H5
- 可爱贪吃蛇动画特效的Canvas实现教程
- 微信小程序婚礼邀请函教程
- SOCR UCLA WebGis修改:整合世界银行数据
- BUPT计网课程设计:实现具有中继转发功能的DNS服务器
- C# Winform记事本工具开发教程与功能介绍
- 移动端自适应H5网页模板与前端源码包
- Logadm日志管理工具:创建与删除日志条目的详细指南
- 双日记微信小程序开源项目-百度地图集成
- ThreeJS天空盒素材集锦 35+ 优质效果
- 百度地图Java源码深度解析:GoogleDapper中文翻译与应用
- Linux系统调查工具:BashScripts脚本集合
- Kubernetes v1.20 完整二进制安装指南与脚本
- 百度地图开发java源码-KSYMediaPlayerKit_Android库更新与使用说明