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

2019-07-16 07:51发布

请教大神一个问题:JTAG在进行单步调试时,为什么CM3可以执行一条指令后就立刻停止?实现原理是什么?按理说PC应该一直累加或者根据跳转指令改写PC啊,是进入中断进行等待了么?系统异常里面有一个调试监控的向量,是专门为JTAG单步用的么?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
zhouxk
1楼-- · 2019-07-16 10:14
单步不就是这样的吗
qianbin1992
2楼-- · 2019-07-16 14:21
大致搞清楚了,cortex-m3分为两种调试方式,一个为暂停,一个为调试监控异常;暂停的方式是在SCS空间拉高一个寄存器位,会导致执行阶段stall,从而导致整个CPU暂停,猜测JTAG就是通过改写该寄存器位的值,来控制执行和暂停;第二个是调试监控异常,这种方式就是进入异常处理了;

一周热门 更多>