
嵌入式系统设计师必备的在线arm仿真器知识.ppt
17页www.embedtrain.org www.mobiletrain.org千锋嵌入式学院 最专业的嵌入式培训机构嵌入式系统设计师必备的 ARM仿真器知识引言 一、嵌入式产品的开发周期 二、为什么需要仿真器 三、仿真器究竟是什么? 四、内部和外部模式 五、Bondout、增强型Hooks芯片和标准产品芯片 六、使硬件工作起来 七、仿真器的优点 1.不使用目标系统或CPU资源 2.硬件断点 3.跟踪功能(TRACE) 4.条件触发 5.实时显示存储器和I/O口内容 6.硬件性能分析 7.将仿真器和目标系统相连接 八、总结www.embedtrain.org www.mobiletrain.org千锋嵌入式学院 最专业的嵌入式培训机构本文提供了一些关于 arm 仿真器的信息,以 及给作为嵌入式系统设计师的你带来的好处根据 你的需要,你将在产品开发中对开发工具作出更恰 当的选择引言www.embedtrain.org www.mobiletrain.org千锋嵌入式学院 最专业的嵌入式培训机构 典型的嵌入式微控制器开发项目的第一个阶段是用C编译器从 源程序生成目标代码,生成的目标代码将包括物理地址和一些调试信息。
目前代码可以用软件模拟器、目标Monitor或仿真器 来执行和调试软件模拟器是在PC机或工作站平台上,以其CPU( 如x86)及其系统资源来模拟目标CPU(如P51XA),并执行用户的 目标代码;而目标Monitor则是将生成的目标代码下载到用户目标 板的程序存储器中,并在下载的代码中增加一个Monitor任务软件 ,用来监视和控制用户目标代码的执行,用户通过目标板上的串 行口或其它调试端口,利用桌面计算机来调试程序 程序的调试是通过设置断点、使程序在指定的指令位置停止 运行来实现的在程序中止的时候,检查存储器和寄存器的内容 ,作为发现程序错误的线索 程序经过调试、找到所有的错误后,修改源代码,重新编译,以一种标准格式生成目标代码文件,比如Intel HEX这个目标 代码将被存储在最终产品的非挥发存储器,比如EPROM或FLASH 中一、嵌入式产品的开发周期www.embedtrain.org www.mobiletrain.org千锋嵌入式学院 最专业的嵌入式培训机构 软件模拟器和目标 Monitor提供了一种经济的调试手段,对 于很多设计来说已经足够但是也有很多场合,需要利用仿真器 来找到程序错误。
无论在哪一种场合,仿真器都能够减少调试时 间、简化系统集成、增加可靠性、优化测试步骤,从而使其物有 所值更常见的情况是工程师在项目的不同阶段同时使用软件模 拟器和仿真器,特别是在大的开发项目中 软件模拟器和软件调试器在断点之外只提供了很少的几种功 能,比如显示端口内容和代码覆盖没有检测事件和条件、然后作出反应的手段,也没有办法记录MCU的总线周期、然后判断程 序的执行究竟发生了什么情况如果你的MCU有片上EPROM或 FLASH存储器,并且运行在单片模式,则只有仿真器才能够对系 统进行调试,而不严重占用和消耗MCU资源 仿真器可以很容易地做到这些事情,并且还能够提供很 多其它功能仿真器是软件和硬件之间的桥梁在项目进行的某 些阶段,你必须让程序在实际的硬件上面运行仿真器可以很容 易地帮助你了解如何在调试阶段充分利用仿真器二、为什么需要仿真器www.embedtrain.org www.mobiletrain.org千锋嵌入式学院 最专业的嵌入式培训机构 仿真器可以替代你的目标系统中的MCU,仿真 其运行 仿真器运行起来和实际的目标处理器一 样,但是增加了其它功能,使你能够通过桌面计算 机或其它调试界面来观察MCU中的程序和数据,并 控制MCU的运行。
仿真器是调试嵌入式软件的一个 经济、有效的手段Nohau的EMUL51XA-PC仿真 器系列用来调试Philips P51XA系列MCU,而 EMUL51-PC系列仿真器则支持众多厂家的8051系 列单片机三、仿真器究竟是什么?www.embedtrain.org www.mobiletrain.org千锋嵌入式学院 最专业的嵌入式培训机构 内部模式是指程序和数据位于MCU芯片内部,以 FLASH或EPROM的形式存在,地址和数据总线对于用 户并不可见,由此节省下来的芯片引脚作为I/O口提供 给用户内部模式也称单片模式,所有的程序执行都发生在内部ROM中为了有效地仿真这种芯片,要求仿 真器使用bondout或增强型Hooks芯片 外部模式是当程序存储器,可能还有部分数据存储器,位于MCU外部的情况,需要有地址和数据总线来 访问这部分存储器外部模式也称扩展模式,用户芯片、bondout芯片和增强型hooks芯片都能够产生这种 工作模式,这种情况下芯片的地址和数据总线引脚不能作为通用I/O口使用Nohau的仿真器使用这三种芯片 来实现有效的程序调试四、嵌入式开发教程内部和外部模式www.embedtrain.org www.mobiletrain.org千锋嵌入式学院 最专业的嵌入式培训机构 这些名词是指仿真器所使用的、用来替代目标MCU的三 种仿真处理器。
只有Bondout和增强型Hooks芯片能够实现 单片调试,标准产品芯片不能和标准产品芯片相比,bondout芯片有一些增加的引脚,连接到芯片内部硅片的电 路节点上,所有又称“超脚芯片”P51XA系列单片机仿真器 都使用bondout芯片,EMUL51XA-PC就是很好的例子 增强型Hooks芯片利用各种芯片引脚上面没有的机器周 期来提供地址和数据总线,一些80C51系列仿真器就是使用 增强型Hooks芯片有趣的是,这些增强型Hooks芯片中的 一些也是标准的产品芯片使用增强型Hooks芯片作为仿真 CPU需要一些额外的特殊功能电路来从复用的芯片引脚中, 分解出地址和数据总线以及一些必须的控制信号,用户的目 标板没有这些电路,所有仍然是单片工作模式采用bondout芯片和增强型Hooks芯片能够实现极为精确的仿真 ,从功能一直到芯片的功耗五、Bondout、增强型Hooks芯片和标准产品芯片www.embedtrain.org www.mobiletrain.org千锋嵌入式学院 最专业的嵌入式培训机构 软件模拟器是很好的,可是它不能考虑进所有的变 化因素软件模拟器设计师必须考虑到每一件事情,特 别是那些只有在硬件搭起来以后才会出现的因素,比如电容、定时、电感、芯片版本等,随着 CPU速度的增 加,这些变得越来越重要。
目标Monitor相比之下要好得多,因为它是在实际 硬件中运行的但是为了使Monitor程序能够运行起来 ,目标系统必须是一个完整的、能够工作的系统采用 仿真器后就不是这样,仿真器在目标系统硬件不完整、 或者是一点硬件都没有的情况下都可以运行然而目标Monitor可以安装在最终产品的程序中,随时都可以激 活,用来进行调试,所以这对于测试和维护来说还是有 一定优势的六、嵌入式开发教程使硬件工作起来www.embedtrain.org www.mobiletrain.org千锋嵌入式学院 最专业的嵌入式培训机构仿真器具有软件模拟器和目标Monitor的所有功能 ,加上下面一些优点:七、仿真器的优点www.embedtrain.org www.mobiletrain.org千锋嵌入式学院 最专业的嵌入式培训机构 目标Monitor内核一般需要10K的ROM和10~ 20字节的RAM以及一个空闲的通信端口一个好 的仿真器不会使用上面任何一项仿真器对于目标 系统应当是不可见的,也就是所谓的“全透明仿真” 1.不使用目标系统或CPU资源www.embedtrain.org www.mobiletrain.org千锋嵌入式学院 最专业的嵌入式培训机构 软件断点的实现是通过在用户目标代码中插入2字 节的TRAP(陷井)指令,将正常的程序流偏转到调试器 上。
如果程序计数器碰巧落到第二个字节上,程序就会 崩溃 Nohau仿真器的硬件断点功能使用比较器,将 系统总线状态与预先设定的锁存器内容相比较,用以监 测对于指定地址的访问,而不修改任何程序存储器内 容区域断点需要使用硬件断点来实现,但是软件断点 仍然是很方便、有用的,所以Nohau的仿真器两种断点 功能都提供 当用户的目标程序存放在ROM中时,软件断点是 不能用的,因为无法插入TRAP指令对于ROM程序存 储器系统,只能使用硬件断点2.硬件断点www.embedtrain.org www.mobiletrain.org千锋嵌入式学院 最专业的嵌入式培训机构 跟踪功能以时间为线索记录所有的处理器机器 周期、以及可选的外部信号电平跟踪功能能够记 录所有的取指操作,并且在采用流水线并行处理模 式的单片机中,如P51XA,区分在流水线中被取消 的指令以及那些成功地执行的指令跟踪的开始通 过条件触发来实现,这样可以实现过滤功能,也就 是只有感兴趣的指令周期被记录下来,其余的被舍 弃软件模拟器和目标Monitor没有跟踪存储器, 也不能实现Trace功能3.跟踪功能(TRACE)www.embedtrain.org www.mobiletrain.org千锋嵌入式学院 最专业的嵌入式培训机构 条件触发是非常强大、便于使用的功能,它使 你可以在某些事件发生时,进行某个预先设定的行 动,触发条件可以包括地址、数据、时钟周期和外 部信号,这些条件可以触发一个断点、启动/停止 跟踪记录、记录一个时间标记、以及很多其它由仿 真器功能所决定的行动。
这种强大的工具只有在仿 真器中才能实现Nohau仿真器的条件触发功能和 跟踪功能有机地结合在一起,具有三级时间触发, 最高级触发具有计数功能4.条件触发www.embedtrain.org www.mobiletrain.org千锋嵌入式学院 最专业的嵌入式培训机构 使用仿真器后,可以实时地观察存储器和I/O口的内容 ,而不仅仅是软件模拟你可以将自己特别喜欢的外设芯片连接到Nohau仿真器特性板的下部,然后在调试界面中访问 它如果你了解外设的所有细节,那么可以非常精确地进行 系统模拟 在很多情况下我们可能已经发现,好象只有在接入实际 的硬件系统后某些问题才开始出现采用仿真器能够使你从 一开始就进入这一阶段,从而及早地发现问题、更快地完成 调试任务 因为仿真器内部自带的RAM可以和目标系统中的ROM 互相替代,所以你在ROM目标系统中也可以简易地进行程序 代码和数据的调试和修改 同样,当目标系统中还没有装上存储器时,你可以使用 仿真器中的仿真存储器对系统进行调试仿真存储器的大 小、分辨率和映象地址可以由用户选择5.实时显示存储器和I/O口内容www.embedtrain.org www.mobiletrain.org千锋嵌入式学院 最专业的嵌入式培训机构 软件模拟器和目标Monitor只能模拟系统运行 ,然后进行性能分析,但是它们已经做得不错了;而 仿真器则更进一步,在实际硬件上面进行性能分析 ,这样就增加了精度。
而且,使用实际的硬件能够 发现在软件模拟中无法发现的错误虚假中断以及 其它一些故障可能会出乎意料地消耗CPU资源,导 致严重的性能问题,而且很难发现利用仿真器的 性能分析,这些问题很容易暴露6.硬件性能分析www.embedtrain.org www.mobiletrain.org千锋嵌入式学院 最专业的嵌入式培训机构 仿真器和目标系统的连接很容易大多数问题都被仿真 器公司及其代理解决了连接需要两个步骤: 首先,需要选择适当的适配器连接方法,最好选用焊接和插座方式P51XA系列单片机仿真器支持PLCC插座和表 面安装两种目。
