您的位置:控制工程论坛网论坛 » 电机与运动控制 » 仿真器实时跟踪(Trace)功能的剖析与应用

programmer

programmer   |   当前状态:离线

总积分:60  2024年可用积分:0

注册时间: 2005-11-26

最后登录时间: 2018-05-11

空间 发短消息加为好友

仿真器实时跟踪(Trace)功能的剖析与应用

programmer  发表于 2005/12/14 9:26:01      1935 查看 3 回复  [上一主题]  [下一主题]

手机阅读

Trace(跟踪)是仿真技术中最为重要的一部分功能,也是最能体现仿真技术层次的一 组功能。国际上几乎所有的微处理器开发系统都含有此部分功能,没有此部分功能的廉价仿 真器几乎已没有市场。在国内,含有此功能的仿真器相对来说还比较少。究其原因,一方面 是技术上实现还有困难;其次,国内大多数用户对 Trace 在仿真时的作用还不甚了解。本文 就对仿真器的这种实时跟踪(Trace)功能及作用作一些较深入的剖析。 一. 什么是 Trace 功能? Trace 功能,中文解释即连续记录程序执行过程的功能,英文解释即“A history of what happened”。这里要强调的是“连续”两字。一般来说,采集频率通常采用两种方式,即机 器周期(cycle)方式和时钟周期(clock)方式。时钟周期方式要求的技术更高,也有它存 在的必要性,尤其在高档 CPU 上。机器周期方式,是连续记录每一个机器周期的变化,而 且应该是零等待地实现,即该指令在用户目标总线上实际执行的时候,它也被同时记录到仿 真器的一块缓冲区中,一般称为“Trace Buffer”。时钟周期方式,是连续记录每一个时钟周 期的变化。为什么有些仿真器需要采用时钟周期方式呢?因为在 386 以上的 CPU 中,CPU 内部含有 Cache,出现在总线上的指令数据不一定会真正地执行。为了真实再现执行过程, 必须采用更加细密的采集频率才能得到指令在用户目标总线上实际执行过程。另外,是否能 实现零等待也是仿真器非常关键的地方,主要取决于仿真器中的 Trace 逻辑电路的设计和采 用的 Trace RAM 有多快。而实现零等待(real-time)Trace 的意义在于用户可完全信赖 Trace 提供的各种信息以及信息和时间的对应关系,这对于用户关心一段程序执行花了多少时间的 时候就特别有用。说到这里,用户可能会问 Trace 到底提供了哪些信息? 二. Trace 功能可提供的信息 先举一个按机器周期采样的例子,如 8051 系列 CPU,一般用户会在仿真器 Trace 显示 窗口中看到如下一些信息:地址(16-bit),数据(8-bit),总线状态(3-bit), 外部被跟踪信 号(5~8 个通道), I/O 口数据传送情况(8-bit),可能还会包含时间信息(每一个 cycle 的)。 所有以上这些信息在每一个机器周期组成了一个信息单位,一般称为“帧”( Frame),也就 是 Trace Buffer 的宽度,而 Trace Buffer 的深度即表示用户可检索多少个机器周期。一般为 几到几十 K 不等。 三. Trace 功能的用途 Trace 功能的意义在于把简单的逻辑调试器上升到逻辑、时序都能调试的实时在线仿真 器。由于 Trace 能告诉我们一段程序执行的连续过程,故在适当地址设置一个断点后,就可 以看到当前状态是怎样形成的。如果配合双 CPU 结构的仿真器,用户可清晰看到仿真 CPU 死机的全过程;配合执行时间显示,我们可看到一个中断服务程序是否在指定时间内完成; 配合事件中各种条件的设置,我们既可以得到所有 I/O 口读写的纪录(此时设事件与 R/W 总线状态有关),也可得到几个多重中断响应的全过程。更有甚者,我们可以指定在总线上 出现某几个高离散地址中的一个时即停止仿真,或是在总线上出现某种数据时即停止仿真, 所有这一切的实现,仅仅是指定这些事件的条件即可。 中国单片机公共实验室 第 2 页 2002-8-8 四. Trace 的衍生功能和相关功能 首先,在执行过程的显示形式上,除了刚才所说的总线模式外,一般还提供反编译指 令显示,甚至源程序显示。更有甚者,不仅能提供源程序代码和实际被执行代码的对应显示, 而且当用户在 Trace 窗口中检索实际被执行的代码时,源程序窗口中的光标也会随之游动, 英文称“linked cursor”功能。 单单有 Trace 功能和简单的执行断点设置,那么 Trace 的优点还不能全部发挥。因此, 在很多仿真器中,还提供了事件设置和条件设置功能。事件(Event)设置可把停止仿真的 条件从执行断点提供的明确地址扩展到所有总线上的信息,而地址、数据的条件可以是一段 地址或数据,也可以是一组离散的地址或数据,或者是一种模糊的地址或数据。在按时钟周 期作 Trace 的仿真器中,用户可对相关引脚逻辑设置事件。所有这一切,都是为了让用户设 置最适当的断点去做相关情况的观察。触发(Trigger)设置的意义在于可以让用户对多个事 件作逻辑组合,以适应复杂程序跑飞时,设置中断仿真的条件,使用户可以观察到跑飞时的 状况。 此外,为了更好地利用 Trace Buffer,有些仿真器还提供了硬件的 qualify(或称 filter) 功能。当用户设置 qualify 条件之后,Trace Buffer 中将只有满足 qualify 指定条件的信息帧, 而不再是默认的全部执行过程信息。 以上剖析希望能为仿真器用户提供一个参考,以便能在今后的开发工作中更好地使用 仿真器,从而更快地开发出技术含量高的产品,同时也希望能为仿真器制造商提供通用 Trace 功能的参考。
1楼 0 0 回复
总共 , 当前 /