基于Proteus的嵌入式应用系统仿真中的源码调试

发布者:量子心跳最新更新时间:2010-01-08 来源: 现代电子技术 关键字:Proteus  仿真  嵌入式系统  源码调试 手机看文章 扫描二维码
随时随地手机看文章

  0 引 言

  Proteus是功能最强的嵌入式系统(单片机、ARM等)的设计与仿真平台。它主要由Proteus VSM(Virtual System Model)和PCB设计构成。ProteusVSM的最大特色就是能对嵌入式系统(硬、软件)及其外围电路进行协同、动态、交互式的仿真,并提供了仿真中进行源码调试的三种方式。

  Proteus源码调试综合并突破了传统硬件仿真器和软件集成开发环境(Integrated Development Envi-ronment,IDE)源码调试功能。不仅能跟踪、分析嵌入式系统内的指令执行,观察、改变存储单元内容等的调试;且从工程角度实现了过程与结果,硬件与软件,全速与跟踪,中断与监视,静态与动态等的统一调试。丰富而灵活的调试手段,人与机的积极互动为高质高效实现设计目标创造了条件。从研发产品的实践上也证明了Proteus源码调试的高质、高效和可信度。这里从实践角度出发总结Proteus的三种源码调试方式,着重讲述了国内书刊尚未详细叙述的第三种方式,以发挥Pro-teus在产品研发和教学中的先进作用。在此采用的是Proteus 7.5。

  1 Proteus VSM源码调试

  Proteus VSM源码调试是第一种源码调试方式。Proteus的源码调试由源代码控制系统支持。该系统主要功能是编辑、汇编源码,并保证代码及时更新。该系统有源码(源程序)编辑器、汇编器、调试数据提取器(Debug Data Extractor,DDX)和装载器等。DDX从汇编器产生的文件中提取调试信息装入装载器。源码调试步骤是:建源码文件、加载到系统,选择微控制器及汇编器,将源码经汇编器汇编产生的目标代码加载到微控制器中,启动仿真进行源码调试。

  VSM提供了几种汇编器,主要有51系列的ASEM51,AVR系列的AVRASM,AVRASM32,PIC系列的MPASM,MPASM32和 HC11系列的ASM11等。汇编后可产生HEX或S19(用于MC68HC11),LST,SDI等调试文件。不同的微控制器选择相应的汇编器,系统自动更新DDX。设定微控制器属性编辑框中的程序文件即加载代码文件。启动仿真进行源码调试。暂停时,在源码调试窗口可看到调试格式文件.SDI提供的源码、代码及地址,还可打开各种寄存器窗口查看各存储单元内容。调试中可看到电路与程序代码协同、交互式仿真过程和结果。调试中可随时进行源码修改、设置各种断点等。图1所示为单片机读键并将值送数码管显示实验的源码调试状态。

  2 Proteus借第三方编译器实现源码调试

  这是第二种源码调试方式。若源码使用高级语言,就必须借用Proteus之外的第三方代码生成工具(汇编器/编译器)。若此时仍要用VSM的源码调试功能,就需要汇编器/编译器提供DDX或输出Proteus支持的调试格式文件(带调试信息的目标代码)。装载器从这些调试文件中提取调试信息以实现源码调试。

  Proteus装载器支持的调试文件格式主要有:COFF(通用的,适应于PIC)、OMF(用于8051范围内)、UBROF(IAR编译器生成)、 ELF/DWARF(通用的,较COFF有较好的调试性能)、COD(由BYTE-CRAFT生成,广泛应用在PIC 中)等。

  使用以上格式时,首先在编译器中设置输出格式,如在Keil中指定OMF格式的代码文件,如图2所示(例:6-164.OMF)。然后将生成的带调试信息的代码文件作为单片机窗口的“程序文件”。启动仿真,则可进行源码调试。

  3 Proteus与第三方IDE联合仿真实现源码调试

  这是第三种源码调试方式。Proteus联合第三方IDE,充分发挥Proteus的微控制器仿真功能和第三方IDE丰富的代码调试功能,创造最佳的应用系统开发环境。多数专业汇编软件和编译器都有自己的集成开发环境IDE,如IAR的嵌入式工作台,Keil's μVision,Mi-crochip's MPLAB,Atreel's AVR studio等。Proteus作为IDE的插入式仿真器,由IDE的调试器控制调试的执行。这种源码调试方法有两种方法,如表1所示。

   3.1 万法一

  Proteus通过TCP/IP协议与IDE通信。Proteus充当虚拟在线仿真器(In Circuit Emulator,ICE)。例如KEIL与Proteus联调。先要将Proteus提供的驱动器VDMAGDL EXE装在KEIL的安装路径下。在同台计算机中调出KEIL与Proteus,进行仿真与联调。如图3所示,左边为KEIL窗口,可利用断点、变量窗口等监视程序的执行,进行源码调试。右边为Proteus窗口,在Proteus窗口可同步监视电路的运行状态与过程,也查看Proteus提供的CPU寄存器、内RAM等各种存储器窗口。也可将IDE调试器、Proteus分别安装在不同计算机中,利用互联网进行两者的联合调试。

