硬件/软件调试转让专利

申请号 : CN201280022599.8

文献号 : CN103649925B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : P·梅斯森M·马伯格

申请人 : 瑞典爱立信有限公司

摘要 :

以便于调试包括在包含系统存储器的系统中的一个或多个硬件和/或软件组件的方式来操作调试电路。调试电路接收来自硬件和/或软件中的一个和/或来自系统存储器的信息,并且判明所接收的信息是否包括存储器地址参数。如果所接收的信息包括存储器地址参数,则存储器地址参数用于从系统存储器中检索数据。在调试电路的输出端口处提供所检索的数据。

权利要求 :

1.一种操作调试电路以便于调试包括在包含系统存储器的系统中的一个或多个硬件和/或软件组件的方法,所述方法包括:所述调试电路执行:

接收来自所述硬件和/或软件组件中的一个和/或来自所述系统存储器的信息,其中所接收的信息能够但不必包括存储器地址参数;

分析所接收的信息来判明所接收的信息是否包括存储器地址参数;

如果所接收的信息包括存储器地址参数,则使用所述存储器地址参数从所述系统存储器中检索已经由所述硬件和/或软件组件中的所述一个存储到所述系统存储器中的数据;

以及

在所述调试电路的输出端口处提供所检索的数据和所接收的信息。

2.如权利要求1所述的方法,包括:

将时间戳与所检索的数据关联;

在所述调试电路的所述输出端口处提供所述时间戳。

3.如权利要求1所述的方法,包括:

在所述调试电路的所述输出端口处提供所接收的信息。

4.如权利要求3所述的方法,其中所接收的信息和所检索的数据复用到所述调试电路的所述输出端口。

5.如权利要求3所述的方法,其中不管所接收的信息是否包括存储器地址参数,都执行在所述调试电路的所述输出端口处提供所接收的信息。

6.如权利要求1所述的方法,包括:

在所述调试电路的本地存储器中存储所检索的数据,其中在所述调试电路的所述输出端口处提供所检索的数据包括从所述调试电路的所述本地存储器中检索所检索的数据,并在所述调试电路的所述输出端口处提供所检索的数据。

7.如权利要求1所述的方法,其中:

所接收的信息包括所接收信息是否是与调试相关的信息的指示;以及基于所接收的信息的指示是否指示所述信息是与调试相关的信息,有条件地执行权利要求1的一个或多个步骤。

8.如权利要求1所述的方法,其中基于是否满足一个或多个预定标准,有条件地执行权利要求1的一个或多个步骤。

9.如权利要求1所述的方法,其中:

所接收的信息包括存储器范围信息;以及

基于所述存储器范围信息是否满足一个或多个预定标准,有条件地执行权利要求1的一个或多个步骤。

10.如权利要求1所述的方法,其中:

所接收的信息包括所接收的信息的来源的标识符;以及基于所接收的信息的所述来源的所述标识符是否满足一个或多个预定标准,有条件地执行权利要求1的一个或多个步骤。

11.如权利要求1所述的方法,其中所接收的信息包括关于哪个或哪些硬件和/或软件组件正在运行的信息。

12.一种用于便于调试包括在包含系统存储器的系统中的一个或多个硬件和/或软件组件的设备,所述设备包括:配置为从所述硬件和/或软件组件中的一个和/或从所述系统存储器接收信息的电路,其中所接收的信息能够但不必包括存储器地址参数;

配置为分析所接收的信息来判明所接收的信息是否包括存储器地址参数的电路;

配置为通过使用所述存储器地址参数从所述系统存储器中检索已经由所述硬件和/或软件组件中的所述一个存储到所述系统存储器中的数据来响应所接收的信息包括存储器地址参数的电路;以及配置为在所述设备的输出端口处提供所检索的数据和所接收的信息的电路。

13.如权利要求12所述的设备,包括:配置为将时间戳与所检索的数据关联的电路;以及配置为在所述设备的所述输出端口处提供所述时间戳的电路。

14.如权利要求12所述的设备,包括:配置为在所述设备的所述输出端口处提供所接收的信息的电路。

15.如权利要求14所述的设备,其中所接收的信息和所检索的数据复用到所述设备的所述输出端口。

16.如权利要求14所述的设备,其中配置为在所述设备的所述输出端口处提供所接收的信息的所述电路不管所接收的信息是否包括存储器地址参数。

17.如权利要求12所述的设备,包括:配置为在所述设备的本地存储器中存储所检索的数据的电路;

其中配置为在所述设备的所述输出端口处提供所检索的数据的所述电路包括配置为从所述设备的所述本地存储器中检索所检索的数据并在所述设备的所述输出端口处提供所检索的数据的电路。

