CN104471545A - 具有基于中断状态的可配置断点的装置 - Google Patents
具有基于中断状态的可配置断点的装置 Download PDFInfo
- Publication number
- CN104471545A CN104471545A CN201380035763.3A CN201380035763A CN104471545A CN 104471545 A CN104471545 A CN 104471545A CN 201380035763 A CN201380035763 A CN 201380035763A CN 104471545 A CN104471545 A CN 104471545A
- Authority
- CN
- China
- Prior art keywords
- breakpoint
- unit
- debugging
- service routine
- cpu
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种具有调试能力的处理器装置,其具有:中央处理单元;中断控制器;状态单元,其可操作而被设置成指示已发生中断的第一模式或指示代码的正常执行的第二模式;及调试单元,其与所述状态单元耦合且包括可配置断点,其中可设置仅在所述装置正在中断服务例程中操作的情况下激活断点的条件。
Description
相关申请案交叉参考
本申请案主张于2012年5月7日提出申请、标题为“具有基于中断状态的可配置断点的装置(DEVICE HAVING CONFIGURABLE BREAKPOINT BASED ONINTERRUPT STATUS)”的第61/643,707号美国临时申请案的权益,所述美国临时申请案的全文并入本文中。
技术领域
本发明涉及处理器装置,特定来说涉及微控制器装置。
背景技术
现代微处理器及微控制器包含高效地允许借助于所谓的电路内调试器或仿真器装置分析运行程序的电路。为此,微控制器或微处理器提供支持调试功能的内部电路及可(举例来说)通过编程装置的多个功能引脚而激活以作为调试接口操作的特定接口。此接口通常可配置为高速串行接口以允许实际装置与外部调试器或仿真器之间的快速通信。因此,装置自身可在不激活此接口且相关联引脚可用于其它目的的正常操作模式及使用此接口来与相应外部装置(例如可从外部主机计算机及由外部主机计算机操作的调试器或仿真器)交换数据的调试操作模式中操作。所述调试器或仿真器还可作为编程器操作,其中经由相同调试接口将程序传送到目标装置中。主机计算机、外部调试器或仿真器因此形成廉价的分析与调试系统。
现代处理器及微控制器在相应装置内部提供调试功能的经扩展集合。举例来说,可在装置内设置若干个断点以允许装置实际上实时运行,这在仅使用高速串行接口时对于外部调试器将是不可能的且因此将需要外合芯片及昂贵的调试电路。然而,当然,这些内部调试电路的功能性由于有线量的硅面积(real estate)及其它原因而有点受限制。然而,这些类型的断点仅允许有限量的配置。
发明内容
因此,需要微控制器或微处理器内的经改进断点配置以允许较灵活的调试。举例来说,基于中断状态而允许断点的配置将为有益的。根据各种实施例,断点的此可配置设置允许断点借助中断状态限定其匹配及装置的停止。
根据一实施例,一种具有调试能力的处理器装置可包括:中央处理单元;中断控制器;状态单元,其可操作而被设置成指示已发生中断的第一模式或指示代码的正常执行的第二模式;调试单元,其与所述状态单元耦合且包括可配置断点,其中可设置仅在所述装置正在中断服务例程中操作的情况下激活断点的条件。
根据又一实施例,所述状态单元可包括最终阶段中断检测单元及从中断返回检测单元。根据又一实施例,所述最终阶段中断检测单元可仅在所述装置将被强制进入所述中断服务例程时产生指示已发生中断的逻辑信号。根据又一实施例,所述状态单元可进一步包括:第一多路复用器,其具有在第一输入处接收逻辑1的第一输入且由所述最终阶段中断检测单元控制;第二多路复用器,其在第一输入处接收逻辑0且具有与所述第一多路复用器的输出耦合的第二输入,其中所述第二多路复用器由所述从中断返回检测单元控制;时钟控制寄存器,其从所述第二多路复用器接收输出信号且具有与所述第一多路复用器的第二输入耦合的输出,其中所述寄存器的所述输出指示所述中央处理单元的当前中断状态。根据又一实施例,所述寄存器可为D触发器。根据又一实施例,所述调试单元可进一步经配置以在所述装置未在执行中断服务例程时激活断点。根据又一实施例,所述调试单元可进一步经配置以始终激活断点。根据又一实施例,所述调试单元可包括模式选择电路,所述模式选择电路包括用以设置三个操作模式中的一者的逻辑门,其中第一模式仅在所述中央处理单元执行中断服务例程时允许断点的触发,第二模式仅在所述中央处理单元不执行中断服务例程时允许断点的触发,且第三模式始终允许断点的触发。根据又一实施例,所述装置可包括经配置以允许由以下条件中的至少一者定义的断点的断点配置单元:指令地址;指令地址范围;对预定义地址的数据读取存取及对预定义地址的数据写入存取。根据又一实施例,针对断点的数据写入存取的条件可进一步定义预定数据地址的数据值。根据又一实施例,可定义在于所述断点处停止程序的执行之前需要满足的断点发生的数目。根据又一实施例,所述装置可进一步包括可操作以组合多个事件以产生程序的停止执行的事件组合器。
根据另一实施例,一种用于在具有调试能力的处理器装置内调试经执行代码的方法可包括:由中央处理单元(CPU)执行代码;在由调试单元执行所述代码的同时确定所述CPU的中断服务状态;将所述调试单元内的断点配置为仅在所述CPU正执行中断服务例程时被激活;及在断点的发生后,仅在所述CPU正在中断服务例程内执行指令的情况下即刻激活所述调试单元内的所述断点。
根据所述方法的又一实施例,为确定所述CPU的所述中断服务状态,所述调试单元可经配置以:确定所述CPU的最终阶段中断状态,所述最终阶段中断状态导致中断服务例程的执行;及确定从中断返回指令的执行。根据所述方法的又一实施例,所述调试单元可进一步经配置以在所述装置未在执行中断服务例程时激活断点。根据所述方法的又一实施例,所述调试单元可进一步经配置以始终激活断点。根据所述方法的又一实施例,所述方法可进一步包括选择所述调试单元的操作模式的步骤,其中第一模式仅在所述中央处理单元执行中断服务例程时允许断点的触发,第二模式仅在所述中央处理单元不执行中断服务例程时允许断点的触发,且第三模式始终允许断点的触发。根据所述方法的又一实施例,所述方法可进一步包括配置断点配置以允许由以下条件中的至少一者定义的断点:指令地址;指令地址范围;对预定义地址的数据读取存取及对预定义地址的数据写入存取。根据所述方法的又一实施例,针对断点的数据写入存取的条件可进一步定义预定数据地址的数据值。根据所述方法的又一实施例,可定义在于所述断点处停止程序的执行之前需要满足的断点发生的数目。
附图说明
图1展示根据各种实施例的集成调试模块的框图;
图2更详细地展示图1的硬件断点框图;
图3更详细地展示图1的事件组合器框图;
图4展示增强的断点处置单元;
图5展示使用具有根据各种实施例的嵌入式调试单元的微控制器及外部电路内调试(ICD)控制器的系统的框图。
具体实施方式
通过在断点中提供中断相关设置,其允许进一步窄化且进一步限定匹配条件。此提供在常规装置中不可用的功能性。此允许断点仅在中断服务例程(ISR)内部匹配或仅在ISR外部匹配。
因此,各种实施例使芯片上调试能力的当前技术水平进步。根据各种实施例,装置具有根据中断例程或根据主线例程准确地确定所述装置是否正执行代码且使用此信息来相应地启用或停用某些断点特征的能力。断点的此可配置设置允许断点借助中断状态限定其匹配及装置的停止。
图1展示根据一实施例可集成于微控制器内的电路内调试模块的框图。然而,可在其它类型的芯片上调试电路中实施如上文所描述的一般概念。所述框图展示可实施于(举例来说)微控制器中且可由五个基本块组成的模块:
·断点比较逻辑135
·秒表循环计数器逻辑150
·控制与状态机逻辑145
·跟踪逻辑120
·事件组合器逻辑125
微控制器包括中央处理单元(CPU)110及与CPU 110耦合的相关联中断控制器112。CPU 110此外通过内部总线与硬件断点单元135、事件检测单元140、控制逻辑单元145及后台接口155耦合。下文将更详细地阐释这些块的特定功能。多路复用器160用于允许通过专用调试块与数据引脚165将调试单元与外部调试器耦合。控制逻辑145可与一或多个外部引脚耦合。图1还展示可与跟踪单元120一起使用的示范性TRGIN引脚185。此引脚可为不具有其它功能的专用引脚。然而,特定来说在低引脚装置中,此引脚可为允许在程序控制下指派给不同外围装置且因此可根据其经编程指派执行不同功能的多功能引脚。举例来说,可借助于配置寄存器将此引脚编程为在功能上除跟踪触发以外还充当串行接口时钟引脚、数字I/O引脚、模拟输入引脚等。如图1中所展示,控制逻辑还提供可类似于引脚185(多功能引脚)的触发输出引脚190。跟踪模块120与跟踪停滞输入引脚115及跟踪时钟与数据输出引脚175耦合。图1还展示可通过控制逻辑145配置的脉冲拒斥滤波器170及180。图1中未展示通过此类滤波器的信号路由。根据一些实施例,实施断点调试以使得在执行指令之前停止执行,即所谓的“零打滑刹车”操作。根据其它调试器实施例,可能并非此情形且可导致关于代码在何处停止或“打滑刹车”的问题,从而允许在停止处理器之前执行指令。外部事件(按照定义)与指令执行流不同步。如此,其操作无法与零打滑刹车概念进行比较。
当内部信号debug_en=1时,模块经启用且监视所有“HALT”事件,产生事件,执行数据捕获等。如果内部信号debug_en=0,那么所有调试逻辑经停用且模块经配置以消耗最小功率模式。
为使调试较不具有侵入性,具有实时从装置流式传输数据的构件可为有用的。跟踪模块120支持将正被读取或写入的数据带到特定地址并将其发射出跟踪端口的方法。此可描述为实时观察点。当使用观察点时不中断装置的正常操作。
图2展示根据各种实施例的硬件断点单元135的正常功能。下文更详细地阐释增强的功能性。硬件断点可经配置以在程序或数据存储器中的匹配地址上断开。为此,提供相应比较器220及230以及解码单元240,如图2中所展示。当断点经选择以对数据存储器进行操作时,可另外用数据值及掩码来限定断点,从而仅允许特定值产生断点事件。数据断点还可任选地经设置以仅在读取或写入循环上断开。在所有情况中,断点具有计数器210以使得在特定事件必须发生N次之后才产生断点事件。举例来说,根据一些实施例,此可设置为从1次到256次的任何值。
针对单个断点展示图2的框图。然而,所实施的断点的数目可根据各种实施例变化,可存在许多断点。图2展示允许编程各种参数以定义断点的触发要求的示范性实施例。根据其它实施例,可使用更少或更多的此类参数。举例来说,可通过计数器210中的BPxCNT参数设置产生断点所必需的断点发生的数目。每一断点模块可具有相同寄存器。
断点在事件通道定义当中列出且可用于启动或停止循环计数器150,设置或复位事件组合器级125,启动或停止跟踪单元120或拍摄堆栈快照。
根据一个实施例,为启用断点,必须设置控制寄存器ICDBPxCON的位BPEN。如果清除此位,那么此特定断点的所有电路经停用且将不产生断点事件。断点可经配置以仅在限定条件的每第N次发生时触发动作。举例来说,为将断点设置为在每第三次发生时触发,将计数器210设置为BPxCNT=2。可与计数器210组合地使用相应控制寄存器以重新加载其值及/或监视当前状态。
还可通过(举例来说)在相关联配置寄存器中设置相应位来基于执行上下文(主线代码、中断处置器或任一者)而限定断点。断点可接着仅在程序正从选定上下文执行时发生,如下文将更详细地阐释。
可通过在配置寄存器中设置相应位来使用再一断点参数,此允许监视程序计数器(PC执行地址)。程序存储器断开为零打滑刹车,且在执行操作之前发生。PC将指示触发指令的地址。
当清除相应控制位时,例如BPAREN=‘0’,在PC等于预定义地址时触发断开。当BPAREN=‘1’时,在PC属于预定义包含性地址范围内时触发断开。
根据一些实施例,仅经执行指令可产生断点。如果PC在未经执行的地址处,那么断点不触发。此包含:
·流改变指令(CALL、RETURN等),
·所跳过的指令(按照BTFSS、BTFSC),或
·在PCL、FSR或另两个循环指令之后的下一提取。
当在控制寄存器中将另一控制位字段设置为01、10或11时,断点监视数据存取,地址及值两者。相关联位的三个状态选择使用读取还是写入循环来确定断点。
在读取数据或写入数据之后(如适用),数据断点必然地导致指令执行的结束处的断开。在所有情况中,指令运行到完成。因此,“断开”实际上发生在下一指令执行时,且PC将指示在触发指令之后的指令。还可在已满足存储器地址及数据值限定符两者时触发断开。
循环计数器150为用于提供秒表功能以使得可剖析用户代码的计数器。由相应控制寄存器控制循环计数器。计数器150可由四个8位计数器/寄存器组成。可在CPU的每Q循环的结束处使计数器150递增;多循环指令(例如,GOTO)计数多次。
为了允许由特定事件控制多个功能,可将所有可能源组合到一个事件总线中。此允许循环计数器150、跟踪单元120及事件组合器单元125使用相同设置来选择其动作。
如图3中所展示的事件组合器300监视多个事件输入320且可基于那些输入的组合及序列而产生停止或触发输出190。在设置相应控制位时启用事件组合器300。经停用组合器300不产生输出事件。事件组合器300在事件通道定义当中列出且可用于启动或停止循环计数器150,设置或复位事件组合器级310,启动或停止跟踪单元120,或拍摄堆栈快照。当在相关联控制寄存器中设置事件组合器级310的相应控制位时独立地启用所述级。将在相关联状态位中反映级的当前输出。级310具有如图3中所展示的隐含次序,且可以若干种方式组合:
·可由事件个别地激活一级,
·在下一较低级作用时可由事件激活一级,
·可由事件个别地将一级去激活,
·可由事件或当下一较低级被去激活时将一级去激活。
通过设置相应控制位,仅经组合事件的第(N+1)次发生将用信号发送输出事件。N可设置为从0到255。如果满足经组合触发条件,那么使寄存器递减1。如果满足经组合触发条件,那么产生事件组合器事件且给计数器重新加载预设值。同样,在将新计数值写入到相应控制寄存器中的任何时间,重新加载计数器中的值。举例来说,为将断点设置为在第三次发生时触发,应将相应计数器值设置为2。
当事件(例如断点)随经启用触发而发生时,可产生TRGOUT引脚195上的脉冲。通过设置相应控制位来配置基本触发输出信号操作。举例来说,这些控制位可控制:断言触发输出达大致触发事件的持续时间。邻近或重叠事件可使信号保持处于经断言状态中。所述控制位还可控制输出是否伸展到最小时间周期。一旦触发TRGOUT单发,便将忽略在定时周期内发生的更多事件。在单发超时且TRGOUT返回到零之后,可再次由另一事件触发所述单发。所述单发为边缘触发的,且将在预定义时间周期之后清除,即使事件信号持续。
软件可通过设置相应控制位来引起触发输出。如果装置是唤醒的,那么在1个循环之后通过硬件清除所述位。TRGOUT还可通过写入相应控制位来清除,或将在装置唤醒时自动清除。
如下参考图4更详细地阐释增强的断点功能性。图4中所展示的电路包括两个块400a及400b。
第一电路部分400a关于中央处理单元(CPU)是正在中断服务内操作还是正执行其“正常”(非异常)例程而确定所述CPU的当前状态。为此,提供具有两个输入、一输出及一控制输入的第一多路复用器410。第一输入“0”接收反馈信号,且第二输入“1”与逻辑1硬连线。多路复用器410的控制输入接收由最终阶段中断检测单元430产生的逻辑信号。多路复用器410的输出与具有两个输入、一输出及一控制输入的第二多路复用器420的第一输入“0”耦合。多路复用器440的控制输入自从中断返回检测单元440接收又一逻辑信号。多路复用器420的第二输入“1”与逻辑“0”硬连线。多路复用器420的输出与D触发器450的数据输入耦合。触发器450由系统时钟CLK进行时钟驱动且在其输出Q处产生反馈到多路复用器410的第一输入的输出信号。此输出信号指示CPU是否正在中断服务例程(ISR)内执行代码。
图4中所展示的电路的第二部分400b提供功能选择。可选择三种操作模式。可由断点单元产生断点事件信号,如上文所描述。然而,根据一些实施例,可使用具有更多或更少功能性的其它断点单元。此断点事件信号被馈送到三个“与”门460、470及480的第一输入。每一“与”门460、470及480的第二输入接收确定操作模式的逻辑信号。举例来说,第一信号“ISR中断开模式”可用于仅在CPU正执行中断服务例程时检测断点。第二信号“非ISR中断开模式”提供其中断点仅在CPU未在ISR中执行代码时操作的操作模式。第三信号“始终断开模式”提供其中不管CPU执行中断服务例程的事实如何所有作用断点均操作的常规操作模式。“与”门460及470提供分别接收来自触发器450的非反相输出信号及来自触发器450的借助于反相器475反相的输出信号的第三输入。提供具有三个输入的“或”门490以接收来自三个“与”门460、470及480的输出信号。“或”门490的输出提供最终断点信号。
触发器450存储中断执行的当前状态。最终阶段中断检测单元430用于确定何时正发生中断。重要的是,最终阶段中断检测单元430仅在不允许任何操作阻止中断发生时才产生作用的相应输出信号。否则,此将致使检测为错误的,且错误的检测可导致不恰当的行为。一旦“最终阶段中断检测”输出信号为作用的,触发器450便将变为经设置,此指示装置当前正从中断服务例程(ISR)执行,且因此“ISR执行”信号将变为高且保持为高。
触发器450将在“从中断返回检测”时清除自身。此通常为仅用于从ISR返回的特殊指令解码。应注意,“最终阶段中断检测”与“从中断返回检测”为互斥的。
触发器450还将在系统复位时清除自身。这是重要的,因为在系统被复位之后,装置如果先前从ISR执行那么原本现在将被视为从非ISR执行。
可使用其它电路来确定CPU的当前状态。举例来说,CPU可具有实际上展示是否正执行中断的可用作ISR执行信号的内部旗标。此外,可提供允许检测嵌套式中断服务例程的电路,其允许经排定优先级的中断的执行且因此允许以排定为较高优先级的ISR中断当前低优先级ISR。本质是提供准确地指示CPU是否从ISR执行代码的信号。
图4的块400b展示此“ISR执行”信号可如何由相关联断点逻辑用以允许或不允许断点事件发生。此逻辑具有三个互斥设置:“ISR中断开模式”,其仅允许在ISR内部的断点;“非ISR中断开模式”,其仅允许在ISR外部的断点;及“始终断开模式”,其不管ISR执行如何均允许断点。组合这两条允许基于中断状态而配置断点。可由相应配置逻辑使用一或多个配置寄存器产生互斥信号。举例来说,可使用配置寄存器中的位字段来编码三个不同的操作模式。根据其它实施例,可使用其它信号解码。
准确地确定正发生中断可为困难的。有必要使用明确地指示将发生中断的信号。通常存在对中断过程的分阶段,且可延迟或阻止中断内的较早阶段以防止中断发生。因此可仅使用无法延期或阻止的最终信号。在装置复位后,系统未即刻中断且应被视为非ISR执行。在无对触发器450的恰当复位的情况下,可保持在复位之前的状态且将发生不恰当的断点匹配。
图5展示具有运行开发编程且(举例来说)经由USB接口与外部调试器/编程单元520连接的主机(例如个人计算机)的典型调试/编程系统。外部调试器编程单元520提供可供应在调试器/编程器520内产生的电力供应电压的专用接口。然而,其它实施例可经由专用电源来供应供应电压或目标系统可为自供电的。可通过同步串行接口向实际调试/编程接口提供由调试器/编程单元520所提供的单向时钟信号ICDCLK及双向数据线ICDData。因此,可使用最少三个连接线(ICDCLK、ICDData及参考电位(GND))来耦合调试器/编程单元520与目标系统510(其最低限度可为根据如上文所描述的各种实施例具有调试/编程接口的微控制器)。
此系统允许用户编程在主机上运行的调试程序以设置具有如上文所阐释的条件的各种断点。尽管调试软件保持追踪各种断点的关于其在源代码中的位置,但调试器/编程器520将断点信息传达到设置相应断点且配置其相关联寄存器的目标装置。举例来说,可设置正由存储于存储器中的数据值的匹配触发的特定断点,且激活仅在执行中断服务例程时触发的断点的增强的功能。用户接着通过在主机PC 530上运行的调试器软件开始目标装置510的软件的执行。目标软件的执行仅在两个条件为真时停止,即,目标510的CPU执行中断服务例程且指定存储器位置匹配预定义值。根据另一设置,子例程可由目标软件的主例程及中断服务例程两者使用。如果用户遇到经指定代码的麻烦,特定来说在从ISR调用子例程时,通常将在相应子例程中设置断点。然而,如果子例程仅稀有地被中断服务例程调用,那么目标软件的执行可导致由主例程调用相应子例程而引起的许多执行停止。此可使调试变得完全无用。根据一实施例,用户可在此情形中设置调试器操作模式以仅在执行中断例程时允许断点,如上文所阐释。现在,目标软件的执行仅在从中断服务例程调用子例程时在子例程内停止,借此滤除原本将停止执行且使目标调试变得或多或少无用的众多其它可能的断点事件。
Claims (20)
1.一种具有调试能力的处理器装置,其包括:
中央处理单元;
中断控制器;
状态单元,其可操作而被设置成指示已发生中断的第一模式或指示代码的正常执行的第二模式;
调试单元,其与所述状态单元耦合且包括可配置断点,其中可设置仅在所述装置正在中断服务例程中操作的情况下激活断点的条件。
2.根据权利要求1所述的装置,其中所述状态单元包括:
最终阶段中断检测单元,及
从中断返回检测单元。
3.根据权利要求2所述的装置,其中所述最终阶段中断检测单元仅在所述装置将被强制进入所述中断服务例程时产生指示已发生中断的逻辑信号。
4.根据权利要求2所述的装置,其中所述状态单元进一步包括:
第一多路复用器,其具有在第一输入处接收逻辑1的第一输入且由所述最终阶段中断检测单元控制;
第二多路复用器,其在第一输入处接收逻辑0且具有与所述第一多路复用器的输出耦合的第二输入,其中所述第二多路复用器由所述从中断返回检测单元控制;
时钟控制寄存器,其从所述第二多路复用器接收输出信号且具有与所述第一多路复用器的第二输入耦合的输出,其中所述寄存器的所述输出指示所述中央处理单元的当前中断状态。
5.根据权利要求4所述的装置,其中所述寄存器为D触发器。
6.根据权利要求1所述的装置,其中所述调试单元可进一步经配置以在所述装置未在执行中断服务例程时激活断点。
7.根据权利要求6所述的装置,其中所述调试单元可进一步经配置以始终激活断点。
8.根据权利要求7所述的装置,其中所述调试单元包括模式选择电路,所述模式选择电路包括用以设置三个操作模式中的一者的逻辑门,其中所述第一模式仅在所述中央处理单元执行中断服务例程时允许断点的触发,所述第二模式仅在所述中央处理单元不执行中断服务例程时允许断点的触发,且第三模式始终允许断点的触发。
9.根据权利要求1所述的装置,其包括断点配置单元,所述断点配置单元经配置以允许断点由以下条件中的至少一者定义:指令地址;指令地址范围;对预定义地址的数据读取存取及对预定义地址的数据写入存取。
10.根据权利要求9所述的装置,其中针对断点的数据写入存取的条件可进一步定义预定数据地址的数据值。
11.根据权利要求9所述的装置,其中可定义在于所述断点处停止程序的执行之前需要满足的断点发生的数目。
12.根据权利要求9所述的装置,其进一步包括可操作以组合多个事件以产生程序的停止执行的事件组合器。
13.一种用于在具有调试能力的处理器装置内调试所执行代码的方法,其包括:
由中央处理单元CPU执行代码;
在由调试单元执行所述代码的同时确定所述CPU的中断服务状态;
将所述调试单元内的断点配置为仅在所述CPU正执行中断服务例程时被激活;
在断点发生后,仅在所述CPU正在中断服务例程内执行指令的情况下即刻激活所述调试单元内的所述断点。
14.根据权利要求13所述的方法,其中为确定所述CPU的所述中断服务状态,所述调试单元经配置以:确定所述CPU的最终阶段中断状态,所述最终阶段中断状态导致中断服务例程的执行,及
确定从中断返回指令的执行。
15.根据权利要求13所述的方法,其中所述调试单元可进一步经配置以在所述装置未在执行中断服务例程时激活断点。
16.根据权利要求15所述的方法,其中所述调试单元可进一步经配置以始终激活断点。
17.根据权利要求16所述的方法,其进一步包括选择所述调试单元的操作模式的步骤,其中第一模式仅在所述中央处理单元执行中断服务例程时允许断点的触发,第二模式仅在所述中央处理单元不执行中断服务例程时允许断点的触发,且第三模式始终允许断点的触发。
18.根据权利要求13所述的方法,其进一步包括配置断点配置以允许断点由以下条件中的至少一者定义:指令地址;指令地址范围;对预定义地址的数据读取存取及对预定义地址的数据写入存取。
19.根据权利要求18所述的方法,其中针对断点的数据写入存取的条件可进一步定义预定数据地址的数据值。
20.根据权利要求18所述的方法,其中可定义在于所述断点处停止程序的执行之前需要满足的断点发生的数目。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261643707P | 2012-05-07 | 2012-05-07 | |
US61/643,707 | 2012-05-07 | ||
PCT/US2013/039938 WO2013169767A1 (en) | 2012-05-07 | 2013-05-07 | Device having configurable breakpoint based on interrupt status |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104471545A true CN104471545A (zh) | 2015-03-25 |
CN104471545B CN104471545B (zh) | 2017-10-27 |
Family
ID=48468809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380035763.3A Active CN104471545B (zh) | 2012-05-07 | 2013-05-07 | 具有基于中断状态的可配置断点的装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9336122B2 (zh) |
EP (1) | EP2847681B1 (zh) |
JP (1) | JP6116670B2 (zh) |
KR (1) | KR20150008447A (zh) |
CN (1) | CN104471545B (zh) |
WO (1) | WO2013169767A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112540288A (zh) * | 2020-11-30 | 2021-03-23 | 海光信息技术股份有限公司 | 用于硅后芯片验证的方法、系统、设备以及存储介质 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9785536B2 (en) | 2013-11-29 | 2017-10-10 | Nxp Usa, Inc. | Code injection for conditional breakpoints |
GB2530050B (en) * | 2014-09-10 | 2021-07-21 | Advanced Risc Mach Ltd | Debugging in a data processing apparatus |
GB2551747B (en) * | 2016-06-29 | 2019-04-10 | Advanced Risc Mach Ltd | Diagnostic data capture |
US10073759B2 (en) | 2016-09-29 | 2018-09-11 | International Business Machines Corporation | Identification and handling of nested breakpoints during debug session |
US10761967B2 (en) * | 2018-05-16 | 2020-09-01 | Texas Instruments Incorporated | Managing and maintaining multiple debug contexts in a debug execution mode for real-time processors |
US11099975B2 (en) | 2019-01-24 | 2021-08-24 | International Business Machines Corporation | Test space analysis across multiple combinatoric models |
US11010285B2 (en) | 2019-01-24 | 2021-05-18 | International Business Machines Corporation | Fault detection and localization to generate failing test cases using combinatorial test design techniques |
US11010282B2 (en) | 2019-01-24 | 2021-05-18 | International Business Machines Corporation | Fault detection and localization using combinatorial test design techniques while adhering to architectural restrictions |
US11263116B2 (en) | 2019-01-24 | 2022-03-01 | International Business Machines Corporation | Champion test case generation |
US11106567B2 (en) | 2019-01-24 | 2021-08-31 | International Business Machines Corporation | Combinatoric set completion through unique test case generation |
WO2020186518A1 (en) | 2019-03-21 | 2020-09-24 | Hangzhou Fabu Technology Co. Ltd | Method and apparatus for debugging, and system on chip |
US11232020B2 (en) | 2019-06-13 | 2022-01-25 | International Business Machines Corporation | Fault detection using breakpoint value-based fingerprints of failing regression test cases |
US11036624B2 (en) | 2019-06-13 | 2021-06-15 | International Business Machines Corporation | Self healing software utilizing regression test fingerprints |
US10963366B2 (en) | 2019-06-13 | 2021-03-30 | International Business Machines Corporation | Regression test fingerprints based on breakpoint values |
US11422924B2 (en) | 2019-06-13 | 2022-08-23 | International Business Machines Corporation | Customizable test set selection using code flow trees |
US10970197B2 (en) | 2019-06-13 | 2021-04-06 | International Business Machines Corporation | Breakpoint value-based version control |
US10970195B2 (en) | 2019-06-13 | 2021-04-06 | International Business Machines Corporation | Reduction of test infrastructure |
US10990510B2 (en) | 2019-06-13 | 2021-04-27 | International Business Machines Corporation | Associating attribute seeds of regression test cases with breakpoint value-based fingerprints |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050257089A1 (en) * | 2004-04-30 | 2005-11-17 | Arm Limited | Breakpoint logic unit, debug logic and breakpoint method for a data processing apparatus |
US20070234017A1 (en) * | 2006-03-29 | 2007-10-04 | Freescale Semiconductor, Inc. | Selective instruction breakpoint generation |
US20070266376A1 (en) * | 2006-05-11 | 2007-11-15 | Samsung Electronics Co., Ltd. | Kernel-aware debugging system, medium, and method |
CN101777021A (zh) * | 2010-01-21 | 2010-07-14 | 北京龙芯中科技术服务中心有限公司 | 微处理器中精确数据断点的实现装置及其方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6418348U (zh) * | 1987-07-23 | 1989-01-30 | ||
JPH0675819A (ja) * | 1992-08-27 | 1994-03-18 | Mitsubishi Electric Corp | マイクロプロセッサ |
US5951696A (en) * | 1996-11-14 | 1999-09-14 | Hewlett-Packard Company | Debug system with hardware breakpoint trap |
JP2003271416A (ja) * | 2002-03-12 | 2003-09-26 | Seiko Epson Corp | 情報処理装置及び電子機器 |
KR101717494B1 (ko) * | 2010-10-08 | 2017-03-28 | 삼성전자주식회사 | 인터럽트 처리 장치 및 방법 |
-
2013
- 2013-05-07 US US13/888,370 patent/US9336122B2/en active Active
- 2013-05-07 CN CN201380035763.3A patent/CN104471545B/zh active Active
- 2013-05-07 KR KR20147034076A patent/KR20150008447A/ko not_active Application Discontinuation
- 2013-05-07 WO PCT/US2013/039938 patent/WO2013169767A1/en active Application Filing
- 2013-05-07 JP JP2015511621A patent/JP6116670B2/ja active Active
- 2013-05-07 EP EP13724093.3A patent/EP2847681B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050257089A1 (en) * | 2004-04-30 | 2005-11-17 | Arm Limited | Breakpoint logic unit, debug logic and breakpoint method for a data processing apparatus |
US20070234017A1 (en) * | 2006-03-29 | 2007-10-04 | Freescale Semiconductor, Inc. | Selective instruction breakpoint generation |
US20070266376A1 (en) * | 2006-05-11 | 2007-11-15 | Samsung Electronics Co., Ltd. | Kernel-aware debugging system, medium, and method |
CN101777021A (zh) * | 2010-01-21 | 2010-07-14 | 北京龙芯中科技术服务中心有限公司 | 微处理器中精确数据断点的实现装置及其方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112540288A (zh) * | 2020-11-30 | 2021-03-23 | 海光信息技术股份有限公司 | 用于硅后芯片验证的方法、系统、设备以及存储介质 |
CN112540288B (zh) * | 2020-11-30 | 2023-02-21 | 海光信息技术股份有限公司 | 用于硅后芯片验证的方法、系统、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20130297975A1 (en) | 2013-11-07 |
JP6116670B2 (ja) | 2017-04-19 |
KR20150008447A (ko) | 2015-01-22 |
JP2015516099A (ja) | 2015-06-04 |
WO2013169767A1 (en) | 2013-11-14 |
EP2847681B1 (en) | 2019-08-07 |
US9336122B2 (en) | 2016-05-10 |
EP2847681A1 (en) | 2015-03-18 |
CN104471545B (zh) | 2017-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104471545A (zh) | 具有基于中断状态的可配置断点的装置 | |
US7266725B2 (en) | Method for debugging reconfigurable architectures | |
CN103299282B (zh) | 调试状态机和包括所述调试状态机的处理机 | |
US8937496B1 (en) | Clock monitor | |
US7055117B2 (en) | System and method for debugging system-on-chips using single or n-cycle stepping | |
CN104380266A (zh) | 具有复位条件跟踪能力的处理器装置 | |
CN104272271B (zh) | 具有指令跟踪能力的处理器装置 | |
KR20110124617A (ko) | 시스템-온-칩 및 그것의 디버깅 방법 | |
US20110307741A1 (en) | Non-intrusive debugging framework for parallel software based on super multi-core framework | |
CN101154184A (zh) | 一种微控制器jtag调试方法 | |
US9529686B1 (en) | Error protection for bus interconnect circuits | |
US10078113B1 (en) | Methods and circuits for debugging data bus communications | |
CN108549591A (zh) | 一种嵌入式系统的黑匣子装置及其实现方法 | |
CN102314403B (zh) | 用于mcu作为从器件识别i2c总线信号的装置及方法 | |
CN104035536A (zh) | 一种嵌入式系统监控及复位控制方法 | |
US6760864B2 (en) | Data processing system with on-chip FIFO for storing debug information and method therefor | |
CN100511179C (zh) | 带特殊功能寄存器断点的增强型微处理器片上动态跟踪方法 | |
CN103197914A (zh) | 多处理器延迟执行 | |
US20020120801A1 (en) | Technique for capturing information | |
US9495239B1 (en) | User-configurable error handling | |
CN101329650A (zh) | 智能卡仿真器 | |
CN107607853B (zh) | 芯片的调试方法、装置、存储介质和处理器 | |
CN106991022B (zh) | 一种基于扫描链的芯片分析方法 | |
Hummel | Exploring effects of electromagnetic fault injection on a 32-bit high speed embedded device microprocessor | |
CN100533401C (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |