断点调试功能的实现方法

文档序号:6532748阅读:424来源:国知局
专利名称:断点调试功能的实现方法
技术领域
本发明是关于在微处理器中实现断点调试功能的方法,提出了一种高效、低复杂度的,在微处理器中实现指令级调试功能的方法。基于这种方法实现的断点调试功能能提高软件开发的效率。
背景技术
众所周知,处理器按照一定的顺序执行指令码。在针对一个处理器进行软件开发时,常常用到断点调试技术,即开发人员在某个指令或某个语句处设置断点标志,当微处理器执行到该条指令时,因为遇到断点而暂停执行,进入待命状态,必须等到外部调试接口的继续运行命令或者收到复位信号,才会重新开始执行指令。
更进一步说,处理器必须遇到断点才会进入断点调试模式,通常产生这个必要条件的方式有两种,一种是在调试专用的寄存器中写入断点地址,通过地址比较来生成特定的断点信号,这个断点信号通知微处理器暂停指令的执行,进入断点调试模式。这种利用寄存器存贮断点地址的方法非常消耗资源,能够存贮的断点地址数目有限,而且消耗的硬件资源较多。另一种方式是,微处理器设计有专用的外部调试命令输入接口,微处理器通过判别调试命令/状态接口的信号状态来决定是否进入断点调试模式。当处于微处理器外部的调试模块通过调试接口发现程序计数器到达断点地址时,立即产生断点命令,并发送到微处理器的调试命令输入接口,通知微处理器进入断点调试模式。这种外部的调试命令接口对外部调试器的要求很高,外部调试器必须能够实时获取处理的执行状态和程序计数器的位置。
因此,我们提出一种在指令码中包含特定的标志位,微处理器通过判别标志位来决定是否进入断点模式,从而实现断点调试功能的方法,以提高调试的效率,减少微处理器硬件资源的消耗,并降低对外部调试器的要求。

发明内容
本发明公开了一种在指令码中包含标志位来实现断点调试功能的方法。微处理器按照一定顺序执行指令码。微处理器在取指阶段、译码阶段或执行阶段检测指令码中是否包含有效的断点功能标志位,以及是何种断点标志,来产生相应得判决信号。根据判决信号,来决定下一步操作。如果断点标志有效,则处理器进入相应的断点调试模式。并且,微处理器暂停程序计数器的更新,从而中止正常指令的执行,使处理器进入待命阶段。微处理器处于暂停状态时,可以通过调试接口读取微处理器内部功能寄存器和状态寄存器的具体数据,以及当前程序计数器的值。根据这些数据,可以辅助软件程序的修正和改进。
本发明公开的断点调试功能的实现方法,提供了一种能提高软件调试效率、降低外部调试器要求、减少处理器资源消耗的途径。


图一给出了本发明所公开的实现微处理器断点调试功能的两种指令码结构范例。
图二给出了本发明所公开的实现微处理器的断点调试功能的一种处理流程图范例。
具体实施例方式
本发明提供了一种可以使处理器尽可能简单的实现指令码级断点调试功能的方法,以便可以简化处理器外部的调试接口模块,并使指令调试效率进一步提高。
图一给出了本发明所公开的实现微处理器断点调试功能的两种指令码结构范例100。
指令码102给出一个1位断点标志的范例。指令码102由14位二进制数据组成,包括1位断点标志104和13位其他功能编码106。假设断点标志104为“1”表示断点有效,当微处理器检测到有效的断点标志时,立即暂停执行指令,进入断点调试模式,若断点标志无效,则正常执行指令功能。
指令码112给出一个多位断点标志的范例,在这里是3位组合断点标志。指令码112由14位二进制数据组成,包括3位断点标志114和11位其他功能编码116。假设断点标志114等于“101”时表示断点有效。当微处理器检测到有效的断点标志时,立即暂停执行指令,进入断点调试模式,若断点标志无效,则正常执行指令功能。
图二给出了本发明所公开的实现微处理器的断点调试功能的一种处理流程图范例200。指令210被取出之后,要经过译码阶段202,判决阶段204,然后进入执行阶段。首先,指令210进入译码阶段202,根据指令译码结果产生判决信号214,判决信号进入判决阶段204。然后,根据判决信号产生状态信号216并输出。如果判决结果为不包含断点调试标志位,则使能正常运行信号218,无效断点信号220,指令进入执行阶段206,在指令执行之后输出结果212。如果判决结果中包含断点调试标志位,则使能断点信号220,无效正常运行信号218,微处理器进入断点模式,微处理器在断点模式处于待命状态,等待重运行命令222。通常,这个重运行命令来自外部调试接口,首先,由软件调试平台给调试接口下达命令,调试接口再把命令送给微处理器。如果没有接收到重运行命令,则处理器停留在断点模式。此时,调试软件平台还可以通过调试接口读取微处理器的功能寄存器、状态寄存器的值,存储器中的数据以及程序计数器的值等等内部信息,以辅助软件功能的调试。直到微处理器收到期望的重运行命令之后,进入执行阶段206,执行被断点暂停掉的指令,并输出执行结果212。本发明所公开的微处理器断点调试功能的实现方法,消耗的内部寄存器少,易于实现,电路逻辑简单,响应快速,而且由于断点标志包含在指令码中,故可设置的断点数目最多可以达到与软件程序中的指令数目相同,从而很大程度的提高了电路的调试能力和调试效率,减少了软硬件的开销。
以上所述仅为本发明中涉及的指令码构造和相应处理流程的几个具体实施范例,并非用以限定本发明的申请专利范围;凡其它未脱离本发明所揭示的原理下所完成的等效改变或修饰,均应包含在所述的申请专利范围内。
权利要求
1.一种通过在指令码中嵌入标志位实现断点调试功能的方法,其特征在于,指令码中包含特定的标志位,该标志位决定微处理器是否进入断点调试模式;该标志位可以由指令码中的一个位组成,也可以是指令码中的几个位的组合而成。
2.如权利要求1所述方法,其特征在于,微处理器根据指令码中包含的断点调试标志位产生一个暂停信号,该暂停信号指示程序计数器(PC)停止更新,从而暂停正常指令的执行。
3.如权利要求1所述方法,其特征在于,微处理器的不同指令码均可以在其中包含用于实现断点调试功能的标志位。
全文摘要
通过在微处理器的指令码中嵌入标志位,实现指令级的断点调试功能。通过判别指令码中所包含的标志位,微处理器可以在取指阶段、译码阶段或执行阶段进入相应的断点调试模式,从而提高了程序调试的效率,降低了微处理器硬件实现调试功能的电路规模和复杂度。断点标志可以由指令码的一个位组成,或者由指令码的若干位组合而成。
文档编号G06F11/36GK1648873SQ200510037710
公开日2005年8月3日 申请日期2005年2月1日 优先权日2005年2月1日
发明者朱小茅, 吴俊辉 申请人:苏州超锐微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1