当前位置:嗨网首页>书籍在线阅读

08-调试引导加载程序、闪存代码

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

15.4.3 调试引导加载程序/闪存代码

开发人员在调试驻留于闪存中的代码时会遇到一些独特的挑战。最明显的一个限制是GDB和gdbserver合作设置目标断点的方式。当我们在第14章中讨论GDB远程串行协议时,你已经了解到了如何在一个应用程序中插入断点[5]。GDB是用一个架构相关的断点指令替换了断点位置上的原有指令。然而,在ROM或闪存中,GDB不能够修改原有指令,所以这种设置断点的方法就不起作用了。

[5] 请参考代码清单14-7。

大多数主流处理器都包含一定数量的调试寄存器,它们可用于绕开这个限制。这些功能是与具体的架构和处理器相关的,而且需要有硬件探测器的支持才能使用。在调试驻留于闪存或ROM中的代码时,最常用的技术就是使用JTAG硬件探测器。这些探测器能够利用处理器内部的调试寄存器来设置硬件断点。我们在第14章中详细介绍了这些内容,请参考14.4.2节以了解更多细节。