嵌入式系统设计师必备的在线ARM仿真器知识

发布者:平安心境最新更新时间:2011-01-04 关键字:嵌入式  编译器  仿真器 手机看文章 扫描二维码
随时随地手机看文章

  本文提供了一些关于在线 ARM 仿真器的信息,以及给作为嵌入式系统设计师的你带来的好处。根据你的需要,你将在产品开发中对开发工具作出更恰当的选择。

  一、嵌入式产品的开发周期

  典型的嵌入式微控制器开发项目的第一个阶段是用C编译器从源程序生成目标代码,生成的目标代码将包括物理地址和一些调试信息。目前代码可以用软件模拟器、目标Monitor或在线仿真器来执行和调试。软件模拟器是在PC机或工作站平台上,以其CPU(如x86)及其系统资源来模拟目标CPU(如P51XA),并执行用户的目标代码;而目标Monitor则是将生成的目标代码下载到用户目标板的程序存储器中,并在下载的代码中增加一个Monitor任务软件,用来监视和控制用户目标代码的执行,用户通过目标板上的串行口或其它调试端口,利用桌面计算机来调试程序。

  程序的调试是通过设置断点、使程序在指定的指令位置停止运行来实现的。在程序中止的时候,检查存储器和寄存器的内容,作为发现程序错误的线索。

  程序经过调试、找到所有的错误后,修改源代码,重新编译,以一种标准格式生成目标代码文件,比如Intel HEX。这个目标代码将被存储在最终产品的非挥发存储器,比如EPROM或FLASH中。

  二、为什么需要仿真器

  软件模拟器和目标 Monitor提供了一种经济的调试手段,对于很多设计来说已经足够。但是也有很多场合,需要利用仿真器来找到程序错误。 无论在哪一种场合,仿真器都能够减少调试时间、简化系统集成、增加可靠性、优化测试步骤,从而使其物有所值。更常见的情况是工程师在项目的不同阶段同时使用软件模拟器和仿真器,特别是在大的开发项目中。

  软件模拟器和软件调试器在断点之外只提供了很少的几种功能,比如显示端口内容和代码覆盖。没有检测事件和条件、然后作出反应的手段,也没有办法记录MCU的总线周期、然后判断程序的执行究竟发生了什么情况。如果你的MCU有片上EPROM或FLASH存储器,并且运行在单片模式,则只有仿真器才能够对系统进行调试,而不严重占用和消耗MCU资源。

  在线仿真器可以很容易地做到这些事情,并且还能够提供很多其它功能。仿真器是软件和硬件之间的桥梁。在项目进行的某些阶段,你必须让程序在实际的硬件上面运行。仿真器可以很容易地帮助你了解如何在调试阶段充分利用仿真器。

  三、仿真器究竟是什么?

  仿真器可以替代你的目标系统中的MCU,仿真其运行。 仿真器运行起来和实际的目标处理器一样,但是增加了其它功能,使你能够通过桌面计算机或其它调试界面来观察MCU中的程序和数据,并控制MCU的运行。仿真器是调试嵌入式软件的一个经济、有效的手段。Nohau的EMUL51XA-PC仿真器系列用来调试Philips P51XA系列MCU,而EMUL51-PC系列仿真器则支持众多厂家的8051系列单片机。

  四、内部和外部模式

  内部模式是指程序和数据位于MCU芯片内部,以FLASH或EPROM的形式存在,地址和数据总线对于用户并不可见,由此节省下来的芯片引脚作为I/O口提供给用户。内部模式也称单片模式,所有的程序执行都发生在内部ROM中。为了有效地仿真这种芯片,要求仿真器使用bondout或增强型Hooks芯片。

  外部模式是当程序存储器,可能还有部分数据存储器,位于MCU外部的情况,需要有地址和数据总线来访问这部分存储器。外部模式也称扩展模式,用户芯片、bondout芯片和增强型hooks芯片都能够产生这种工作模式,这种情况下芯片的地址和数据总线引脚不能作为通用I/O口使用。Nohau的仿真器使用这三种芯片来实现有效的程序调试。

  五、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目标系统中也可以简易地进行程序代码和数据的调试和修改。

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

  6.硬件性能分析

  软件模拟器和目标Monitor只能模拟系统运行,然后进行性能分析,但是它们已经做得不错了;而仿真器则更进一步,在实际硬件上面进行性能分析,这样就增加了精度。而且,使用实际的硬件能够发现在软件模拟中无法发现的错误。虚假中断以及其它一些故障可能会出乎意料地消耗CPU资源,导致严重的性能问题,而且很难发现。利用仿真器的性能分析,这些问题很容易暴露。

  7.将仿真器和目标系统相连接

  仿真器和目标系统的连接很容易。大多数问题都被仿真器公司及其代理解决了。连接需要两个步骤:

  首先,需要选择适当的适配器连接方法,最好选用焊接和插座方式。P51XA系列单片机仿真器支持PLCC插座和表面安装两种目标连接方式。夹接适配器价格较高而且不可靠,不推荐用户使用。

  然后,仿真器上面的软件和跳线器必须正确配置,和目标板以及软件初始化程序相匹配。这很简单,好的技术支持应当包括这一点。Nohau的仿真器一般使用缺省设置就可以工作。

  对于P51XA系列单片机,只要在用户的目标板上焊接一个芯片插座(PLCC或表面安装形式)、插入EMUL51XA-PC的特性板适配器接头,在PC机或笔记本电脑上运行调试软件就可以了。然后你就可以用随仿真提供的TIme.c测试程序对目标系统进行测试了!

  八、总结

  本文提供了一些关于在线仿真器的信息,以及给作为嵌入式系统设计师的你带来的好处。根据你的需要,你将在产品开发中对开发工具作出更恰当的选择。