18.如权利要求12所述的设备,其中:所接收的信息包括所接收的信息是否是与调试相关的信息的指示;以及所述设备的一个或多个组件配置为基于所接收的信息的指示是否指示所述信息是与调试相关的信息来有条件地操作。

19.如权利要求12所述的设备,其中所述设备的一个或多个组件配置为基于是否满足一个或多个预定标准来有条件地操作。

20.如权利要求12所述的设备,其中:所接收的信息包括存储器范围信息;以及

所述设备的一个或多个组件配置为基于所述存储器范围信息是否满足一个或多个预定标准来有条件地操作。

21.如权利要求12所述的设备,其中:所接收的信息包括所接收信息的来源的标识符;以及所述设备的一个或多个组件配置为基于所接收的信息的所述来源的所述标识符是否满足一个或多个预定标准来有条件地操作。

22.如权利要求12所述的设备,其中所接收的信息包括关于哪个或哪些硬件和/或软件组件正在运行的信息。

说明书 :

硬件/软件调试

背景技术

[0001] 本发明涉及调试硬件和/或软件组件。
[0002] 在实时计算系统中的关键问题是识别系统的软件和/或硬件组件中的错误的能力。当计算环境集成在硅芯片上时,提供足够的系统可观测性,以使得在运行时间期间能够捕获软件和/或硬件错误,这可以是非常复杂和昂贵的。(可观测性是通过直接观测或利用推理可以判明系统中各种状态达到哪种程度的度量。)此复杂性和成本的结果是系统仅具有有限的可观测性,并因此仅具有有限的能力来识别运行时的错误。甚至当检测到错误时,在常规系统中以能够捕获引起错误的根源的方式配置系统通常是困难的。
[0003] 更深刻的问题是当被调试/测试的系统包括大量能够彼此通信并以互动方式执行任务的独立操作单元时,使得任务的一些部分由一个单元来执行,并且任务的一个或多个其它部分由一个或多个其它单元来执行。
[0004] 因此希望提供一种改善现有技术的改进的调试设备和方法。

发明内容

[0005] 应该强调的是当在此说明书中使用术语“包含”和“包括”时,用来规定所陈述的特征、整数、步骤或组件的存在;但是这些术语的使用不排除一个或多个其它特征、整数、步骤、组件或其组的存在或添加。
[0006] 根据本发明的一个方面,在用于操作调试电路以便于包括在包含系统存储器的系统中的一个或多个硬件和/或软件组件的调试的方法和设备中,达到至少一些前述和其它目标。这样的操作包括调试电路执行从硬件和/或软件组件中的一个和/或从系统存储器中接收信息。然后判明所接收的信息是否包括存储器地址参数。如果所接收的信息包括存储器地址参数,则存储器地址参数用于从系统存储器检索数据。将所检索的数据提供到调试电路的输出端口处。
[0007] 在另一方面,调试电路的操作进一步包括将时间戳与所检索的数据关联;并且提供时间戳到调试电路的输出端口处。
[0008] 在另一方面,将所接收的信息提供到调试电路的输出端口处。
[0009] 在一些但未必所有实施例的另一方面,所接收的信息和所检索的数据在调试电路的输出端口上复用。
[0010] 在这样的实施例的另一方面,不论所接收的信息是否包括存储器地址参数,都执行在调试电路的输出端口处提供所接收的信息。
[0011] 在另一方面,所检索的数据存储在调试电路的本地存储器中,并且在调试电路的输出端口处提供所检索的数据包括从调试电路的本地存储器中检索所检索的数据并在调试电路的输出端口处提供所检索的数据。
[0012] 在另一方面,所接收的信息包括所接收的信息是否是与调试相关的信息的指示;以及基于所接收的信息的指示是否指示信息是与调试相关的信息,有条件地执行一个或多个调试步骤。
[0013] 在一些但未必所有实施例的另一方面,基于一个或多个预定标准是否被满足,可以有条件地执行上面描述的步骤中的某些步骤。例如,在一些实施例中,所接收的信息包括存储器范围信息,以及基于存储器范围信息是否满足一个或多个预定标准,有条件地执行一个或多个上述的步骤。在另一示例中,在一些实施例中,所接收的信息包括所接收的信息的来源的标识符,以及基于所接收的信息的来源的标识符是否满足一个或多个预定标准,有条件地执行一个或多个上述步骤。
[0014] 在另一方面,所接收的信息包括关于哪个或哪些硬件和/或软件组件正在运行的信息。

附图说明

[0015] 通过结合附图阅读以下详细描述将理解本发明的目标和优点,附图中:
[0016] 图1是能够提供实时计算功能的示范性系统的框图。
[0017] 图2是具有与本发明的一个或多个方面一致的元件的示范性调试单元的框图。
[0018] 图3是在一个方面中根据本发明的一些实施例执行步骤/过程的流程图。

