CN1834940A - 一种通过在指令中嵌入计数器实现断点调试功能的方法 - Google Patents
一种通过在指令中嵌入计数器实现断点调试功能的方法 Download PDFInfo
- Publication number
- CN1834940A CN1834940A CN 200510022527 CN200510022527A CN1834940A CN 1834940 A CN1834940 A CN 1834940A CN 200510022527 CN200510022527 CN 200510022527 CN 200510022527 A CN200510022527 A CN 200510022527A CN 1834940 A CN1834940 A CN 1834940A
- Authority
- CN
- China
- Prior art keywords
- counter
- breakpoint
- microprocessor
- debugging
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
通过在微处理器的指令码中嵌入计数器,实现指令级的断点调试功能。通过判别指令码中所包含的计数器,微处理器可以在取指阶段、译码阶段或执行阶段进入相应的断点调试模式,从而提高了程序调试的效率,降低了微处理器硬件实现调试功能的电路规模和复杂度。断点计数器可以由指令码的一个位组成,或者由指令码的若干位组合而成。通过判别计数器的值来决定CPU是否在当前指令处暂停,每次执行该指令之后,断点计数器的值相应变化。
Description
技术领域
本发明是关于在微处理器中实现指令级断点调试功能的方法,提出了一种高效、低复杂度的,在微处理器中实现指令级调试功能的方法。基于这种方法实现的断点调试功能可以提高软件开发的效率。
背景技术
众所周知,处理器按照一定的顺序执行指令码。在针对一个处理器进行软件开发时,常常用到断点调试技术,即开发人员在某个指令或某个语句处设置断点,当微处理器执行到该条指令时,因为遇到断点而暂停执行,进入待命状态,必须等到外部调试接口的继续运行命令或者收到复位信号,才会重新开始执行指令。
更进一步说,处理器必须遇到断点才会进入断点调试模式,通常产生这个必要条件的方式有两种,一种是在调试专用的寄存器中写入断点地址,通过地址比较来生成特定的断点信号,这个断点信号通知微处理器暂停指令的执行,进入断点调试模式。这种利用寄存器存贮断点地址的方法非常消耗资源,能够存贮的断点地址数目有限,而且消耗的硬件资源较多。另一种方式是,微处理器设计有专用的外部调试命令输入接口,微处理器通过判别调试命令/状态接口的信号状态来决定是否进入断点调试模式。当处于微处理器外部的调试模块通过调试接口发现程序计数器到达断点地址时,立即产生断点命令,并发送到微处理器的调试命令输入接口,通知微处理器进入断点调试模式。这种外部的调试命令接口对外部调试器的要求很高,外部调试器必须能够实时获取处理的执行状态和程序计数器(PC)的位置。
因此,我们提出一种在指令码中包含特定的计数器,微处理器通过判别计数器的值来决定是否进入断点模式,从而实现断点调试功能的方法,以提高调试的效率,减少微处理器硬件资源的消耗,并降低对外部调试器的要求。
发明内容
本发明公开了一种在指令码中包含计数器来实现断点调试功能的方法。微处理器按照一定顺序执行指令码。微处理器在取指阶段、译码阶段或执行阶段检测指令码中的断点计数器值是否有效,来产生相应得判决信号。根据判决信号,来决定下一步操作。如果断点计数器值有效,则处理器进入相应的断点调试模式。并且,微处理器暂停程序计数器的更新,从而中止正常指令的执行,使处理器进入待命阶段。微处理器处于暂停状态时,可以通过调试接口读取微处理器内部功能寄存器和状态寄存器的具体数据,以及当前程序计数器的值。根据这些数据,可以辅助软件程序的修正和改进。同时,自动更新断点计数器的值(递增、递减或保持,视不同情况而定)。
本发明公开的断点调试功能的实现方法,提供了一种能提高软件调试效率、降低外部调试器要求、减少处理器资源消耗的途径。
附图说明
图1给出了本发明所公开的实现微处理器断点调试功能的一种指令码结构范例。
图2给出了本发明所公开的实现微处理器的断点调试功能的一种处理流程图范例。
具体实施方式
本发明提供了一种可以使处理器尽可能简单的实现指令码级高级断点调试功能的方法,以便可以简化处理器外部的调试接口模块,并使指令调试效率进一步提高。
图1给出了本发明所公开的实现微处理器断点调试功能的一种指令码结构范例100。
指令码112给出一个含断点计数器的指令范例,在这里是3位断点计数器。指令码112由14位二进制数据组成,包括3位断点计数器114和11位其他功能编码116。
假设断点计数器114等于“000”时表示断点无效,计数器114等于其他值则表示有效断点,且当执行到该断点时,计数器114自动递减。当微处理器检测到有效的断点时,立即暂停执行指令,进入断点调试模式,若断点计数器无效,则正常执行指令功能。
图2给出了本发明所公开的实现微处理器的断点调试功能的一种处理流程图范例200。指令210被取出之后,要经过译码阶段202,判决阶段204,然后进入执行阶段。首先,指令210进入译码阶段202,根据指令译码结果产生判决信号214,判决信号进入判决阶段204。然后,根据判决信号产生状态信号216并输出。如果判决结果中为不包含有效的断点计数器值,则使能正常运行信号218,无效断点信号220,指令进入执行阶段206,在指令执行之后输出结果212。如果判决结果中包含有效的断点计数器值,则使能断点信号220,无效正常运行信号218,微处理器进入断点模式,微处理器在断点模式处于待命状态,等待重运行命令222。通常,这个重运行命令来自外部调试接口,首先,由软件调试平台给调试接口下达命令,调试接口再把命令送给微处理器。如果没有接收到重运行命令,则处理器停留在断点模式。此时,调试软件平台还可以通过调试接口读取微处理器的功能寄存器、状态寄存器的值,存储器中的数据以及程序计数器的值等等内部信息,以辅助软件功能的调试。直到微处理器收到期望的重运行命令之后,进入执行阶段206,执行被断点暂停掉的指令,并输出执行结果212。本发明所公开的微处理器断点调试功能的实现方法,消耗的内部寄存器少,易于实现,电路逻辑简单,响应快速,而且由于断点计数器包含在指令码中,故可设置的断点数目最多可以达到与软件程序中的指令数目相同,从而很大程度的提高了电路的调试能力和调试效率,减少小了软硬件的开销。利用断点计数器可以实现比普通断点标志更为复杂的指令调试功能。
以上所述仅为本发明中涉及的指令码构造和相应处理流程的几个具体实施范例,并非用以限定本发明的申请专利范围;凡其它未脱离本发明所揭示的原理下所完成的等效改变或修饰,均应包含在所述的申请专利范围内。
Claims (3)
1.一种通过在指令码中嵌入计数器实现断点调试功能的方法,其特征在于,指令码中包含特定的计数器,该计数器决定微处理器是否进入断点调试模式;该计数器可以由指令码中的一个位组成,也可以是指令码中的几个位的组合而成。
2.如权利要求1所述方法,其特征在于,微处理器根据指令码中包含的断点调试计数器的值产生一个暂停信号,该暂停信号指示程序计数器(PC)停止更新,从而暂停正常指令的执行。
3.如权利要求1所述方法,其特征在于,微处理器的不同指令码均可以在其中包含用于实现断点调试功能的计数器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200510022527 CN1834940A (zh) | 2005-12-22 | 2005-12-22 | 一种通过在指令中嵌入计数器实现断点调试功能的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200510022527 CN1834940A (zh) | 2005-12-22 | 2005-12-22 | 一种通过在指令中嵌入计数器实现断点调试功能的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1834940A true CN1834940A (zh) | 2006-09-20 |
Family
ID=37002692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200510022527 Pending CN1834940A (zh) | 2005-12-22 | 2005-12-22 | 一种通过在指令中嵌入计数器实现断点调试功能的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1834940A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009109134A1 (zh) * | 2008-03-03 | 2009-09-11 | 华为技术有限公司 | 安装或升级方法和装置 |
CN101183330B (zh) * | 2007-12-13 | 2010-05-19 | 东信和平智能卡股份有限公司 | 嵌入式系统的在线调试系统及其调试方法 |
CN101814054A (zh) * | 2010-03-23 | 2010-08-25 | 苏州国芯科技有限公司 | 一种用于调试微控制器的指令追踪控制器 |
WO2011120216A1 (zh) * | 2010-03-29 | 2011-10-06 | 华为技术有限公司 | 对指令执行次数进行计数的方法、系统及处理器 |
CN102981957A (zh) * | 2012-11-30 | 2013-03-20 | 福建天晴数码有限公司 | 虚断点脚本调试方法 |
CN101739234B (zh) * | 2008-11-25 | 2013-09-11 | 瑞昱半导体股份有限公司 | 指令模式识别装置 |
-
2005
- 2005-12-22 CN CN 200510022527 patent/CN1834940A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183330B (zh) * | 2007-12-13 | 2010-05-19 | 东信和平智能卡股份有限公司 | 嵌入式系统的在线调试系统及其调试方法 |
WO2009109134A1 (zh) * | 2008-03-03 | 2009-09-11 | 华为技术有限公司 | 安装或升级方法和装置 |
CN101739234B (zh) * | 2008-11-25 | 2013-09-11 | 瑞昱半导体股份有限公司 | 指令模式识别装置 |
CN101814054A (zh) * | 2010-03-23 | 2010-08-25 | 苏州国芯科技有限公司 | 一种用于调试微控制器的指令追踪控制器 |
CN101814054B (zh) * | 2010-03-23 | 2012-05-02 | 苏州国芯科技有限公司 | 一种用于调试微控制器的指令追踪控制器 |
WO2011120216A1 (zh) * | 2010-03-29 | 2011-10-06 | 华为技术有限公司 | 对指令执行次数进行计数的方法、系统及处理器 |
CN102947803A (zh) * | 2010-03-29 | 2013-02-27 | 华为技术有限公司 | 对指令执行次数进行计数的方法、系统及处理器 |
CN102947803B (zh) * | 2010-03-29 | 2016-06-08 | 华为技术有限公司 | 对指令执行次数进行计数的方法、系统及处理器 |
CN102981957A (zh) * | 2012-11-30 | 2013-03-20 | 福建天晴数码有限公司 | 虚断点脚本调试方法 |
CN102981957B (zh) * | 2012-11-30 | 2015-03-18 | 福建天晴数码有限公司 | 虚断点脚本调试方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Stepner et al. | Embedded application design using a real-time OS | |
CN100338581C (zh) | 用于确定cpu利用率的独立于操作系统的方法和系统 | |
CN101667154A (zh) | 用于改善片上仿真系统中高级语言的仿真速度的装置和方法 | |
CN1834940A (zh) | 一种通过在指令中嵌入计数器实现断点调试功能的方法 | |
JPH0734178B2 (ja) | 変換コードを実行するための効果的エラー報告 | |
US7363544B2 (en) | Program debug method and apparatus | |
CN1648873A (zh) | 断点调试功能的实现方法 | |
CN111367742A (zh) | 调试mvp处理器的方法、装置、终端和计算机可读存储介质 | |
CN108037951B (zh) | 一种dtp处理器的中断快速切换方法及装置 | |
CN102331961B (zh) | 并行模拟多个处理器的方法及系统、调度器 | |
EP1125199B1 (en) | Method of debugging a program thread | |
CN109800166B (zh) | 一种嵌入式实时操作系统的调试方法及装置 | |
CN100474266C (zh) | 一种用于数字信号处理器的调试系统及其调试方法 | |
EP4318211A1 (en) | Method for inspecting code under weak memory order architecture, and corresponding device | |
CN111506395B (zh) | 一种混合仿真的全数字虚拟运行环境的实现方法及装置 | |
CN114218067A (zh) | 一种异构众核软件调试装置及调试方法 | |
US7882336B2 (en) | Employing a buffer to facilitate instruction execution | |
CN100390752C (zh) | 一种单步执行在片调试功能的方法及装置 | |
CN1357833A (zh) | 应用pci界面的单步除错卡的装置及其方法 | |
Wilson | Hardware/software selected cycle solution | |
CN112559336A (zh) | 自适应调试异构计算芯片的方法、装置、系统及主板芯片 | |
JPH07311686A (ja) | コンピュータシステム、およびその中でシステム管理割込を発生し処理するための方法 | |
Kirk | C programming for embedded systems | |
WO2022257871A1 (zh) | 一种错误检测方法及相关装置 | |
CN117408061B (zh) | 整车模型仿真性能优化系统及计算机装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |