在进行jtag单步调试时,cm3内部发生了什么?

[复制链接]
674|1
 楼主| robinszh 发表于 2018-12-4 19:39 | 显示全部楼层 |阅读模式
请教大神一个问题:JTAG在进行单步调试时,为什么CM3可以执行一条指令后就立刻停止?实现原理是什么?按理说PC应该一直累加或者根据跳转指令改写PC啊,是进入中断进行等待了么?系统异常里面有一个调试监控的向量,是专门为JTAG单步用的么?
 楼主| robinszh 发表于 2018-12-12 11:02 | 显示全部楼层
大致搞清楚了,cortex-m3分为两种调试方式,一个为暂停,一个为调试监控异常;暂停的方式是在SCS空间拉高一个寄存器位,会导致执行阶段stall,从而导致整个CPU暂停,猜测JTAG就是通过改写该寄存器位的值,来控制执行和暂停;第二个是调试监控异常,这种方式就是进入异常处理了;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部