具体实施方式

[0019] 现在将通过参考附图来描述本发明的各种特征,其中以相同的参考字符标识相似的部分。
[0020] 现在将结合多个示范性实施例来更详细地描述本发明的各方面。为便于理解本发明,在要由计算机系统的元件或能够执行经编程指令和/或根据所存储的配置数据来操作的其它硬件来执行的动作序列方面,描述了本发明的许多方面。将意识到,在每个实施例中,可以通过专用电路(例如,互联以执行专用功能的模拟和/或离散逻辑门),通过利用一组合适的指令编程的一个或多个处理器,或通过二者的组合,来执行各种动作。术语“电路配置为”执行一个或多个所描述的动作在本文用于提及任何这样的实施例(例如,一个或多个专用电路和/或一个或多个经编程的处理器)。此外,本发明也可被认为完全包含在任何形式的计算机可读载体中,例如包含会引起处理器执行本文所描述的技术的一组适当的计算机指令的固态存储器、磁盘、或光盘。因此,本发明的各方面可以采用多种不同形式实施,并且预期所有这样的形式都在本发明的范围内。对于本发明的各方面中的每个,如以上所描述的实施例的任何这样的形式在本文可被称为“逻辑配置为”执行所描述的动作,或备选地称为执行所描述的动作的“逻辑”。
[0021] 图1是能提供实时计算功能的示范性系统100的框图。也即是说,系统100不仅能够执行所定义的一组功能,而且还能够以满足在功能上施加的时序约束的方式来执行这组功能。
[0022] 示范性系统包括任意数量(n个)硬件/软件单元,其指代为HW/SW单元1、HW/SW单元2、HW/SW单元3、…、HW/SW单元n。系统100包括系统存储器101。系统的输入/输出功能由能够与外部电路(未示出)连接的外部连接单元103提供。
[0023] 从硬件/软件单元HW/SW单元1、HW/SW单元2、HW/SW单元3、…、HW/SW单元n中选择的硬件/软件单元的任何任意选择的一对的功能可以彼此相同或可以彼此不相同。
[0024] 调试功能由包括在系统100内的调试单元105提供。
[0025] 上述元件中的任何一个(即,硬件/软件单元HW/SW单元1、HW/SW单元2、HW/SW单元3、…、HW/SW单元n、系统存储器101、外部连接单元103和调试单元105中的任何一个)能够通过连接电路107与上述元件中的任何其它一个(即,硬件/软件单元HW/SW单元1、HW/SW单元
2、HW/SW单元3、…、HW/SW单元n、系统存储器101、外部连接单元103和调试单元105中的任何一个)通信。连接电路107能够通过任何总线架构来实现,其能够使作为来源起作用的任何一个单元与作为目的地起作用的任何其它一个单元进行通信。仅为举例而不是限制的目的,合适的总线技术包括总线网络架构、环形网络和星形网络。
[0026] 在一个方面中,调试单元105通过接收来自系统100内的一个或多个其它单元的信息来监视系统100内发生的活动,并且经由外部调试接口使得信息可用于外部调试工具。
[0027] 在与本发明一致的实施例的一方面中,调试单元105通过利用所接收的信息增强系统100的可观测性以判明包括感兴趣的数据的系统存储器101的部分、检索感兴趣的数据、并经由外部调试接口提供感兴趣的数据给外部调试工具。
[0028] 图2是具有与本发明一个或多个方面一致的元件的示范性调试单元200的框图。示范性调试单元200包括与存储器单元203双向耦合的可编程处理器201。存储器单元203包括一组程序指令(“调试SW”)205,当由处理器201执行时,程序指令205使得处理器201执行由程序指令205规定的功能。在此实施例中,存储器203也包括用于存储由处理器201收集或以其它方式生成的其它数据207的空间。在其它实施例中,此数据可以存储在独立单元中。在其它备选方案中,其也可以不存储,而是改为一旦其对于调试单元200是可用的,就直接向到外部调试电路209的接口(“I/F”)提供。到外部调试电路209的接口与处理器201双向耦合,使得能够从外部设备(未示出)接收指令或其它调试参数,并且使得能够提供所收集/所生成的调试信息给那个设备。
[0029] 如之前所提及的,调试单元200能够通过连接电路107与其它系统单元进行通信。因此,调试单元200进一步包括到连接电路的接口211。到连接电路的接口211具有双向耦合到处理器201。
[0030] 调试单元200被配置为根据上面描述的以及如将结合图3进一步描述的功能进行操作。将意识到,为了便于描述,通过可编程电路来实现示范性调试单元200。除此以外,其它实施例也在本发明的范围内,例如完全硬连线的实施例,只要它们实现本文所描述的功能即可。
[0031] 在一个方面,图3是根据本发明的一些实施例执行的步骤/过程的流程图。在另一方面,图3是电路300的框图,该电路300配置为在系统中实现调试功能(例如但不限于在图1中描绘的调试功能)。
[0032] 调试电路300接收来自硬件和/或软件组件(例如图1中所描述的那些硬件和/或软件组件)中的一个的信息(步骤301)。例如,该信息可以表示已经从单元HW/SW单元1、HW/SW单元2、HW/SW单元3、…、HW/SW单元n、外部连接单元103中一个发送到单元HW/SW单元1、HW/SW单元2、HW/SW单元3、…、HW/SW单元n、外部连接单元103中的另一个的消息。以此方式,调试单元300能够“察觉”在系统100内发生的活动并且由此收集要报告给外部调试设备的调试信息。也就是说,所接收的信息能够指示哪个或哪些硬件和/或软件组件正在运行。
[0033] 在一些但未必所有实施例的一方面,单元HW/SW单元1、HW/SW单元2、HW/SW单元3、…、HW/SW单元n中的任何一个或多个适合于发送至少一些调试信息(其指示哪个或哪些硬件和/或软件组件正在运行)给系统存储器101,并且系统存储器101(或与系统存储器关联的逻辑电路)被配置为将调试信息转发给调试单元300。这可以是用于调试单元300的调试信息的唯一来源,或者可以还有上面描述的调试单元的“察觉”活动。
[0034] 由调试电路300接收的调试信息可以(但可以不必)包括存储器地址参数(例如,开始地址和长度),以识别通过HW/SW单元1、HW/SW单元2、HW/SW单元3、…、HW/SW单元n、外部连接单元103中的一个存储到系统存储器101中的数据的位置。由于此可能性,调试单元300判明所接收的信息是否包括存储器地址参数(判定块303)。
[0035] 如果所接收的信息包括存储器地址参数(出自判定块303的“是”路径),则调试单元300使用那些存储器参数来检索来自系统存储器101的数据(步骤305)。
[0036] 在某些点处,确定所收集的调试信息是否应该报告给外部设备(判定块307),并且如果是(出自判定块307的“是”路径),则通过将所收集的信息(包括任何从系统存储器101收集的数据)提供给调试电路300的输出端口来将其报告给外部设备(步骤309)。在一些但未必所有实施例中,通过将从系统存储器101所收集的数据和所收集的调试信息复用到调试电路300的相同输出端口来将其报告给外部设备。确定所收集的调试信息是否应该报告给外部设备例如可以包括:具有所接收的信息是否是与调试相关的信息的指示(例如,“调试标记/位”),以及基于该指示的状态,有条件地收集和/或报告调试信息给外部设备(例如,只有当调试标记/位指示被“察觉”的信息是与调试相关的信息时,执行调试信息的收集和/或报告)。
[0037] 在一些但未必所有实施例中,确定所收集的调试信息是否应该报告给外部设备(判定块307)包括(通过自身或还有上面描述的指示(例如,“调试标记/位”)),基于所接收存储器范围信息是否满足一个或多个预定标准,或所收集的调试信息的来源的标示符是否满足一个或多个预定标准的判定。
[0038] 如果所接收的信息不包括存储器地址参数(出自判定块303的“否”路径),则不需要访问系统存储器101,并且处理直接前进到判定块307。
[0039] 各种实施例可以与图3所示的实施例不同。例如,在其它实施例中,时间戳与所检索的数据关联。时间戳与所检索的数据一起提供到调试电路的输出端口处。具有时间戳的信息可以便于调试活动。
[0040] 在一些实施例中,一旦已经收集的调试信息(例如,一般而言所接收的信息和/或从系统存储器101所收集的数据)在调试单元300中可用,就将其提供给外部设备。在备选实施例中,所收集的数据(包括从系统存储器101的检索的数据)不被立即报告给外部设备,而是改为存储在调试单元300的本地存储器、例如图2中所示的存储器203(参见例如所收集的数据207)中。在这样的实施例中,在调试电路的数据端口处提供所检索的数据包括从调试电路的本地存储器中检索所检索的数据,并在调试电路的输出端口处提供所检索的数据。
[0041] 与本发明一致的各实施例提供增强的调试能力。有利的特性包括简单的可置配性、以及及时在特定点处追踪共享存储器的内容的能力,即使该系统是异步驱动的。
[0042] 已经通过参考特定实施例描述了本发明。然而,对本领域技术人员而言,有可能采用与上面所描述的实施例的那些形式不同的特定形式来实施本发明将是很明显的。所描述的实施例仅是说明性的,而不应以任何方式考虑为限制性的。本发明的范围由所附权利要求而不是在前描述给出,并且旨在将落入到权利要求的范围内的全部变化和等效包含于其中。