一场ARM仿真器与嵌入式的设计盛宴

2014-08-05 09:23 来源:电子信息网 作者:娣雾儿

五、Bondout、增强型Hooks芯片和标准产品芯片

这些名词是指仿真器所使用的、用来替代目标MCU的三种仿真处理器。只有Bondout和增强型Hooks芯片能够实现单片调试,标准产品芯片不能。和标准产品芯片相比,bondout芯片有一些增加的引脚,连接到芯片内部硅片的电路节点上,所有又称“超脚芯片”.P51XA系列单片机仿真器都使用bondout芯片,EMUL51XA-PC就是很好的例子。

增强型Hooks芯片利用各种芯片引脚上面没有的机器周期来提供地址和数据总线,一些80C51系列仿真器就是使用增强型Hooks芯片。有趣的是,这些增强型Hooks芯片中的一些也是标准的产品芯片。使用增强型Hooks芯片作为仿真CPU需要一些额外的特殊功能电路来从复用的芯片引脚中,分解出地址和数据总线以及一些必须的控制信号,用户的目标板没有这些电路,所有仍然是单片工作模式。采用bondout芯片和增强型Hooks芯片能够实现极为精确的仿真,从功能一直到芯片的功耗。

六、使硬件工作起来

软件模拟器是很好的,可是它不能考虑进所有的变化因素。软件模拟器设计师必须考虑到每一件事情,特别是那些只有在硬件搭起来以后才会出现的因素,比如电容、定时、电感、芯片版本等,随着 CPU速度的增加,这些变得越来越重要。

目标Monitor相比之下要好得多,因为它是在实际硬件中运行的。但是为了使Monitor程序能够运行起来,目标系统必须是一个完整的、能够工作的系统。采用仿真器后就不是这样,仿真器在目标系统硬件不完整、或者是一点硬件都没有的情况下都可以运行。然而目标Monitor可以安装在最终产品的程序中,随时都可以激活,用来进行调试,所以这对于测试和维护来说还是有一定优势的。

七、仿真器的优点

仿真器具有软件模拟器和目标Monitor的所有功能,加上下面一些优点:

1.不使用目标系统或CPU资源

目标Monitor内核一般需要10K的ROM和10~20字节的RAM以及一个空闲的通信端口。一个好的仿真器不会使用上面任何一项。仿真器对于目标系统应当是不可见的,也就是所谓的“全透明仿真”.

2.硬件断点

软件断点的实现是通过在用户目标代码中插入2字节的TRAP(陷井)指令,将正常的程序流偏转到调试器上。如果程序计数器碰巧落到第二个字节上,程序就会崩溃。 Nohau仿真器的硬件断点功能使用比较器,将系统总线状态与预先设定的锁存器内容相比较,用以监测对于指定地址的访问,而不修改任何程序存储器内容。区域断点需要使用硬件断点来实现,但是软件断点仍然是很方便、有用的,所以Nohau的仿真器两种断点功能都提供。

当用户的目标程序存放在ROM中时,软件断点是不能用的,因为无法插入TRAP指令。对于ROM程序存储器系统,只能使用硬件断点。

3.跟踪功能(TRACE)

跟踪功能以时间为线索记录所有的处理器机器周期、以及可选的外部信号电平。跟踪功能能够记录所有的取指操作,并且在采用流水线并行处理模式的单片机中,如P51XA,区分在流水线中被取消的指令以及那些成功地执行的指令。跟踪的开始通过条件触发来实现,这样可以实现过滤功能,也就是只有感兴趣的指令周期被记录下来,其余的被舍弃。软件模拟器和目标Monitor没有跟踪存储器,也不能实现Trace功能。

4.条件触发

条件触发是非常强大、便于使用的功能,它使你可以在某些事件发生时,进行某个预先设定的行动,触发条件可以包括地址、数据、时钟周期和外部信号,这些条件可以触发一个断点、启动/停止跟踪记录、记录一个时间标记、以及很多其它由仿真器功能所决定的行动。这种强大的工具只有在仿真器中才能实现。Nohau仿真器的条件触发功能和跟踪功能有机地结合在一起,具有三级时间触发,最高级触发具有计数功能。

5.实时显示存储器和I/O口内容

使用仿真器后,可以实时地观察存储器和I/O口的内容,而不仅仅是软件模拟。你可以将自己特别喜欢的外设芯片连接到Nohau仿真器特性板的下部,然后在调试界面中访问它。如果你了解外设的所有细节,那么可以非常精确地进行系统模拟。

在很多情况下我们可能已经发现,好象只有在接入实际的硬件系统后某些问题才开始出现。采用仿真器能够使你从一开始就进入这一阶段,从而及早地发现问题、更快地完成调试任务。

因为仿真器内部自带的RAM可以和目标系统中的ROM互相替代,所以你在ROM目标系统中也可以简易地进行程序代码和数据的调试和修改。

同样,当目标系统中还没有装上存储器时,你可以使用仿真器中的仿真存储器对系统进行调试。仿真存储器的大小、分辨率和映象地址可以由用户选择。

< 1 2 3 4 > 
仿真器

一周热门