研究处理器的调试技术已经有一段时间,找个平台记录一些点滴吧。
1. 1940年,在哈弗大学工作的程序员Admiral Grace Hopper对Mark II型计算机进行调试时,发现有一只飞蛾落在继电器上,影响了机器的正常运作,之后,她将排除机器故障的过程称为“debugging”。从这一说明中,我们可以发现,bug是引发系统出现非预期行为的一些缺陷,而寻找缺陷排除故障的行为即为Debug。在硬件设计和软件设计过程中,都会涉及到Debug问题,今后的讨论中,我们将主要讨论软件系统的Debug问题,或者说我们认为所运行软件的硬件系统是正确的,需要对上面运行的软件进行调试。
2. 从软件开发人员角度进行考虑,开发人员在处理器上进行软件开发时,期望获得处理器运行软件的细节信息。软件开发可以基于汇编语言开发也可以基于高级语言开发。当采用汇编语言进行开发时,开发人员期望观察每一条汇编语句执行后处理器的状态以及系统内存中的数据信息,当采用高级语言进行开发时,开发人员期望观察每一条高级语言执行后处理器的状态以及系统内存中的数据信息。另外,为了提高调试的效率,处理器还需要支持断点和观察点技术。
3. 嵌入式处理器调试有一套国际标准,即由Nexus5001论坛(更名前被称为GEPDIS,Global Embedded Processor Debug Interface(The NEXUS Debug Standard:
Gateway to the Embedded Systems of the Future)(http://wenku.baidu.com/link?url=JpD9vz6C52keiA4qgDev6CnVYwSgm7olThhGO1WcR187vGIUtDr_rXeg43Q_DvZHdNkMlAaR5d9L18fb36Ft