关键字:嵌入式  编译器  仿真器 引用地址:嵌入式系统设计师必备的在线ARM仿真器知识

上一篇: 基于嵌入式Linux与S3C2410平台的视频采集
下一篇:核辐射剂量场实时成像测量系统的研究

推荐阅读最新更新时间:2024-05-02 21:14

Xilinx为嵌入式视觉和工业物联网等广泛应用扩充成本
2016年9月28日,北京 All Programmable 技术和器件的全球领先企业赛灵思公司(Xilinx, Inc. (NASDAQ:XLNX))宣布,为包括嵌入式视觉和工业物联网等在内的广泛应用扩展其成本优化型芯片产品系列,包括其 Spartan ,Artix 和Zynq 系列,旨在满足下一代应用对于任意互联、传感器融合、精确控制、图像处理、分析、安全性与保密性的需求。 当今的嵌入式视觉和工业物联网应用需要收集、整理并分析来自众多不同传感器的数据,从而提供切实可行的信息把握。不管是调整厂房多传感器摄像头的功能,还是开发一个基于传感器融合的具有创新制导系统的智能无人机,设计者都能利用赛灵思FPGA和SoC产品来构建
[嵌入式]
Xilinx为<font color='red'>嵌入式</font>视觉和工业物联网等广泛应用扩充成本
如何使用RIGOL的高效混合信号示波器集合应对嵌入式设计挑战
本应用笔记讨论了测试每个设计(特别是嵌入式系统)质量的最常见事物。它包括常见的错误源以及其他会影响或降低信号质量的因素。还介绍了实现良好数据测量应遵循的技术和程序。更重要的是,它可作为用户使用RIGOL的高效混合信号示波器集合应对嵌入式设计挑战的一种指南。 嵌入式设计,尤其是利用低速串行信号的设计工作,是数字电子设计发展最快的领域之一。大量消费和工业电子产品中的模块,FPGA和处理器之间进行通信的需求正以惊人的速度增长。定制的通信协议和总线的使用对于设计效率和上市时间至关重要,但是存在有时难以分析和调试的风险。在嵌入式应用程序中使用低速串行数据时,最常见的问题来源和类型包括时序,噪声,信号质量和数据。我们将推荐现代示波器中可用
[测试测量]
如何使用RIGOL的高效混合信号示波器集合应对<font color='red'>嵌入式</font>设计挑战
基于嵌入式系统的远程参数测量的方法和实现
简介: 目前嵌入式系统发展非常迅速,各类基于 ARM 处理器的应用开发更是如火如荼,这主要是由于嵌入式系统的高性价比和较短的开发周期短,并且可以实现于多种多样的应用系统中。本文介绍了基于三星公司的 ARM9 嵌入式芯片 S3C2410 构建的测量监控系统,以该 ARM 芯片为主 CPU,实现了交流、直流电压、电流的测量等,将测量的结果存储于本地 MIB 数据库中,并通过 IP 网络协议实现远程访问监控。 1. 概述 目前嵌入式系统发展非常迅速,各类基于 ARM 处理器的应用开发更是如火如荼,这主要是由于嵌入式系统的高性价比和较短的开发周期短,并且可以实现于多种多样的应用系统中。本文介绍了基于三星公司的 ARM9 嵌入式芯片
[单片机]
基于<font color='red'>嵌入式</font>系统的远程参数测量的方法和实现
基于嵌入式系统的银行评价器设计方案
早期出现的银行评价器多以简单的数码管显示数字兼伴随简单的几个语句来实现一次客户的评价过程,方式过于简单,而且每个评价器之间相互独立,无法实现资源共享,这就给整个银行窗口服务系统带来了很多不便。后面又逐渐引入了单片机这样的微处理器,仍会有些功能单一,直到嵌入式系统的出现,采用以嵌入式系统为基础来开发的银行评价器,大大改观了它以前单一的功能。 这里提出一种基于S3C2440A和XL95144XL开发的银行评价器的设计方案。 1 ARM9简介 ARM微处理器是一款高性能、低功耗的32位微处器,它被广泛应用于嵌入式系统中。ARM9代表了ARM公司的主流处理器,已经在电子、电气、通信、国防等行业有了广泛的应用。其中,以三星ARM
[嵌入式]
嵌入式频率计的设计
1 引 言      本频率计的设计以 AT89C51单片机为核心,利用他内部的定时/计数器完成待测信号周期/频率的测量。单片机AT89C51内部具有2个16位定时/计数器,定时/计数器的工作可以由编程来实现定时、计数和产生计数溢出时中断要求的功能。在定时器工作方式下,在被测时间间隔内,每来一个机器周期,计数器自动加1(使用 12 MHz时钟时,每1μs加1),这样以机器周期为基准可以用来测量时间间隔。在计数器工作方式下,加至外部引脚的待测信号发生从1到0的跳变时计数器加 1,这样在计数闸门的控制下可以用来测量待测信号的频率。外部输入在每个机器周期被采样一次,这样检测一次从1到0的跳变至少需要2个机器周期(24个振荡周期),所以最
[单片机]
<font color='red'>嵌入式</font>频率计的设计
基于OHCI的嵌入式USB主机控制器接口实现
1 引言 当前有关 USB 的开发,大多是针对USB 外设或是USB 高层驱动程序开发,少数基于单 片的无OS(operating system)的USB 主机开发大都是由个人完成,其软件的耦合度高、接 口不够清晰、可重用性低。而LINUX 中的USB 主机驱动程序由于其复杂性和对系统的依赖 性,对其在无OS 平台上的移植带来了一定的困难。论文以Compaq、Microsoft 等公开的 USB 主机控制器接口规范为基础,遵循USB 主机的协议规范,开发了独立于操作系统的USB 主机底层驱动程序,并在S3C2410 平台上得到了验证。下面详细论述主机控制器接口规范及 驱动程序实现。 2 USB 体系结构 USB 体系包括一系
[单片机]
基于OHCI的<font color='red'>嵌入式</font>USB主机控制器接口实现
华北工控嵌入式电脑应用于城管执法车无线视频监控系统
系统概要: 随着中国经济的飞速发展和城市化进程加快,城市管理秩序的治理和维护日趋重要,由于城管管理的机动性非常大,自身流动的管理需要一套数字化的管理系统,当城管人员人身安全遇到威胁或者城管执法遇到障碍的时候,数字化管理系统会自动报警救援,车辆行驶过程监控都有详细的存储记录,长此以往,有助于城管指挥中心形成规范的管理机制,指导城管人员准确定位,自觉做到公正、文明执法,为社会治安稳定提供强有力的保障。目前为了满足社会需要,打造数字城管平台,实现城管信息化管理已是大势所趋。下面详细介绍华北工控一款冰翅散热结构嵌入式电脑在城管执法车无线视频监控系统中的应用。 系统原理: 城管执法车在执法巡逻中的位置、速度、现场情况等信息,以及
[嵌入式]
泰克公司推出新型WVR7000监测仪
满足基本HD视/音频监视的需求 WVR7000 监测仪,是泰克公司最新推出的 WVR 监测仪系列,它具有无可比拟的灵活性,是基本 HD 视 / 音频监视应用的理想解决方案。 WVR7000 是一款用于置信度监视(质量认证和控制)和艺术监视(节目处理)的理想监测仪,能够完全满足节目制作和后期制作客户的应用需要,非常适合于节目编辑应用,确保节目制作质量完全符合视音频标准的要求。 WVR7000 所采用的系统结构允许客户按照当前的预算和使用情况仅购置一部分必需的选件。它除了支持 HD 监视应用外,另行配置选件后还可以增加 SD 和(或)复合模拟视频监视功能。 WVR7000 的音
[新品]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved