如何调试ROM上的代码?

时间:2014-03-02 12:04:09

标签: debugging embedded

我想知道设置断点的正常做法,介入& step-out也适用于驻留在ROM上的代码。我们是否需要为ROM调试做一些额外的事情。

1 个答案:

答案 0 :(得分:1)

这在很大程度上取决于处理器和您使用的调试硬件。许多微控制器包括片上调试硬件,其中包括硬件断点,这些断点基本上是程序计数器比较器。可以支持其他设施,例如数据访问断点和指令跟踪 - 基本上是片上在线仿真器(ICE)。

硬件断点是必然有限的资源;例如,ARM7设备只有两个,而ARM Cortex-M3 / 4则有八个。

无论哪种方式,要利用片上调试,您需要合适的调试器硬件(通常通过JTAG或供应商专有接口)将目标接口连接到主机调试器软件。

对于没有片上调试的芯片,通常使用在线仿真器。这是连接到目标板代替处理器的调试硬件,可以由主机调试软件直接控制。仿真器硬件执行与​​实际处理器相同的指令,但可以暂停和步进并设置断点。本质上,ICE的工作方式类似于具有调试支持的目标处理器的特殊版本。真正的ICE在现代处理器上并不常见,因为即使在PIC和AVR等小型设备上,片上调试功能几乎无处不在,但是一些外部调试硬件可以支持片上调试所不具备的功能。例如,Segger的J-Link在ARM7和Cortex-M3 / 4上支持unlimited break-points