用于共享调试资源的方法和装置的制作方法

文档序号:6592838阅读:348来源:国知局
专利名称:用于共享调试资源的方法和装置的制作方法
技术领域
本公开内容一般地涉及数据处理系统,以及更具体地,涉及用于共享调试资源的 系统和方法。
背景技术
在处理器内广泛地使用软件调试器来执行各种调试操作。软件调试器通常使用各 种不同的资源来执行这些调试操作,诸如指令断点、数据断点、各种执行事件断点,以及配 置资源和报告有关各种事件的状态的控制和状态字段。可能在软件调试器内出现错误,会 导致例如不准确的调试操作。然而,困难实际上存在于调试软件调试器本身中。


通过例子,示例说明本发明,并且不受附图的限制,其中,相同的参考数字表示类 似的元件。为简单和清楚起见,示例说明图中的元件,并不一定按比例绘制。图1是根据本发明的一个实施例的数据处理系统的框图。图2是根据本发明的一个实施例的与图1的数据处理系统相关联的处理器的框 图。图3是示例说明与图1的数据处理系统相关联的示例性调试寄存器的图。图4是根据本发明的一个实施例的与图3的调试寄存器相关联的调试控制寄存器 的图。图5和6以表格形式表示根据本发明的一个实施例的图4的调试控制寄存器的一 部分的功能性。图7是根据本发明的一个实施例的与图3的调试寄存器相关联的调试状态寄存器 的图。图8以表格形式表示根据本发明的一个实施例的图7的调试状态寄存器的一部分 的功能性。图9是根据本发明的一个实施例的与图1的数据处理系统相关联的调试资源控制 寄存器的图。图10-13以表格形式表示图9的调试资源控制寄存器的一部分的功能性。图14-15以表格形式表示基于图4的调试控制寄存器和图9的调试资源控制寄存 器的示例性设置的软件可访问资源。图16-17以局部示意和局部框图形式表示根据本发明的一个实施例的与图2的处 理器相关联的屏蔽(masking)电路的部分。图18是示例说明根据本发明的一个实施例的外部调试命令寄存器的图。图19以表格形式表示图18的外部调试命令寄存器的一部分的功能性。图20以表格形式示例说明基于外部调试命令寄存器的示例性设置的被选寄存
ο
具体实施例方式在一个实施例中,硬件调试器和软件调试器使用状态寄存器和控制的共用集来执 行调试操作。然而,不是所有调试资源必须专门位于硬件控制下或专门位于软件控制下,一 个实施例提供共享机制,允许个别或分组的资源分配被指定用于硬件或软件使用。例如,当 在软件调试器和硬件调试器之间共享一个或多个资源时,调试资源控制寄存器允许由软件 或硬件有选择地管理调试控制寄存器字段。在一个实施例中,硬件调试器当在外部调试模 式中时允许软件(经调试资源控制寄存器)管理一个或多个资源。在这种情况下,由软件 利用的事件可能导致由软件处理的中断,而分配给硬件的事件导致进入硬件调试模式(经 调试端口告知外部调试器该进入),其中,暂停处理器的操作。此外,一个实施例为软件提供 一致性机制,当仅调试资源的子集实际上被硬件调试器分配以可用于软件使用时,能更新 寄存器和读取正确的(即一致的)状态。如在此所使用的,使用术语“总线”来指多个信号或导体,可以用来传送一个或多 个不同类型的信息,诸如数据、地址、控制或状态。在此所述的导体可以参考单个导体、多个 导体、单向导体或双向导体来示例说明或描述。然而,不同实施例可以改变导体的实现。例 如,可以使用单独的单向导体而不是双向导体或反之亦然。同时,可以用多个导体代替连续 地或以时分复用方式传送多个信号的单个导体。同样地,携带多个信号的单个导体可以分 成携带这些信号的子集的各种不同的导体。因此,存在用于传送信号的许多选择。当涉及将信号、状态位或类似的装置分别表现成逻辑真或逻辑假状态时,在此使 用术语“断言”或“设定”和“否定”(或“解除断言”或“清零”)。如果逻辑真状态是逻辑电 平1,那么逻辑假状态是逻辑电平0。如果逻辑真状态是逻辑电平0,那么逻辑假状态是逻辑 电平1。可以将在此所述的每一信号设计成正或负逻辑,其中,负逻辑能由信号名上的横 条或信号名后的星号(*)表示。在负逻辑信号的情况下,信号为低有效,其中,逻辑真状态 对应于逻辑电平0。在正逻辑信号的情况下,信号为高有效,其中,逻辑真状态对应于逻辑电 平1。注意,在此所述的信号的任何一个能设计成负或正逻辑信号。因此,在另外的实施例 中,描述为正逻辑信号的那些信号可以实现为负逻辑信号,以及描述为负逻辑信号的那些 信号可以实现为正逻辑信号。在此使用方括号来表示总线的导体或值的位单元。例如,“总线60[7:0] ”或“总线 60的导体[7:0]”表示总线60的8个较低位导体,以及“地址位[7:0]”或“地址[7:0]”表 示地址值的8个较低位。数字前的符号“$”表示该数以十六进制或十六进制形式表示。数 字前的符号“ % ”或“Ob”表示该数以二进制或二进制形式表示。图1示例说明与本发明的实施例一致的数据处理系统10。数据处理系统可以是 芯片上系统。数据处理系统10可以在单个集成电路或多个集成电路上实现。数据处理系 统10包括处理器12、外部调试电路14、I/O模块16和存储器18,可以经总线20耦合。在 另外的实施例中,存储器18可以是任何类型的存储器并且可以位于与处理器12相同的集 成电路上,或与处理器12不同的集成电路上。存储器18可以是任何类型的存储器,诸如只 读存储器(ROM)、随机存取存储器(RAM)、非易失存储器(例如闪存)等等。同时,存储器18 可以是位于另一外围或从设备内或不同集成电路上的存储器或其他数据存储器。图2是与图1的数据处理系统10相关联的处理器12的框图。可以实现处理器12来执行流水线式的操作,以及可以包括指令管道22、执行单元24、指令取得单元26、控制电 路28、通用寄存器30、加载/存储单元32、总线接口单元(BIU) 34和内部调试电路40。处理 器12可以经耦合到BIU 34的总线20,与数据处理系统10的其他部件通信。内部调试电路 40可以经图2中所示的调试端口,耦合到外部调试单元,诸如IEEE IST0-5001适应Nexus 调试单兀° Nexus 是位于 Austin, Texas 的 Freescale Semiconductor, Inc.的商标。调 试端口可以使用串行接口,诸如符合IEEEl 149的工业标准JTAG TAP来实现,或可以实现为 并行端口,串并行端口的组合或可以实现为Ethernet端口。内部调试电路40可以包括屏 蔽电路31、调试寄存器42和调试控制电路44。调试控制电路44可以包括外部调试命令寄 存器33和调试资源控制寄存器41 (DBERCO)。屏蔽电路31与调试寄存器42、执行单元24 通信,并从调试资源控制寄存器41接收信息。调试寄存器42可以包括以字段分组的位,用 于控制各种调试相关事件,包括指令断点、数据断点、观察点和与调试有关的其他消息。这 些调试资源可以在处理器12和外部调试电路14间共享。同时,调试控制电路44可以通过 导体35,与BIU 34通信地址和数据。在一个实施例中,注意,软件调试器是指由执行调试操作的处理器12执行的软件 或调试软件。在一个实施例中,硬件调试器是指在处理器12外部的并且指示处理器12内 的调试操作的外部调试硬件或电路。在一个实施例中,硬件调试器经调试端口,或者经一个 或多个调试信号的集,指示处理器12内的调试操作。同时,注意调试软件可以概指软件以 及硬件调试器可以概指硬件。现在参考图3,也可以提供调试寄存器42内的寄存器,用于存储一个或多个地址 比较值、地址范围和数据匹配值,用于实现指令和/或数据访问断点和观察点事件,以及其 他调试控制标准。这些地址和数据值,连同各种控制标准,用来确定为生成断点或观察点事 件,处理器12何时访问一个或多个预定指令地址或数据地址,这使得当内部调试模式有效 时,处理器12开始用于调试异常的异常处理,或当外部调试模式有效时,使处理器12进入 调试暂停模式,其中,响应通过内部调试单元40的调试端口,由外部调试电路14提供(给 例如外部调试命令寄存器33)的命令。即,可以使用调试寄存器42来配置调试事件。例如, 调试寄存器42可以包括各种调试控制寄存器,包括调试控制寄存器50 (DBCRO)和其他调试 控制寄存器43 (DBCR1、DBCR2、DBCR3和DBCR4)。调试寄存器42可以进一步包括指令地址 比较寄存器45 (IAC1和IAC2)。指令地址比较寄存器45可以存储用于地址比较目的的指令 地址。调试寄存器42可以进一步包括数据地址比较寄存器47(DAC1和DAC2)。数据地址 比较寄存器47可以存储用于地址比较目的的数据访问地址。调试寄存器42可以进一步包 括调试状态寄存器49、调试计数器51 (DBCNT1和DBCNT2),以及数据值比较寄存器53 (DVC1 和DVC2)。调试寄存器42可以是用户的软件编程模型的一部分。调试计数器51可以配置 成当一个或多个计数使能事件发生时递减计数。当计数值达到零时,可以信号告知调试计 数事件,以及如果使能,可能生成调试中断。数据值比较寄存器53可以存储用于数据比较 目的的数据值。在内部调试模式中(当未使能外部调试模式时),这些寄存器资源由软件(例如由 在处理器12上运行的调试软件或软件调试器)管理,并且不需要外部调试电路使用。软件 可以通过使用向专用寄存器指令移动和从专用寄存器指令移动的数据移动来配置寄存器, 所述专用寄存器指令为编程器模型软件指令,以初始化单独调试寄存器便于执行基于软件的调试活动,其中,使能的调试事件可使软件调试中断发生。然后,软件中断处理程序可以 执行由数据处理系统10的软件编程器确定的各种所需活动。在该内部调试模式中,由软件 专用并管理(即,由软件所拥有)图3的调试资源,以便外部调试硬件不能访问这些资源。在外部调试模式中,将图3的调试资源的专用权分配给外部调试电路14(即外部 调试硬件),以及当配置的调试事件发生时,处理器12可以停止执行软件指令,然后进入暂 停状态并等待由外部调试电路14提供的命令(其中,该暂停状态也可以称为硬件调试模 式)。当使能外部调试模式时,软件(诸如由处理器12执行的调试软件)不再控制调试资 源。外部调试电路14可以直接经可以实现为例如JTAG TAP端口的调试端口(如图2中所 示),访问调试资源,包括调试寄存器42。在一个实施例中,调试寄存器42可以被映射为 JTAG数据寄存器,具有包含在一个或多个字段内的寄存器选择编码以用于各种JTAG指令, 通过JTAG IR和DR操作,由调试器提供对寄存器的读写访问。如下文更详细所述,在外部 调试模式中,外部调试电路14能允许处理器12上的软件(例如,在处理器12上运行的调 试软件或软件调试器)有选择地管理调试资源的子集。即,外部调试电路14能通过使用调 试资源控制寄存器41,将一个或多个调试资源分配给软件以便管理。例如,外部调试电路 14能允许调试寄存器42内的特定调试控制寄存器字段由软件管理。由调试软件(例如软 件调试器)管理的调试事件导致由软件处理的中断(假定使能中断),而由硬件(例如外部 调试电路14)管理的调试事件导致进入硬件调试模式,其中,暂停处理器12以及通过外部 调试电路14,经调试端口执行调试。用这种方式,当在软件调试器和硬件调试器间共享一 个或多个资源时,能由硬件或软件有选择地管理或拥有调试控制寄存器字段和其他调试资 源。此外,通过能分配用于由调试软件使用的一个或多个调试资源的外部调试电路14,外部 调试电路14能调试该调试软件本身。注意,如在此所使用的,调试资源可以包括比在调试寄存器42内包括的更多或更 少的寄存器。例如,调试资源可以包括指令断点、数据断点、各种执行事件断点,以及控制和 状态字段,以便配置资源和报告有关各个事件的状态。调试资源还可以包括调试寄存器的 一个或多个特定字段。调试资源还可以包括计数器和比较器,如果需要的话,以便执行调试 操作。此外,共享状态寄存器(诸如调试寄存器42)和控制的共用集,而不是具有用于硬件 调试器和软件调试器的双倍集以管理,要求待实现的更少的处理器12资源,并且这简化了 用于数据处理系统10的用户的编程模型。内部调试单元40监视处理器12内的活动性并 且基于所存储的调试配置信息,响应检测到一个或多个预定条件,可以生成一个或多个数 据断点事件、指令断点事件、指令执行事件,诸如分支或陷阱跳转事件、指令完成事件等等。 以这种操作方式,本领域技术人员将意识到处理器12的功能。图4是与图1的数据处理系统相关联的调试控制寄存器50的图。调试控制寄存 器50可以被包括作为调试寄存器42的一部分,调试寄存器42可以进一步被包括作为内部 调试单元40的一部分。调试控制寄存器50可以用来存储调试配置信息。尽管图4示例 说明使用特定位字段的本发明的特定实施例,但本发明的另外的实施例可以使用每一字段 中具有不同位数的不同位字段。图4中所述的特定位字段仅为示例目的。举例来说,调试 控制寄存器50可以包括32位。调试控制寄存器50可以包括标记如下的位字段EDM 52、 IDM 54、RST 56、ICMP58、BRT 60、IACl 61、IAC2 62、IAC3 63、IAC4 64、DACl 66、DAC2 68、 DCNTl 70、DCNT2 71、TRAP 72。这些位字段仅是示例以及调试控制寄存器50可以包括更少或附加位字段。另外,这些位字段可以不同地排列。此外,注意每一字段可以称为位或 位(多个)或字段。调试控制寄存器50还可以包括可以在未来使用的预留位字段73。在 下文中,参考图5和6,解释各个位字段的功能。举例来说,调试控制寄存器50可以是可写 寄存器,其也可以读,以及可以是用户的软件编程模型的一部分。在本发明的另外的实施例 中,调试控制寄存器50可以不是用户的软件编程模型中的控制寄存器,而是可以在用户的 软件编程模型外实现。可以使用任何类型的存储电路来实现调试控制寄存器50。图5以表格的形式表示图4的调试控制寄存器50的一部分的功能。EDM位52可 以表示使能或禁用外部调试模式。当将EDM位52设置成1时,例如,控制寄存器,诸如调试 控制寄存器50处于外部调试电路14的专门控制下,以及数据处理系统10软件不能将信息 写入这些控制寄存器。另外,当将EDM位52设置成1时,软件不能写入调试控制寄存器的 特定部分。另外,EDM位52被用来有选择地阻止某些复位事件清零在调试控制寄存器50和 其他调试资源中存储的信息,可包含调试控制和设置信息。此外,当将EDM位52设置成1 时,调试资源控制寄存器41可以由外部调试电路14使用来为软件分配控制寄存器字段的 子集以便管理。IDM位54可以表示使能或禁用内部调试模式,由此表示使能或禁用调试异 常。RST位56可以用来控制复位功能。ICMP位58可以用来表示是否使用或禁用指令完成 调试事件。可以使用BRT位60来表示是否使能或禁用分支跳转调试事件。可以使用IACl 位61来表示是否使能或禁用指令地址比较1调试事件。IAC2位62可以用来表示是否使能 或禁用指令地址比较2调试事件。IAC3位63可以用来表示是否使用或禁用指令地址比较 3调试事件。IAC4位64可以用来表示是否使能或禁用指令地址比较4调试事件。现在参考图6,图6以表格的形式表示图4的调试控制寄存器50的一部分的功能。 DACl位66可以用来表示是否使能或禁用数据地址比较1调试事件。如果使能,DACl位66 还表示使能数据地址比较1调试事件用于哪一类型的存储访问(例如,用于存储型数据存 储访问、用于加载型数据存储访问,或用于加载型或存储型数据存储访问)。DAC2位68可 以用来表示是否使能或禁用数据地址比较2调试事件。如果使能,DAC2位68还表示使能 数据地址比较1调试事件用于哪一类型的存储访问(例如,用于存储型数据存储访问、用于 加载型数据存储访问,或用于加载型或存储型数据存储访问)。DCNTl位70可以用来表示 是否使能调试计数器1调试事件。DCNT2位71可以用来表示是否使能调试计数器2事件调 试。TRAP位72可以用来表示是否使能陷阱跳转调试事件。可以预留位73(17:31),用于未 来使用。尽管图5和6描述了特定多个位字段,用于提供与调试事件相关联的不同配置信 息,也可以使用与这些图中所示的不同多个位字段。图7是与图1的数据处理系统相关联的调试状态寄存器49的图。调试状态寄存 器49可以被包括作为调试寄存器42的一部分,调试寄存器42可以进一步被包括作为内部 调试单元40的一部分。调试状态寄存器49可以被用来存储有关调试事件的状态信息。在 一个实施例中,当调试状态寄存器49中的位被设置成“1”时,生成相应的控制信号,用来信 号告知进入调试暂停模式(用于硬件调试事件)或用来生成对处理器的调试中断请求(用 于软件调试事件)。尽管图7示例说明使用特定位字段的本发明的特定实施例,但本发明的 另外的实施例可以使用在每一字段中,具有不同位数的不同位字段。图7中所示的特定位 字段仅示为示例目的。举例来说,调试状态寄存器49可以包括32位。调试状态寄存器49 可以包括标记如下的位字段:IDE 76、ICMP 78、BRT 80、IACl 82、IAC2 84、IAC3 86、IAC488,DAClR 90,DAClff 92、DAC2R 94.DAC2W 96, TRAP 97,DCNTl 98、DCNT2 99 和软件专用位 101。这些位字段仅是示例,并且调试状态寄存器49可以包括更少或附加位字段。另外,这 些位字段可以不同地排列。此外,注意每一字段可以称为位或位(多个)或字段。调试状 态寄存器49也可以包括预留位字段100,可以在未来使用。在下文中,参考图8,说明各个 位字段的功能。此外,参考调试状态寄存器49,设置位是指存储逻辑电平1以及清零位是指 存储逻辑电平0。举例来说,调试状态寄存器49可以是经硬件设置其位,以及经软件读取 和清零其位的并且可以是用户的软件编程模型的一部分的寄存器。在本发明的另外的实施 例中,调试状态寄存器49可以不在用户的软件编程模型中,而是可以在用户的软件编程模 型外实现。在一个实施例中,仅当使能内部调试模式或使能外部调试模式时,调试状态寄存 器49的调试状态位可以由调试事件设置。在一个实施例中,当在内部调试模式中使能调试 中断时,调试状态寄存器49中的设置位可以导致生成调试中断,其中,调试中断处理程序 负责在返回到正常执行前,清零调试状态寄存器49位。在一个实施例中,当在外部调试模 式中时,可以由硬件所拥有的调试事件设置调试状态寄存器49的调试状态位。如果硬件已 经将任何资源分配给软件,那么可以由软件所拥有的调试事件设置与那些分配的资源对应 的调试状态位,其中,如果使能中断,那么由软件所拥有的设置位可能导致生成中断请求信 号,以及由软件跳转和处理调试中断。相应地,由硬件所拥有的设置位会导致生成调试模式 请求信号并进入调试暂停模式,并由硬件调试器处理。(注意硬件所拥有的资源可以称为硬 件管理的资源以及软件所拥有的资源可以称为软件管理的资源)。此外,可以使用任何类型 的存储电路来实现调试状态寄存器49。图8以表格的形式表示图7的调试状态寄存器49的功能。IDE位76用来表示出 现不确切的调试事件,由此,如果禁用调试异常(exc印tions),可以设置成1,以及调试事 件使其各自的调试状态寄存器位设置成1。即,尽管调试事件可能发生,但因为由于处理器 12流水线的当前状态,中断还不能发生,因此调试异常仍然禁用。如果指令完成调试事件 发生,ICMP位78可以设置成1。如果分支跳转调试事件发生,BRT位80可以设置成1。如 果IACl调试事件发生,可以将IACl位82设置成1。如果IAC2调试事件发生,可以将IAC2 位84设置成1。如果IAC3调试事件发生,可以将IAC3位86设置成1。如果IAC4调试事 件发生,可以将IAC4位88设置成1。如果读类型DACl调试事件发生,而DACl位66等于% 10或% 11 (表示使能DACl调试事件,用于加载型数据存储访问,如图6所示),那么可以将 DAClR位90设置成1。如果写类型DACl调试事件发生,而DACl位66等于% 01或% 11 (表 示使能DACl调试事件,用于存储型数据存储访问,如图6所示),那么可以将DAClW位92设 置成1。如果读类型DAC2调试事件发生,而DAC2位68等于% 10或% 11 (表示使能DAC2 调试事件,用于加载型数据存储访问,如图6所示),那么可以将DAC2R位94设置成1。如 果写类型DAC2调试事件发生,而DAC2位68等于% 01或% 11 (表示使能DAC2调试事件, 用于存储型数据存储访问,如图6所示),那么可以将DAC2W位96设置成1。如果陷阱跳转 事件出现,可以将TRAP位97设置成1。如果DCNTl调试事件出现,可以将DCNTl位98设置 成1。如果DCNT2调试事件出现,可以将DCNT2位99设置成1。在一个实施例中,可以预留 位14至29,用于可能的未来使用。同时,在一个实施例中,位101是软件专用位,其中,仅软 件可以访问它们。图9是与图1的数据处理系统相关联的调试资源控制寄存器41的图。当使能外部调试模式时(例如,当将调试控制寄存器50的EDM位52设置成1时),调试资源控制寄 存器41可以用来控制资源分配。调试资源控制寄存器41为硬件调试器(例如外部调试电 路14)提供与软件共享调试资源的机制。当使能外部调试模式时,基于调试资源控制寄存 器41的设置,分配各个资源。在一个实施例中,当使能外部调试模式时(例如,当将调试控 制寄存器50的EDM位52设置成1时),使调试资源(例如调试寄存器42)最初位于硬件调 试器的单独控制下,并且软件不再能写入这些资源。然后,硬件调试器能经调试资源控制寄 存器41,将一个或多个资源分配回软件,同时保持使用剩余的资源。用这种方式,由调试软 件指示的调试操作和由外部调试硬件指示的调试操作能同时出现在外部调试模式中。艮口, 硬件调试器和软件调试器能同时地操作。当禁用外部调试模式时(例如,当将调试控制寄 存器50的EDM位52设置成0时),忽略调试资源控制寄存器41中的设置。在一个实施例中,生成调试事件的硬件所拥有的资源使得进入硬件调试模式,而 生成调试事件的软件所拥有的资源就像它们出现在内部调试模式中一样,由此如果IDM位 54设置成1以及如果使能中断,导致调试中断出现。在一个实施例中,经调试端口控制调试 资源控制寄存器41并且对软件是只读的。此外,仅当使能内部调试模式时,由软件所拥有 的调试事件设置调试状态寄存器49中的调试状态位。即,当使能调试中断时(以及当将调 试控制寄存器50中的IDM位54设置成1以及将调试控制寄存器50中的EDM位52设置成 0,或当调试控制寄存器50中的IDM位54和EDM位52均设置成1并且经调试资源控制寄 存器41,给软件分配一个或多个调试资源时),对应于软件所拥有的调试事件的调试状态 寄存器49中的设置位将导致生成调试中断。尽管图9示例说明使用特定位字段的本发明的特定实施例,但本发明的另外的实 施例可以使用在每一字段中,具有不同位数的不同位字段。图9中所述的特定位字段仅是 示例目的。此外,与在此所述的寄存器的任何一个一样,可以使用更多或更少的寄存器来存 储数据。举例来说,调试资源控制寄存器41可以包括32位。调试资源控制寄存器41可以 包括标记如下的位字段IDM 112、RST 114、UDE 116、ICMP 118、BRT 120、IRPT 122、TRAP 124、IACl 126、IAC2 128、IAC3 130、IAC4 132、DACl 134、DAC2 138、RET 142、DEVTl 146、 DEVT2 148,DCNTl 150、DCNT2 152,CIRPT 154,CRET 156,BKPT 158 和 FT162。这些位仅是 示例,以及调试资源控制寄存器41可以包括更少或附加位字段。另外,这些位可以不同地 排列。此外,注意每一字段可以称为位或位(多个)或字段。调试资源控制寄存器41还包 括预留位字段110、136、140、144和160,可以在未来使用。在下文中,参考图10-13,说明各 个位字段的功能。图10以表格的形式表示图9的调试资源控制寄存器41 (DBERCO)的一部分的功 能。IDM位112提供内部调试模式控制。当将IDM位112设置成0时,不可由软件使能内 部调试模式。即,调试控制寄存器50 (DBCRO)中的IDM位54由硬件所专有。总是忽略到调 试控制寄存器50和43 (DBCR0-DBCR4)、调试计数器寄存器51 (DBCNT1和DBCNT2)和调试状 态寄存器49 (DBSR)的移向专用寄存器(mtspr)指令。此外,不管DBERCO 41中的其他字段 的设置如何,也无资源共享出现。即,硬件独享所有资源。此外,通过软件,来自调试寄存器 42的任何一个的移出专用寄存器(mfspr)指令回0。当将IDM位112设置成1时,可由软 件使能内部调试模式。即,可以由软件拥有DBCRO 50中的IDM位54和DBSR49中的IDE位 76,由此可软件读/写。此外,可以屏蔽软件访问DBSR49中的硬件管理的状态和控制位并读为0,以及忽略经mtspr指令,向DBCR0-DBCR4、DBCNT和DBSR中的硬件管理位的软件写 入。注意,通过将IDM位112设置成1,硬件能分配资源,用于由软件使用,其中,分配给软 件的这些资源可以由DBERCO 41中的其他字段定义。RST位114提供复位字段控制。当将 RST位114设置成0时,由硬件独有DBCRO 50的RST位56。此外,不允许软件对RST位56 的mtspr访问,以及通过软件的mfspr访问回0。当将RST位114设置成1时,可由软件调 试器设置DBCRO 50的RST位56。即,RST位56是可软件读写的。仍然参考图10,UDE位116允许将无条件调试事件的所有权(或管理)分配给软 件。当将UDE位116设置成0时,由硬件调试器拥有无条件调试事件。软件不能经mtspr 指令访问DBSR 49中的UDE字段(UDE字段未示出),以及通过软件的mfspr访问回0。当 将UDE位116设置成0时,由软件调试器拥有无条件调试事件。在这种情况下,DBSR49中 的UDE字段是软件可读写。ICMP位118允许将指令完成调试事件的所有权(或管理)分配 给软件。当将ICMP位118设置成0时,由硬件调试器拥有指令完成调试事件。没有软件对 DBCRO 50中的ICMP字段58或DBSR 49中的ICMP字段78的mtspr访问,以及通过软件的 mfspr访问回0。当将ICMP位118设置成1时,由软件调试器拥有指令完成调试事件。在 这种情况下,DBSRO 50中的ICMP字段58和DBSR 49中的ICMP字段78是可软件读写的。 BRT位120允许将分支跳转调试事件的所有权(或管理)分配给软件。当将BRT位120设 置成0时,由硬件调试器拥有分支跳转调试事件。不存在软件对DBCRO 50中的BRT字段60 或DBSR 49中的BRT字段80的mtspr访问,以及通过软件的mfspr访问回0。当将BRT位 120设置成时1时,由软件调试器拥有分支跳转调试事件。在这种情况下,DBCRO 50中的 BRT字段50和DBSR 49中的BRT字段60是可软件读写的。图11以表格的形式表示图9的调试资源控制寄存器41 (DBERCO)的一部分的功 能。IRPT位122允许将中断跳转调试事件的所有权(或管理)分配给软件。当将IRPT位 122设置成0时,由硬件调试器拥有中断跳转调试事件。不存在软件对DBCRO 50中的IRPT 字段(未示出)或DBSR 49中的IRPT字段(未示出)的mtspr访问,以及通过软件的mfspr 访问回0。当将IRPT位122设置成1时,由软件调试器拥有中断跳转调试事件。在这种情 况下,DBCRO中的IRPT字段和DBSR 49中的IRPT字段是可软件读写的。TRAP位124允许 将陷阱跳转调试事件的所有权(或管理)分配给软件。当将TRAP位124设置成0时,由硬 件调试器拥有陷阱跳转调试事件。不存在软件对DBCRO 50中的TRAP字段72或DBSR 49 中的TRAP字段97的mtspr访问,以及通过软件的mfspr访问回0。当将TRAP位124设置 成1时,由软件调试器拥有陷阱跳转调试事件。在这种情况下,DBCRO中的TRAP字段72和 DBSR49中的TRAP字段97是可软件读写的。仍然参考图11,IACl位126允许将指令地址比较1调试事件的所有权(或管理) 分配给软件。当将IACl位126设置成0时,由硬件调试器拥有指令地址比较1调试事件。 不存在软件对IACl控制和状态字段(例如DBCRO 50中的IACl字段61和DBSR 49中的 IACl字段82)的mtspr访问,以及通过软件的mfspr访问回0。当将IAC位126设置成1 时,由软件调试器拥有指令地址比较1调试事件。在这种情况下,IACl控制和状态字段(例 如DBCRO中的IACl字段61和DBSR49中的IACl字段82)是可软件读写的。IAC2位128 允许将指令地址比较2调试事件的所有权(或管理)分配给软件。当将IAC2位128设置 成0时,由硬件调试器拥有指令地址比较2调试事件。不存在软件对IAC2控制和状态字段(例如DBCRO 50中的IAC2字段62和DBSR 49中的IAC2字段84)的mtspr访问,以及通 过软件的mfspr访问回0。当将IAC位128设置成1时,由软件调试器拥有指令地址比较2 调试事件。在这种情况下,IAC2控制和状态字段(例如DBCRO中的IAC2字段62和DBSR49 中的IAC2字段84)是可软件读写的。IAC3位130允许将指令地址比较3调试事件的所有 权(或管理)分配给软件。当将IAC3位130设置成0时,由硬件调试器拥有指令地址比 较3调试事件。不存在软件对IAC3控制和状态字段(例如DBCRO 50中的IAC3字段63和 DBSR 49中的IAC3字段86)的mtspr访问,以及通过软件的mfspr访问回0。当将IAC3位 130设置成1时,由软件调试器拥有指令地址比较3调试事件。在这种情况下,IAC3控制和 状态字段(例如DBCRO中的IAC3字段63和DBSR49中的IAC3字段86)是可软件读写的。 IAC4位132允许将指令地址比较4调试事件的所有权(或管理)分配给软件。当将IAC4 位132设置成0时,由硬件调试器拥有指令地址比较4调试事件。不存在软件对IAC4控制 和状态字段(例如DBCRO 50中的IAC4字段64和DBSR49中的IAC4字段88)的mtspr访 问,以及通过软件的mfspr访问回0。当将IAC4位132设置成1时,由软件调试器拥有指令 地址比较4调试事件。在这种情况下,IAC4控制和状态字段(例如DBCRO中的IAC4字段 64和DBSR49中的IAC4字段88)是可软件读写的。图12以表格的形式表示图9的调试资源控制寄存器41 (DBERCO)的一部分的功 能。DACl位134允许将数据地址比较1调试事件的所有权(或管理)分配给软件。当将 DACl位134设置成0时,由硬件调试器拥有数据地址比较1调试事件。不存在软件对DACl 控制和状态字段(例如DBCRO 50中的DACl字段66和DBSR 49中的DAClR字段90和DAClW 字段92)的mtspr访问,以及通过软件的mfspr访问回0。当将DAC 1位134设置成1时, 由软件调试器拥有数据地址比较1调试事件。在这种情况下,DACl控制和状态字段(例如 DBCRO 50中的DACl字段66和DBSR 49中的DAClR字段90和DAClW字段92)是可软件读 写的。DAC2位138允许将数据地址比较2调试事件的所有权(或管理)分配给软件。当 将DAC2位138设置成0时,由硬件调试器拥有数据地址比较2调试事件。不存在软件对 DAC2控制和状态字段(例如DBCRO 50中的DAC2字段68和DBSR 49中的DAC2R字段94和 DAC2W字段96)的mtspr访问,以及软件的mfspr访问回0。当将DAC2位138设置成1时, 由软件调试器拥有数据地址比较2调试事件。在这种情况下,DAC2控制和状态字段(例如 DBCRO 50中的DAC2字段68和DBSR 49中的DAC2R字段94和DAC2W字段96)是可软件读 写的。仍然参考图12,RET位142允许将返回调试事件的所有权(或管理)分配给软件。 当将RET位142设置成0时,由硬件调试器拥有返回调试事件。不存在软件对DBCRO 50中 的RET字段(未示出)和DBSR 49中的RET字段(未示出)的mtspr访问,以及通过软件 的mfspr访问回0。当将RET位142设置成1时,由软件调试器拥有返回调试事件。在这种 情况下,DBCRO 50中的RET字段和DBSR49中的RET字段是可软件读写的。DEVTl位146允 许将外部调试事件1调试事件的所有权(或管理)分配给软件。当将DEVTl位146设置成 0时,由硬件调试器拥有外部调试事件1调试事件。不存在软件对DBCRO 50中的DEVTl字 段(未示出)和DBSR 49中的DEVTl字段(未示出)的mtspr访问,以及软件的mfspr访 问回0。当将DEVTl位146设置成1时,由软件调试器拥有外部调试事件1调试事件。在 这种情况下,DBCRO 50中的DEVTl字段和DBSR49中的DEVTl字段是可软件读写的。DEVT2位148允许将外部调试事件2调试事件的所有权(或管理)分配给软件。当将DEVT2位 148设置成0时,由硬件调试器拥有外部调试事件2调试事件。不存在软件对DBCRO 50中 的DEVT2字段(未示出)和DBSR 49中的DEVT2字段(未示出)的mtspr访问,以及通过 软件的mfspr访问回0。当将DEVT2位148设置成1时,由软件调试器拥有外部调试事件2 调试事件。在这种情况下,DBCRO 50中的DEVT2字段和DBSR49中的DEVT2字段是可软件 读写的。图13以表格的形式表示图9的调试资源控制寄存器41 (DBERCO)的一部分的功 能。DCNTl位150允许将调试计数器1调试事件的所有权(或管理)分配给软件。当将 DCNTl位150设置成0时,由硬件调试器拥有调试计数器1调试事件。不存在软件对计数器 1控制和状态字段(例如DBCRO 50中的DCNTl字段70和DBSR 49中的DCNTl字段98)的 mtspr访问,以及通过软件的mfspr访问回0。当将DCNTl位150设置成1时,由软件调试 器拥有调试计数器1调试事件。在这种情况下,计数器1控制和状态字段(例如DBCRO 50 中的DCNTl字段70和DBSR 49中的DCNTl字段98)是可软件读写的。DCNT2位152允许将 调试计数器2调试事件的所有权(或管理)分配给软件。当将DCNT2位152设置成0时, 由硬件调试器拥有调试计数器2调试事件。不存在软件对计数器2控制和状态字段(例如 DBCRO 50中的DCNT2字段71和DBSR 49中的DCNT2字段99)的mtspr访问,以及通过软件 的mfspr访问回0。当将DCNT2位152设置成1时,由软件调试器拥有调试计数器2调试事 件。在这种情况下,计数器2控制和状态字段(例如DBCR050中的DCNT2字段71和DBSR 49中的DCNT2字段99)是可软件读写的。CIRPT位154允许将临界中断跳转调试事件的所 有权(或管理)分配给软件。当将CIRPT位154设置成0时,由硬件调试器拥有临界中断 跳转调试事件。不存在软件对DBCRO 50中的CIRPT字段(未示出)和DBSR 49中的CIRPT 字段(未示出)的mtspr访问,以及通过软件的mfspr访问回0。当将CIRPT位154设置成 1时,由软件调试器拥有临界中断跳转调试事件。在这种情况下,DBCRO 50中的CIRPT字段 和DBSR 49中的CIRPT字段是可软件读写的。CRET位156允许将临界返回调试事件的所有 权(或管理)分配给软件。当将CRET位156设置成0时,由硬件调试器拥有临界返回调试 事件。不存在软件对DBCRO 50中的CRET字段(未示出)和DBSR 49中的CRET字段(未 示出)的mtspr访问,以及通过软件的mfspr访问回0。当将CRET位156设置成1时,由软 件调试器拥有临界返回调试事件。在这种情况下,DBCRO 50中的CRET字段和DBSR49中的 CRET字段是可软件读写的。仍然参考图13,BKPT位158提供断点指令调试控制。当将BKPT位158设置成0 时,硬件拥有断点。执行断点(bkpt)指令(具有全0操作码的指令)导致进入硬件调试器 能指示调试操作的调试模式。当将BKPT位158设置成1时,由软件调试器拥有断点。执行 bkpt指令导致非法指令异常。FT位162提供冻结定时器调试控制。当将FT位162设置 成0时,硬件调试器拥有DBCRO 50的FT字段(未示出),不允许软件访问。当将FT位162 设置成1时,软件调试器拥有FT字段,因此,可软件读写。在图10-13中,可以预留位字段 110、136、140、144和160,用于由未来使用。因此,如上所述,当处理器12初始地进入外部调试模式时,所有资源专门分配给 硬件调试器(例如外部调试电路14)。然而,通过使用调试资源控制寄存器41,硬件(例如 硬件调试器)能将资源分配回软件(例如软件调试器),用于由软件专用。即,外部调试硬件能使能调试资源的第一部分的可用性,用于由调试软件使用,其中,约定调试资源的第二部 分专用于外部调试硬件(其中,第一和第二部分互斥)。如在图10-13的描述中所看到的, 通过将调试事件或控制分配给软件,软件有权访问管理那一调试事件或控制所需的那些资 源。在一个实施例中,仅允许软件访问管理那一调试事件或控制所需的那些资源。例如,如 果硬件将位IACl位126和IAC2位128的每一个设置成1 (以及将IDM位112设置成1以允 许共享资源),将用于管理那些指令地址比较调试事件所需的那些状态和控制寄存器以及 任何其他资源分配给软件。例如,软件将有权访问DBCRO 50中的IACl字段61和IAC2字 段62,DBSR 49中的IACl字段82和IAC2字段84,以及IACl和IAC2寄存器45。用这种方 式,软件因此能根据需要,通过设置适当的IACl字段61、IAC2字段62以及IAC寄存器45, 使能IACl或IAC2调试事件(或这两个调试事件),以便配置调试事件。然而,如果DBERCO 中的其余位字段仍然设置成0,那么硬件专用剩余的资源。用这种方式,在外部调试模式期 间,硬件调试器和软件调试器可以同时执行调试操作,其中,软件调试器限于仅访问由硬件 调试器分配的那些资源。此外,在处理器12上运行的调试软件将不能访问仍然由硬件独有 的其他资源的任何一个。因此,注意调试软件,被分配调试事件的所有权,能访问特定寄存 器或寄存器的特定字段,根据需要。用这种方式,硬件调试器能使能调试资源的第一部分的 可能性,用于由调试软件使用,而将调试资源的第二部分指定给本身,其中第一和第二部分 互斥。图14和15以表格的形式示例说明响应DBERCO 41的特定设置,哪些资源是软件 可访问的。参考行172,注意,如果未使能外部调试模式(如果将EDM位52设置成0),那么, 所有资源由软件独有,由此是可由软件访问的。对图14和15的剩余行,如行176、178、180、 182、184、186、188、190、192、194、196、198、200、202、204、206、208 和 210 中所示,使能外部 调试模式(将EDM位52设置成1)以及将DBERCO 41的IDM位112设置成1,以便DBERCO 41的剩余字段将特定的资源分配给软件。例如,为允许软件拥有指令地址比较1和2调试事 件(如在前一段的例子中所述),能使用行186或行188或该两行的设置,其中,基于DBERCO 41的IACl位126或IAC2位128的哪一个设置成1,名为“软件可访问”的列表示哪些调试 资源可由软件使用。注意,除参考DBCRO 50所述的那些字段外,还能分配其他调试控制寄 存器43中的其他字段(诸如DBCRl的IAClUS和IAClER字段),用于由软件使用。图16和17根据本发明的一个实施例示例说明屏蔽电路31的部分。图16示例说 明从调试寄存器42到执行单元24的读取路径的一部分,诸如当执行mfspr指令时。如上参 考图10-13所述,当未断言对应于特定调试事件的位字段时,特定调试事件是硬件拥有的, 其中,通过软件的mfspr访问回0。然而,当断言对应于特定调试事件的位字段时,特定调 试事件是软件拥有的,其中,可由软件读取和写入。用这种方式,能防止在调试软件的执行 期间,由调试软件读取DBSR 49的部分。因此,参考图16,每一 AND门220、222、224、226和 228从DBERCO 41接收第一位输入,以及从DBSR 49接收相应的第二位输入。即,每一 AND 门从DBERCO接收位字段,例如,对应于特定调试事件,以及还从DBSR 49接收位字段,对应 于那一特定调试事件(即报告那一特定调试事件的结果)。例如,AND门222可以从DBERCO 41接收IACl位126,作为第一输入,以及从DBSR 49接收IACl位82,作为第二输入。如果 从DBERCO 41至AND门的输入是“ 1 ” (表示相应调试事件是软件拥有的),那么那一 AND门 的输出将反映作为第二输入提供给AND门的、来自DBSR49的相应位字段的值。然而,如果从DBERCO 41至AND门的输入是“0”,那么与从DBSR49输入的值无关,AND门的输出将为0。 用这种方式,当否定DBERCO 41中的相应位时,mfspr访问将总是回0。图17示例说明执行单元24到调试寄存器42的写入路径的一部分。如上参考图 10-13所述,当未断言对应于特定调试事件的位字段时,特定调试事件是硬件所有的,其中, 不存在通过软件的mtspr访问。即,软件不能写入位字段。然而,当断言对应于特定调试事 件的位字段时,特定调试事件是软件拥有的,其中,可由软件读取和写入。因此,参考图17, 每一 AND门230、232和234接收写入使能信号242作为第一输入,以及从DBERCO 41输入 的相应位。用这种方式,仅当断言从DBERCO 41输入的相应位时,相应位字段(例如位8、位 9和位15)能由软件写入。即,当未断言从DBERCO 41输入的相应位时,那么不能写入相应位 字段。注意,在存储电路236、238和240中存储的位8、位9和位15分别对应于调试控制寄存 器(诸如DBCR0-DBCR4)或DBSR 49的位字段单元8,9和15。S卩,AND门,诸如AND门230、 232和234可以存在于寄存器的写入路径中,根据需要,存在于调试寄存器42中。例如,存 储电路236可以对应于DBCRO 50的IAC3位字段63的寄存器存储位(其中,IAC3位字段 63存储在DBCRO 50的位字段单元8中)。如果存储电路236对应于DBSR 49的寄存器存 储位,那么存储电路236可以对应于DAClW位字段92的寄存器存储位(其中,DAClW位字 段92存储在DBSR 49的位字段单元8中)。在一个实施例中,DBSR 49中的每一字段可以称为状态标志,其中,与硬件拥有的 调试事件对应的那些字段可以称为硬件状态标志,以及与软件拥有的调试事件对应的那些 字段可以称为软件状态标志。注意,硬件状态标志的设置和清零由运行硬件调试器产生,而 软件状态标志的设置和清零,如果有的话,由运行调试软件而产生。屏蔽电路31因此屏蔽 放置硬件状态标志的DBSR 49中的单元,防止被调试软件读取,同时允许由硬件调试器读 取硬件状态标志和软件状态标志。注意,能使用各种不同的电路,以各种不同的方式实现屏 蔽电路31的功能,以便屏蔽调试状态寄存器中的单元。图18示例说明图2的外部调试命令寄存器33的一个实施例。外部调试命令寄存 器33经调试端口,从硬件调试器,例如外部调试电路14接收调试命令。外部调试命令寄存 器33包括读/写命令字段250和寄存器选择字段254。在所示的实施例中,读/写命令字 段250是单个位字段以及寄存器选择字段254包括7位。外部调试命令寄存器33还可以包 括为未来使用预留的位252。尽管图18示例说明使用特定位字段的本发明的特定实施例, 但本发明的另外的实施例可以使用在每一字段中,具有不同位数的不同位字段。图18中所 述的特定位字段仅为示例目的。此外,与在此所述的寄存器的任何一个相同,可以使用更多 或更少寄存器来存储数据。举例来说,外部调试命令寄存器33可以包括10位。图19根据本发明的一个实施例以表格的形式表示图18的外部调试命令寄存器33 的功能。读/写命令位250指定数据传送的方向。如果读/写命令位为0,那么与外部调试 命令相关联的数据写入由寄存器选择字段254指定的寄存器。如果读/写命令位为1,那么 读取包含在由寄存器选择字段254指定的寄存器中的数据。在一个实施例中,对只读或只 写寄存器,忽略读/写命令。寄存器选择字段254定义哪一寄存器是用于读取操作的源寄 存器或用于写入操作的目的寄存器。在一个实施例中,假定忽略对只读存储器的写入。图20根据本发明的一个实施例以表格的形式示例说明可以用在寄存器选择字段 254中的寄存器地址。另外的实施例可以不同地定义寄存器地址。例如,参考图20,用于寄存器选择字段254的值0100000表示调试寄存器42中的IACl寄存器,如行276中所示。 如在行298中所示,用于寄存器选择字段254的值0110000表示DBSR寄存器49。因此,行 266、276、278、280、282、284、286、288、290、294、298、300、302、304、306 和 310 的每一个示例 说明用于寄存器选择字段254的不同值,分别表示JTAG ID寄存器、IACl寄存器、IAC2寄存 器、IAC3寄存器、IAC4寄存器、DACl寄存器、DAC2寄存器、DVCl寄存器、DVC2寄存器、DBCNT 寄存器、DBSR寄存器、DBCR0-3寄存器和DBERCO寄存器。因此,在外部调试模式中,外部调 试电路14能经调试端口,向外部调试命令寄存器33提供命令。例如,在外部调试模式中, 如果硬件调试器想将调试资源分配给软件,它能提供命令,其中,将读/写命令字段设置成 0,以及将寄存器选择字段设置成0111111 (如行310中所示)。硬件调试器然后能将所需值 经调试端口写入DBERC041。如上所述,屏蔽外部调试模式中软件的读访问,以便不是软件拥有的(而是硬件 拥有的)位字段返回到0。以这种方式,通过软件操作维持一致性。然而,注意在一个实施 例中,当硬件调试器读取调试寄存器,诸如DBSR 49时,能提供其全值。即,甚至将用于被软 件拥有的那些位字段的值提供给硬件调试器。因此,通过在硬件调试器和软件调试器之间共享的调试资源,能预期硬件调试器 和软件调试器能如何同时运行。在一个实施例中,在外部调试模式中,使能调试资源的一部 分用于由调试软件使用的可用性的能力允许硬件调试器能调试软件调试器。例如,在其中 使能中断的一个实施例中,软件拥有的调试事件的出现会产生中断,然后由软件中断处理 程序处理。然后,该处理程序(即软件例程)能挂起执行或暂停处理器,以便将控制提供给 硬件调试器。用这种方式,硬件调试器能经外部调试命令寄存器33指示调试操作,由此调 试该调试软件本身。注意在另外的实施例中,可以使用其他类型的存储电路或逻辑电路来 真正对软件使能调试资源的可用性,而不是经诸如调试资源控制寄存器41这样的控制寄 存器。因为实现本发明的装置大部分来说,由本领域的技术人员已知的电子部件和电路 组成,为理解和了解本发明的基本原理和为了不混淆和混乱本发明的教导,将不会以比上 述所示所需考虑更大的程度来说明电路细节。术语“程序”,如在此所使用的,定义为在计算机系统上执行而设计的指令序列。程 序,或计算机程序可以包括子例程、功能、进程、对象方法、对象实现、可执行应用程序、jave 程序、servlet、源代码、对象代码、共享库/动态加载库和/或为在计算机系统上执行而设 计的其他指令序列。上述实施例中的一些,根据具体情况,可以使用各种不同的信息处理系统实现。例 如,尽管图1和上述论述描述了示例性信息处理结构,但仅呈现该示例性结构来提供论述 本发明的各个方面中的有用参考。当然,为论述目的,已经简化该结构的描述,以及其仅是 可以根据本发明使用的许多不同类型的适当结构的一种。本领域的技术人员将意识到,逻 辑块间的边界仅是示例性的,以及另外的实施例可以合并逻辑块或电路元件或利用各种逻 辑块或电路元件的功能的另外的分解。S卩,将理解到在此所述的结构仅是示例性的,实际上,能实现许多其他结构,其能 实现相同的功能。在摘要中,但仍然含义明确,有效地“关联”实现相同功能的部件的排列, 以便实现所需功能。因此,实现特定功能的在此组合的任何两个部件能看作彼此“关联”,以便实现所需功能,与结构或内部组件无关。同样地,如此关联的任何两个部件也能看作彼此 “可操作地连接”,或“可操作地耦合”以便实现所需功能。同样例如,在一个实施例中,系统10的所示元件是位于单个集成电路上或相同设 备内的电路。另外,系统10可以包括彼此互连的任意多个单独的集成电路或单独的设备。 例如,系统10或其一部分可以是物理电路的软或代码表示或可转换成物理电路的逻辑表 示。同样地,系统10可以嵌入任何适当类型的硬件描述语言中。此外,本领域的技术人员将意识到上述操作的功能间的边界仅是示例性的。可以 将多个操作的功能组合成单个操作,和/或可以将单个操作的功能分布在另外的操作中。 此外,另外的实施例可以包括特定操作的多个实例,以及在不同的其他实施例中,可以改变 操作的顺序。在此所述的全部或一些软件可以是数据处理系统10的接收元件,例如,来自计算 机可读介质,诸如存储器18或其他计算机系统上的其他介质。这些计算机可读介质可以是 永久的、可移动的或远程耦合到信息处理系统,诸如数据处理系统10。计算机可读介质可以 包括,例如但不是限制,下述的任意多个磁存储介质,包括磁盘和磁带存储介质;光学存 储介质,诸如光盘介质(例如CD-ROM、CD-R等等),以及数字视频盘存储介质;非易失存储 介质,包括基于半导体的存储单元,诸如FLASH存储器、EEPROM、EPROM、ROM ;铁磁数字存储 器;MRAM ;易失存储介质,包括寄存器、缓冲器或高速缓存,主存储器、RAM等等;以及数据传 输介质,包括计算机网络、点对点远程通讯设备,以及传载波传输介质,仅提到了一些。尽管在此参考具体的实施例描述了本发明,但在不背离如在下文的权利要求中所 述的本发明的范围的情况下,能做出各种改进和改变。因此,说明书和附图视为示例性的, 而不是限制,以及所有这些改进意图包括在本发明的范围内。参考具体实施例所述的任何 好处、优点或解决方案不打算解释为任一或所有权利要求的关键的、所需的或必要的特征 或元件。术语“耦合”,如在此所使用的,不打算限制为直接耦合或机械耦合。此外,术语“一” (“a”或“an”),如在此所使用的,定义为一个或多于一个。此夕卜, 在权利要求中使用引入短语,诸如“至少一个”和“一个或多个”不应当解释为暗指由不定冠 词“一” (“a”或“an”)引入的另一权利要求要素将包含该引入的权利要求要素的任何特 定权利要求限制到仅包含一个这种要素的发明,即使当相同的权利要求包含引入短语“一 个或多个”或“至少一个”以及不定冠词“一” (“a”或“an”)。对使用定冠词同理。除非另外阐述,使用术语,诸如“第一”和“第二”来任意地区分这些术语所述的要 素。因此,这些术语不一定意图表示这些要素的时间或其他优先级。附加文本1. 一种方法,包括提供集成电路,所述集成电路具有专用于调试操作的多个调试资源,其中,所述调 试操作包括由所述集成电路执行的调试软件指示的操作和由所述集成电路外的外部调试 硬件指示的操作;使能所述调试资源的第一部分的可用性,用于由所述调试软件使用,其中,确保所 述多个调试资源的第二部分由外部调试硬件专用,以及其中,所述第一部分与所述第二部 分互斥;以及
执行由使用所述调试资源的所述第一部分的至少一个调试资源的所述调试软件 指示的操作,和由使用所述调试资源的所述第二部分的至少一个调试资源的所述外部调试 硬件指示的操作。2.如陈述1所述的方法,其中,所述执行步骤进一步特征在于,当同时运行所述外 部调试硬件和所述调试软件时发生。3.如陈述1所述的方法,其中,所述提供步骤进一步特征在于,所述调试资源包括多个调试寄存器的字段以及所 述集成电路具有控制寄存器,其中,所述控制寄存器识别所述调试资源的使用;所述使能步骤进一步特征在于,响应所述外部调试硬件,加载所述控制寄存器,以 便识别所述第一部分和所述第二部分;以及基于所述控制寄存器的加载,响应于所述调试软件,设置所述多个调试寄存器的 第一调试寄存器的字段。4.如陈述3所述的方法,其中,所述使能步骤进一步特征在于,响应所述控制寄存 器,屏蔽所述第一调试寄存器的第一字段集,以便所述第一字段集不响应所述调试软件。5.如陈述1所述的方法,其中,所述提供步骤进一步特征在于,所述集成电路进一步包括控制寄存器;以及所述确保步骤进一步特征在于,所述控制寄存器识别所述第一部分和所述第二部 分。6.如陈述5所述的方法,其中,所述提供步骤进一步特征在于,所述调试资源包括调试寄存器的字段;以及所述确保步骤进一步特征在于,响应所述外部调试硬件,设立所述控制寄存器的 设置,以及所述控制寄存器使能所述调试寄存器的第一字段集,以便由所述调试软件执行, 以及使能所述调试寄存器的第二字段集,以便从所述调试软件屏蔽。7.如陈述6所述的方法,其中,所述提供步骤进一步特征在于,所述集成电路进一步包括第二控制寄存器,以及 所述调试资源包括至少一个比较器和计数器;以及所述确保步骤进一步特征在于,在定义所述调试资源的所述第一部分和所述调试 资源的所述第二部分中加载所述第二控制寄存器。8. —种集成电路,包括处理单元;多个调试资源,专用于调试操作;控制寄存器,具有多个字段,用于控制调试操作,其中每一调试操作利用所述调试资源的一部分;所述集成电路具有所有字段可用于由所述集成电路外的调试硬件使用的模式;以 及响应所述调试硬件加载的字段包括所述多个字段的第一部分并导致识别所述多 个调试资源的第一子集和所述多个调试资源的第二子集;以及所述多个调试资源的调试寄存器,具有所述第一子集中的第一字段组和所述第二 子集中的第二字段组,其中,所述第二字段组响应由所述处理单元执行的调试软件。
9.如陈述8所述的集成电路,其中,所述处理单元包括耦合到所述多个调试资源的控制电路;以及耦合到所述控制电路和所述多个调试资源的指令取得单元。10.如陈述9所述的集成电路,其中,所述多个调试资源包括专用于调试的多个寄存器。11.如陈述10所述的集成电路,其中,所述处理单元进一步包括耦合到所述控制 电路和所述多个调试资源的加载/存储单元。12.如陈述11所述的集成电路,其中,所述多个调试资源进一步包括计数器。13.如陈述12所述的集成电路,其中,所述多个调试资源进一步包括比较器。14. 一种在集成电路上运行硬件调试器和调试软件的方法,包括在所述集成电路上提供用于执行调试操作的多个调试资源;从所述多个调试资源识别调试资源的第一子集,其中,调试资源的所述第一子集 是所述硬件调试器不需要的并且可用于所述调试软件的调试资源,其中,所述硬件调试器 在所述集成电路的外部,以及从所述多个调试资源识别调试资源的第二子集,其中,资源的 所述第二子集是在识别所述第一子集的步骤中,在识别所述第一子集后,剩余的多个调试 资源;同时运行所述硬件调试器和调试软件,其中由所述集成电路执行所述调试软件;所述硬件调试器使用资源的所述第二子集而不是调试资源的所述第一子集;以及所述调试软件使用资源的所述第一子集而不是调试资源的所述第二子集。15.如陈述14所述的方法,其中,识别调试资源集的步骤进一步特征在于所述调 试资源集专用于调试。16.如陈述14所述的方法,其中,所述识别步骤进一步特征在于识别所述第一子 集自然识别了所述第二子集。17.如陈述14所述的方法,其中,所述提供步骤进一步特征在于所述调试资源包 括寄存器。18.如陈述14所述的方法,其中,同时运行所述硬件调试器和调试软件的步骤进 一步特征在于使用所述硬件调试器来调试所述调试软件。19.如陈述14所述的方法,其中所述提供步骤进一步特征在于提供具有字段的控制寄存器和调试寄存器,其中所述调试寄存器和所述控制寄存器在所述集成电路上,以及所述控制寄存器响应所述调试软件,指定所述调试资源的使用;所述识别步骤进一步特征在于使用所述硬件调试器来加载所述控制寄存器,以便 屏蔽所述调试寄存器的第一字段组;以及同时运行的步骤进一步特征在于从所述第一字段组屏蔽所述调试软件。20.如陈述14所述的方法,其中所述提供步骤进一步特征在于具有控制寄存器和调试寄存器,其中所述控制寄存器具有多个字段,用于控制调试操作;每一调试操作识别所述调试资源的一部分的使用;
所述集成电路具有所有字段可用于由所述集成电路外的所述硬件调试器使用的 模式;以及识别调试资源的所述第一子集的步骤进一步特征在于响应所述硬件调试器,加载 所述控制寄存器的多个字段的第一子集,由此字段的所述第一子集定义调试资源的所述第
一子集。
权利要求
一种方法,包括提供集成电路,所述集成电路具有专用于调试操作的多个调试资源,其中,所述调试操作包括由所述集成电路执行的调试软件指示的操作和由所述集成电路外的外部调试硬件指示的操作;使能所述调试资源的第一部分的可用性,用于由所述调试软件使用,其中,确保所述多个调试资源的第二部分由外部调试硬件专用,以及其中,所述第一部分与所述第二部分互斥;以及执行由使用所述调试资源的所述第一部分的至少一个调试资源的所述调试软件指示的操作,和由使用所述调试资源的所述第二部分的至少一个调试资源的所述外部调试硬件指示的操作。
2.如权利要求1所述的方法,其中,所述执行步骤进一步特征在于,当同时运行所述外 部调试硬件和所述调试软件时发生。
3.如权利要求1所述的方法,其中,所述提供步骤进一步特征在于,所述调试资源包括多个调试寄存器的字段以及所述集 成电路具有控制寄存器,其中,所述控制寄存器识别所述调试资源的使用;所述使能步骤进一步特征在于,响应所述外部调试硬件,加载所述控制寄存器,以便识 别所述第一部分和所述第二部分;以及基于所述控制寄存器的加载,响应于所述调试软件,设置所述多个调试寄存器的第一 调试寄存器的字段。
4.如权利要求3所述的方法,其中,所述使能步骤进一步特征在于,响应所述控制寄存 器,屏蔽所述第一调试寄存器的第一字段集,以便所述第一字段集不响应所述调试软件。
5.如权利要求1所述的方法,其中,所述提供步骤进一步特征在于,所述集成电路进一步包括控制寄存器;以及 所述确保步骤进一步特征在于,所述控制寄存器识别所述第一部分和所述第二部分。
6.如权利要求5所述的方法,其中,所述提供步骤进一步特征在于,所述调试资源包括调试寄存器的字段;以及 所述确保步骤进一步特征在于,响应所述外部调试硬件,设立所述控制寄存器的设置, 以及所述控制寄存器使能所述调试寄存器的第一字段集,以便由所述调试软件执行,以及 使能所述调试寄存器的第二字段集,以便从所述调试软件屏蔽。
7.如权利要求6所述的方法,其中,所述提供步骤进一步特征在于,所述集成电路进一步包括第二控制寄存器,以及所述 调试资源包括至少一个比较器和计数器;以及所述确保步骤进一步特征在于,在定义所述调试资源的所述第一部分和所述调试资源 的所述第二部分中加载所述第二控制寄存器。
8.一种集成电路,包括 处理单元;多个调试资源,专用于调试操作; 控制寄存器,具有多个字段,用于控制调试操作,其中 每一调试操作利用所述调试资源的一部分;所述集成电路具有所有字段可用于由所述集成电路外的调试硬件使用的模式;以及 响应所述调试硬件加载的字段包括所述多个字段的第一部分并导致识别所述多个调 试资源的第一子集和所述多个调试资源的第二子集;以及所述多个调试资源的调试寄存器,具有所述第一子集中的第一字段组和所述第二子集 中的第二字段组,其中,所述第二字段组响应由所述处理单元执行的调试软件。
9.如权利要求8所述的集成电路,其中,所述处理单元包括 耦合到所述多个调试资源的控制电路;以及耦合到所述控制电路和所述多个调试资源的指令取得单元。
10.如权利要求9所述的集成电路,其中,所述多个调试资源包括专用于调试的多个寄存器。
11.如权利要求10所述的集成电路,其中,所述处理单元进一步包括耦合到所述控制 电路和所述多个调试资源的加载/存储单元。
12.如权利要求11所述的集成电路,其中,所述多个调试资源进一步包括计数器。
13.如权利要求12所述的集成电路,其中,所述多个调试资源进一步包括比较器。
14.一种在集成电路上运行硬件调试器和调试软件的方法,包括 在所述集成电路上提供用于执行调试操作的多个调试资源;从所述多个调试资源识别调试资源的第一子集,其中,调试资源的所述第一子集是所 述硬件调试器不需要的并且可用于所述调试软件的调试资源,其中,所述硬件调试器在所 述集成电路的外部,以及从所述多个调试资源识别调试资源的第二子集,其中,资源的所 述第二子集是在识别所述第一子集的步骤中,在识别所述第一子集后,剩余的多个调试资 源;同时运行所述硬件调试器和调试软件,其中 由所述集成电路执行所述调试软件;所述硬件调试器使用资源的所述第二子集而不是调试资源的所述第一子集;以及 所述调试软件使用资源的所述第一子集而不是调试资源的所述第二子集。
15.如权利要求14所述的方法,其中,识别调试资源集的步骤进一步特征在于所述调 试资源集专用于调试。
16.如权利要求14所述的方法,其中,所述识别步骤进一步特征在于识别所述第一子 集自然识别了所述第二子集。
17.如权利要求14所述的方法,其中,所述提供步骤进一步特征在于所述调试资源包 括寄存器。
18.如权利要求14所述的方法,其中,同时运行所述硬件调试器和调试软件的步骤进 一步特征在于使用所述硬件调试器来调试所述调试软件。
19.如权利要求14所述的方法,其中所述提供步骤进一步特征在于提供具有字段的控制寄存器和调试寄存器,其中 所述调试寄存器和所述控制寄存器在所述集成电路上,以及 所述控制寄存器响应所述调试软件,指定所述调试资源的使用; 所述识别步骤进一步特征在于使用所述硬件调试器来加载所述控制寄存器,以便屏蔽 所述调试寄存器的第一字段组;以及同时运行的步骤进一步特征在于从所述第一字段组屏蔽所述调试软件。
20.如权利要求14所述的方法,其中所述提供步骤进一步特征在于具有控制寄存器和调试寄存器,其中 所述控制寄存器具有多个字段,用于控制调试操作; 每一调试操作识别所述调试资源的一部分的使用;所述集成电路具有所有字段可用于由所述集成电路外的所述硬件调试器使用的模式;以及识别调试资源的所述第一子集的步骤进一步特征在于响应所述硬件调试器,加载所述 控制寄存器的多个字段的第一子集,由此字段的所述第一子集定义调试资源的所述第一子集。
全文摘要
一种方法,包括具有多个调试资源(42)的集成电路(12)。调试资源专用于调试操作。调试操作包括由集成电路执行的调试软件指示的操作和由集成电路外的外部调试硬件(14)指示的操作。该方法进一步包括使能调试资源的第一部分的可用性,用于由调试软件使用,其中,确保调试资源的第二部分专用于外部调试硬件。第一部分与第二部分互斥。该方法包括执行由使用调试资源的第一部分的至少一个调试资源的调试软件指示的操作,以及执行由使用调试资源的第二部分的至少一个调试资源的外部调试硬件指示的操作。
文档编号G06F11/26GK101946236SQ200980105425
公开日2011年1月12日 申请日期2009年1月23日 优先权日2008年2月29日
发明者威廉·C·莫耶, 阿利斯泰尔·P·罗伯逊, 雷·C·马歇尔 申请人:飞思卡尔半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1