一种用于生成调试消息(82)的方法包括接收(69、71)与同一处理器操作关联的翻译地址和未翻译地址,确定一个或更多个控制指示符(PTAS、DTAS)的值,基于一个或更多个控制指示符的值,将翻译地址或未翻译地址选择为选定地址,以及使用选定地址中的至少一部分创建(64)调试消息。
【技术实现步骤摘要】
【国外来华专利技术】
本公开通常涉及半导体,更具体地,涉及实现用于监控系统中的信息的调试电路 的数据处理系统。
技术介绍
被称为IEEE IST05001的IEEE标准或者Nexus调试标准是所制定的支持实时调 试消息生成的实时调试标准。Nexus调试标准规范了用于针对外部跟踪重建工具识别系统 中的预定的操作条件的机制。在用于数据处理系统的代码开发中也使用调试处理。在不妨 碍数据处理系统的正常操作的情况下,实时地提供调试信息对于保持系统操作的透明性是 极为期望的。调试消息由数据处理系统生成,其包含关于程序事件(程序跟踪消息传递)或者 数据事件(数据读取消息传递、数据写入消息传递)的地址和数据信息,以及其他调试信 息。地址信息典型地是虚拟地址信息,其是必须被翻译以识别被称为物理地址的物理存储 器位置的格式。地址与经历执行的程序的相关性是调试处理的重要部分,从而可以监控实 际的程序流和系统数据变量的动态值。必须执行虚拟到物理地址的映射或者翻译。然而, 外部调试器典型地没有用于快速地翻译调试消息的地址部分所需的虚拟到物理映射信息, 特别是在这些映射因要求分页或其他重映射操作而动态改变时。虚拟地址的使用向调试用 户提供了用于经由如下程序列表来跟踪计算机程序的直接方式,所述程序列表是通过针对 软件应用程序的文本和数据部分使用虚拟地址的编译和链接功能而获得的。用户典型地不 了解操作系统(OS)如何将虚拟地址翻译为物理地址。因此,需要跟踪以指示虚拟地址。不 幸地,某些程序列表是不可用的,诸如关于在运行时执行的预编译软件模块的程序列表。这 些模块的示例是OS调用和库函数。在该示例中,没有程序列表是可用的。因此非常难于适 当地跟踪和解释所执行的程序的这些部分。正确地将虚拟地址翻译为物理地址需要了解程 序计数器所处的位置并且检查物理存储器以确定地址的位置。对于执行多个程序的系统, 存储器映射动态地变化并且容易地在存储器页之间变换。在这些情形中,地址翻译明显地 减慢了调制消息的生成和解释,妨碍了实时执行。附图说明本专利技术借助于示例进行说明并且不限于附图,在附图中相同的附图标记表示相似 的元件。图中的元件被说明用于简单和清楚的目的并且没有必要依比例绘制。图1以框图形式图示了具有根据本专利技术的一种形式的调试消息生成的数据处理 系统;图2以框图形式图示了图1的调试电路的一种形式;图3以图的形式图示了图2的开发控制寄存器的一种形式;图4以表格的形式图示了图3的开发控制寄存器中的控制字段的示例性编码;图5以图的形式图示了示例性程序跟踪消息;以及图6以图的形式图示了示例性数据跟踪消息。 具体实施例方式图1中图示了生成调试消息的数据处理系统10,该调试消息具有可由用户控制动 态选择的类型的地址类型。如这里使用的,术语“地址类型”指的是诸如翻译地址相对未翻 译地址的各种类别的地址。未翻译地址的示例包括逻辑地址、虚拟地址和有效地址。翻译 地址的示例包括真实地址和物理地址。在已根据有效地址翻译了虚拟地址的情况中,翻译 地址还可以包括虚拟地址。全局互连12位于数据处理系统10中。在一种形式中,全局互 连12是系统总线。可以使用其他形式的互连,包括例如,交叉开关、点对点连接以及光和无 线传送技术。总线接口单元14经由双向耦合耦合到全局互连12。在一种形式中,该双向耦 合是双向的多导体总线,其中这里的多导体总线由跨越导体的斜线表示。总线接口单元14 双向耦合到地址翻译逻辑单元16,其用作存储器管理单元(MMU)。地址翻译逻辑单元16经 由双向多导体总线耦合到全局控制电路18的第一输入/输出端子。全局控制电路18的第 二输入/输出端子经由双向多导体总线耦合到取指令单元20的第一输入/输出端子。取 指令单元20具有经由多导体总线耦合到指令解码器22的输入的输出。指令解码器的输出 耦合到执行单元M的输入。在一种形式中,执行单元包括至少一个算术逻辑单元、至少一 个浮点单元和至少一个乘法器电路。寄存器文件25位于执行单元M中。指令解码器22 的输入/输出端子耦合到全局控制电路18的第三输入/输出端子。执行单元M的输入/ 输出端子耦合到全局控制电路18的第四输入/输出端子。调试电路沈具有耦合到全局控 制电路18的第五输入/输出端子的输入/输出端子。加载/存储单元观具有双向耦合到 全局控制电路18的第六输入/输出端子的输入/输出端子。加载/存储单元观具有耦合 到总线接口单元14的第一输出的输入。总线接口单元14的第二输出耦合到全局控制电路 18的输入。加载/存储单元观的输出提供了数据未翻译地址并且耦合到地址翻译逻辑单 元16的第一输入和调试电路沈的第一输入。取指令单元20的输出提供了指令未翻译地 址并且耦合到地址翻译逻辑单元16的第二输入和调试电路沈的第二输入。地址翻译逻辑 单元16的第一输出提供了数据翻译地址并且耦合到总线接口单元14的第一输入和调试电 路沈的第三输入。地址翻译逻辑单元16的第二输出提供了指令翻译地址并且耦合到总线 接口单元14的第二输入和调试电路沈的第四输入。存储器30经由双向耦合耦合到全局 互连12。存储器30具有作为非用户代码或库函数代码32的第一代码部分。该代码部分表 示例如,用于实现特定功能或任务并且提供固定数据值的代码。这些指令集简化了工作并 且防止每当需要执行特定任务时的重复劳动。库函数代码32防止每当需要时编程人员必 须重写指令自身。库函数代码32包括关于特定的编程语言的标准子程序。存储器30具有 作为用户代码;34并且作为由数据处理系统10的用户提供的软件的第二代码部分。用户代 码或程序因此不同于运行计算机的操作系统和执行维护或一般用途杂务的实体程序。依赖 于所需的实现方案,用户代码34可以操纵文本、数字、图形或者这些元素的组合。一些用户 代码通过集中于诸如字处理的单个任务而提供了可观的计算能力。其他用户代码实现了较 少的处理能力但是包括若干个应用程序,例如字处理、电子数据表格和数据库程序。用户代 码可以具有实现任何算法的任何类型,包括实时嵌入控制算法。库函数代码32还可以包括 OS代码,或者OS代码可以在库函数代码32或用户代码34外部分立地位于存储器32中。调试电路沈具有经由双向多导体耦合到多个调试端子40的第二输入/输出端子。多个调 试端子40耦合到通常被称为调试器或外部调试器的外部开发系统36。在图示形式中,如图 1中的虚线编组所指示的那样,总线接口单元14、地址翻译逻辑单元16、全局控制电路18、 取指令单元20、指令解码器22、具有寄存器文件25的执行单元M、调试电路和加载/存储 单元观共同形成了数据处理器42。尽管图1在单独的位置图示了全局控制电路18,但是 应当理解,全局控制电路18的电路和功能控制也可以以分布式方式来实现,并且可以被包 括在数据处理系统10的各种其他系统模块中的任何模块中。 在操作中,数据处理系统10经由全局互连12与设备(未示出)通信。与数据处 理器42通信的所有信息通过总线接口单元14传输。取指令单元20在全局控制电路18的 控制下从总线接口单元14取回数据处理指令。取回的指令被连续传递到指令解码器22用 于在全局控制电路18的控制下解码。执行单元M执行指令并且生成数据,该数据经由通 过全局控制本文档来自技高网...
【技术保护点】
1.一种用于生成调试消息的方法,所述方法包括:接收与同一处理器操作关联的翻译地址和未翻译地址;确定一个或更多个控制指示符的值;基于所述一个或更多个控制指示符的值,将所述翻译地址或所述未翻译地址选择为选定地址;以及使用所述选定地址中的至少一部分创建调试消息。
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:W·C·莫耶,
申请(专利权)人:飞思卡尔半导体公司,
类型:发明
国别省市:US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。