[page]

  3.2 方法二

  Proteus集成在IDE(例Proton,MPLAB,Atmel AVR studio)中,作为IDE中的一个仿真与调试工具。现以Proteus与AVR Studio联合仿真中的源码调试为例较详细地叙述该调试方法。

  (1)在Proteus的ISIS中设计电路并保存(命名为LSD.DSN);

  (2)在AVR Studio中联合调试。

  打开新建工程,在弹出的对话框中选择工程类型为设置工程名,源文件自动与工程名相同。操作菜单Debug→Select Platform and De-vice,在弹出的对话框中设置调试平台为Proteus VSMViewer、器件为Atmegar16,如图4所示。点击Finish接着弹出源程序编辑窗口。写完程序、保存并点击汇编,生成LSD.HEX。在Proteus VSM视窗中点击打开按钮(若视窗未打开,操作菜单View→Toolbars→Proteus VSM),打开已有的LSD.DSN电路文件,对Atmegar16设置程序文件为LSD.HEX。点击AVR的按钮启动调试,接下来按AVR中的调试方法进行。图5右侧为AVR开发环境中的I/O视窗及CPU信息框,可查看与当前设计相关的PORTD口的内容。在Proteus VSM视窗中右击还可打开各种存储器窗口和观察窗口。

  Proteus除了支持一般的软件断点外,还有独特的条件断点和硬件实时断点功能。对源码调试提供了更灵活的手段。当硬件条件发生时暂停仿真,与单步调试工具结合极为方便有效。尤其在电路中引入异步触发,当需要跟踪分析其对电路的影响时更有用。

  (1)条件断点。如图5中Proteus的观察窗口中添加PORTD,并设置它的断点条件为“On Change”。仿真时当PORTD输出数据发生变化就暂停仿真。

  (2)电压探针断点。对PORTD0引脚加一电压探针,命名为PD0(见图6),设置为数0值触发。每当PORTD0输出低电平时,触发断点使仿真暂停,如图7所示。

  (3)硬件断点:实时断点发生器。实时断点发生器有实时电压、电流断点触发器RTVBREAK和RTI-BREAK:当触发器引脚上的电压或流经的电流超过设定的值将触发断点,为上升沿触发;实时数字断点触发器RTDBREAK:当输入到引脚的二进制数等于设定值时触发断点;实时电压、电流监视器 RTVMON和RTI-MON:当输入电压或当流经的电流不在设定范围内,可触发断点、警告或是错误。可将RTVMON和RTI-MON用于创建仿真模型,当模型中的电压或电流超过设定的工作极限时警告终端用户。

  如图8对POETD0引脚添加实时数字断点触发器并设置触发值为0,达到同上述(2)中电压探针一样的断点调试效果。

  4 结语

  嵌入式系统的Proteus仿真中源码调试的方式有三种,源码的编写、汇编、动画式的电路仿真与源码调试都在Proteus中完成:Proteus用第三方的汇编/编译器对源码汇编/编译生成的调试格式文件进行源码调试;Proteus与IDE联合进行源码调试。Proteus独特的条件断点、硬件断点功能为仿真及源码调试更方便、更灵活、更高效。

关键字:Proteus  仿真  嵌入式系统  源码调试 引用地址:基于Proteus的嵌入式应用系统仿真中的源码调试

上一篇:飞思卡尔 i.MX 平台支持 Flash Player 10.1
下一篇:航天器动力学环境试验综合测试系统的设计

推荐阅读最新更新时间:2024-05-02 20:58

