Sch*_*lle 4 c embedded debugging bare-metal jtag
这只是个人兴趣的问题.我知道我的JTAG能够读取uController的寄存器值.但我不知道JTAG设备如何知道何时停止uController.我认为可能会添加一些代码来调用中断,但是你可以在操作期间添加断点,因此这种接缝是错误的.那怎么办?
正如@Martin James在评论中所提到的,这种方法的典型工作方式是目标硬件本身支持断点.
然后,调试器使用JTAG接口设置片上寄存器来配置断点,然后由芯片本身完成实际的"中断".
这通常意味着您可以拥有的并发断点数限制为一些较小的数量,因为存在的此类硬件数量有限.
该链接描述了ARM Cortex-M0的调试硬件,并说它具有(客户可选择的)1到最多4个硬件断点和最多两(2)个观察点.因此,非常严格限制(但作为一个实际的嵌入式开发人员,我看到这一点,并认为"mmmm硬件断点,如此丰富").