DSP2812中程序单步运行怎么进入中断服务子程序?谢谢
mangui zhang:
单步是一步一步运行的 运行时间和效率都低了很多
是不是单步的时候没能及时捕捉到触发源
DSP2812中程序单步运行怎么进入中断服务子程序?谢谢
Seven Han:
Hi,我在线调试时,也遇到了单步无法进中断的情况,单步运行即使发生了中断,程序也没进中断,您可以通过全速运行调试,程序会在断点处停下来。
也看到了关于单步执行标志这样的解释:
当EFLAGS的T位为1时,cpu每执行完一条指令便会产生一个调试异常,中断到调试异常处理程序。很多调试器的单步执行功能都是依靠这一机制实现的。
由于调试异常的向量号为1,因此在设置TF标志后,cpu每执行一条指令后都会去执行1号异常处理例程。当硬件断点发生时,可以利用DR6来识别到底发生了何种事件。
单步异常也属于陷阱类异常。软件断点异常与硬件断点的数据及IO断点异常也属于陷阱异常。但是硬件断点的指令访问异常为错误异常。这一定要明白。
因为cpu在进入异常处理程序前都会清除TF标志,所以当cpu中断到调试器时在观察TF标志它的值总是0。
使用TF标志一步一步走过每一条汇编指令。产生多条调试异常,但是仅仅最后一次才中断给用户。