Protel DXP电路仿真流程与实例仿真分析
电路仿真 是指在电脑上通过软件来模拟具体电路的实际工作过程,并计算出在给定条件下电路中各节点(包括中间节点和输出节点) 的输出波形。电路仿真是否成功,取决于电路原理图、元件模型的仿真属性、电路的网表结构以及仿真设置等。Protel DXP 执行混合信号仿真的设计流程如图1所示。 图1  电路仿真流程 a ) 原理图设计: 首先, 新建一个原理图文件*.schdoc ,打开编辑环境,与普通原理图大致相同;然后,打开Libraries ,加载必要的元器件库,添加元器件并设置参数,这里所有的元器件都必须具有Simulation 仿真属性,否则仿真时将出现错误信息,在DXP中假定所有元器件都是理想元器件;最后,用导线进行电
[电源管理]
Protel DXP电路<font color='red'>仿真</font>流程与实例<font color='red'>仿真</font>分析
单片机设计 超声波测距仿真
一、电路设计 超声波模块介绍 由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此得到了广泛的应用。如图5即为HC-SR04超声波测距模块 1、基本工作原理: 如图6为超声波测距传感器HC-SR04模块,VCC 接 5V 电源,GND 为地 线,TRIG 为触发控制信号输入,ECHO为回响信号输出。超声波在传播时碰到障碍物即返回,HC-SR04模块收到回波信号后Echo口输出一个高电平。 2.、HC-SR04电气参数: HC-SR04超声波测距模块可提供2cm至400cm的非接触
[单片机]
单片机设计 超声波测距<font color='red'>仿真</font>
步进电机定位控制系统VHDL程序与仿真
步进电机定位控制系统VHDL程序与仿真 library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all; entity step_motor is port (reset:in STD_LOGIC; --系统复位信号 dir: in STD_LOGIC; --方向控制信号 clk: in STD_LOGIC; --系统时钟信号 ini: in STD_LOGIC; --初始化使能信号 manner: in STD_LOGIC_VECTOR (1 dow
[嵌入式]
单片机常识——结构和相关公司
概述 绝大多数现在的单片机都是基于冯·诺伊曼结构的,这种结构清楚地定义了嵌入式系统所必需的四个基本部分:一个中央处理器核心,程序存储器(只读存储器或者闪存)、数据存储器(随机存储器)、一个或者更多的定时/计时器,还有用来与外围设备以及扩展资源进行通信的输入/输出端口——所有这些都被集成在单个集成电路芯片上。 说单片机与通用型中央处理单元芯片不同,是因为前者一般很容易配合最小型的外部支持芯片制成工作计算机。这样就可以很容易的把单片机系统植入装置内部来控制装置了。近年来为了在指令和数据上使用不同的字宽,并提高处理器流水线速度,哈佛结构在微控制器(Microcontrollers)和数字信号处理器(Digital Signal
[单片机]
单片机常识——结构和相关公司
AMD 以全新第二代 Versal 系列器件扩展领先自适应 SoC 产品组合
AMD 以全新第二代 Versal 系列器件扩展领先自适应 SoC 产品组合,为 AI 驱动型嵌入式系统提供端到端加速 — 第二代 Versal 系列产品组合中首批器件借助下一代 AI 引擎将每瓦 TOPS 提升至高 3 倍,同时将基于 CPU 的标量算力较之第一代提升至高 10 倍 — — 斯巴鲁位列首批宣布计划部署第二代 Versal AI Edge 系列的客户之中,为下一代EyeSight ADAS 视觉系统提供支持 — 2024 年 4 月 9 日,德国纽伦堡(国际嵌入式展)——AMD(超威,纳斯达克股票代码:AMD)今日宣布扩展 AMD Versal™ 自适应片上系统( SoC )产品组合,推出全新第二代 V
[网络通信]
AMD 以全新第二代 Versal 系列器件扩展领先自适应 SoC 产品组合
基于嵌入式系统调试诊断方法
本文介绍了嵌入式系统开发过程实际上就是一个调试诊断的过程,而且调试诊断将一直伴随着一个产品的终身,即使是最成熟的产品也偶尔会出现这样或那样的问题,这都需要开发人员去诊断、排查。   嵌入式系统的调试包括硬件调试、软件调试以及综合调试。硬件调试一般是指系统刚开发出来时上电前后的检查,包括:   1)上电前检查电源和地是否短路,目视检查是否有虚焊、漏焊;   2)上电后检查时钟线上的频率和波形、幅度是否正常,各电源电压是否稳定正常,各芯片温度是否正常,各指示灯是否正常。   软件调试一般是指保证硬件一切正常的情况下验证程序执行的时序是否正确,逻辑和结果是否与设计要求相符,能否满足功能和性能要求等。软件调试的方法有很多,包括
[单片机]
AdvancedTCA系统散热仿真分析策略
AdvancedTCA系统散热仿真分析策略  AdvancedTCA标准的出现为我们带来了新的机遇与挑战。8UX280mm 尺寸的板卡和基于串行交换技术的模式为我们带来了更高的交换能力,但同时,也为我们带来了很多方面的麻烦,至少在散热方面是这样的,尤其当系统空间有约束、限制的情况下更是如此。高主频速度、高集成度、以及高可靠性要求,都为系统散热提出了新的要求。AdvanceTCA对每槽200W散热能力的能力要求我们需要对每个具体应用都需要进行必要的散热分析。本文就重点讨论12U AdvancedTCA系统散热问题以及与之相关的优化设计。   12U ATCA系统   从散热角度上来说,13U与14U ATCA系统更加容易实
[模拟电子]
AdvancedTCA系统散热<font color='red'>仿真</font>分析策略
基于ARM的蓝牙实时数据采集系统的设计
  1 引言   随着计算机技术的发展,尤其是无线技术广泛深入到人们生活的各个方面,使人们的生活发生了深刻的变化。就工业数据采集、测量领域来讲,由于测量种类多、数据量大,且存在许多条件恶劣、人们不易到达或不能时刻停留的地方偶尔采集一些现场数据,因而不但需要花费大量的人力、物力和财力进行设备的维护,同时给采集带来很多不必要的麻烦。   为了解决上述问题,本文提出了一种基于ARM 的蓝牙实时数据采集系统。采用嵌入式 操作系统Windows CE,对通过蓝牙无线传输方式集中的传感器采集数据,进行控制、显示、处理,实现工业实时数据的采集。ARM 技术为内核的微控制器指令周期短,处理能力强,接口丰富,能成功运行操作系统,为控制系统的应用
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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