基于Proteus和Keil接口的ARM仿真开发

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:hunterfall_horse
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:嵌入式开发需要良好的软硬件环境,目前ARM公司的开发工具ADS、RealView以及Keil与ARM核处理器结合的较好,但硬件开发平台昂贵。Proteus软件较好的解决了硬件仿真的问题,它支持外围数字电路和模拟电路与处理器协同仿真,可以随意搭建硬件虚拟仿真平台。针对Keil for ARM编译器,结合Proteus软件,以ARM处理器LPC2124介绍了如何构建ARM嵌入式开发平台进行源代码级调试的方法。为嵌入式系统学习提出了一种新的思路和方法。
  关键词:ARM;嵌入式系统;虚拟仿真;Proteus;Keill μVision3
  中图分类号:TP391文献标识码:A文章编号:1009-3044(2007)16-31098-02
  The ARM Virtual Development Based on the Combination of Proteus and Keil
  GENG Wen-bo1, QI Xiao-hui2
  (1.Dept. of Physics and Electronic Engineering, Zhoukou Normal University,Zhoukou 466000,China;2.Jinan Institute of Semiconductor,Jinan 250014,China)
  Abstract:The development of embedded system based on microprocessor needs excellent software and hardware environment. Nowadays, the development tool ADS, RealView and Keil of the ARM Company have a good support for ARM processor, but the hardware is expensive. The problem can be resolved by using software Proteus: We can build a virtual hardware workbench to simulate peripheral digital circuit and analog circuit together with microprocessor depending on our requirement. Combining Keil for ARM IDE and software Proteus, introduce how to build ARM embedded system virtual workbench to debug source code, which is new way to study embedded system.
  Key words:ARM;Embedded System;Virtual Simulation;Proteus; Keil μVision3
  
  1 引言
  
  不管是基于单片机的嵌入式开发还是基于ARM的嵌入式开发,嵌入式系统设计是一门实践性很强的学科,没有大量的实践操作是不可能学好这门课的。因此在传统的嵌入式系统学习中,嵌入式开发平台是必不可少的。其中资源少的开发平台便宜但功能较少,资源多的开发平台有价格不菲,很多人无法承受。比起51单片机开发板和实验箱,ARM开发板和实验箱要昂贵得多。而且一般的开发板和实验箱是成品,学习者很难参与到其中的细节中去,动手能力就难以得到训练和提高。英国Labcenter公司推出了适合嵌入式设计仿真的开发平台——Proteus软件。利用它,我们可以随时搭建一个嵌入式应用系统,并对其进行仿真,这样就很很好解决了上述矛盾。
  
  2 Keil与Proteus简介
  
  2.1 Keill μVision3简介
  Keil软件公司(现为ARM子公司)是嵌入式开发工具的专业制造商。其产品包括C编译器、宏汇编器、实时内核、调试器、模拟器、集成开发环境以及8051、251、ARM7/ARM9/Cortex-M3和XC16x/C16x/ST10系列微控制器仿真开发工具。Keil μVision2已称为目前国内流行的嵌入式集成开发环境(IDE)。为了更好地支持32位微处理器的开发,Keil又推出了Keil μVision3 IDE。UV3平台的人机交互界面非常友好,而且编译器性能优异,编译出代码的大小、执行速率及系统的稳定性均领先于市场上同类产品。
  Keill μVision3针对不同的处理器,包括不同的软件产品,有ARM开发工具、C51开发工具和XC16x/C16x/ST10开发工具和C251开发工具,用户可以根据需要选择。
  Keil μVision3具有高效的工程管理的集成开发环境,高速ARM指令/外设模拟器,多种流行编译工具的选择(如C编译器、ADS/RealView编译器和GNU GCC编译器等)和JTAG仿真器ULINK。
  2.2 Proteus简介
  Proteus是来自英国Labcenter Electronics公司的EDA工具软件。它提供原理图绘制,SPICE仿真与PCB设计功能,这一点与EWB的Multisim和Ultiboard类似,不过它可以仿真微处理器和外围电路,可以仿真ARM7、PIC、Atmel AVR、Motorola HCXX以及8051/8052系列等常用的微处理器。与Keil和Mplab不同的是它还提供了外围电路的仿真,例如74系列、40系列、LED、示波器、逻辑分析仪等各种常用的元器件及测试设备;它还提供了大量的元件库,有RAM、ROM、键盘、马达、LED、LCD、A/D、D/A,部分SPI器件、部分I2C器件等;支持Keil和MPLAB集成开发环境,里面附带有大量范例。
  
  3 Keil与Proteus的整合与联调
  
  Proteus与Keil之间是通过TCP/IP协议进行通行的,要确保PC机上安装有TCP/IP协议。Proteus VSM AGDI驱动程序(包括8051驱动程序VDM51.dll和ARM驱动程序VDMARM.dll)支持将Proteus VSM作为Keil集成开发环境的一个调试器插件。驱动程序必须安装运行在IDE的机器上,而Proteus可以安装在IDE运行的机器上,也可安装在另一台机器上。需要注意的是,8051驱动程序应当工作在Keil μVision2和Proteus6.7及其以下版本,否则用Keil uVision 2和Proteus6.9联调,会出现错误提示。
  3.1 Proteus6.7版本与Keil的接口(以8051驱动程序安装为例)
  (1)假如Proteus和Keil均已正确安装。把C:\Program Files\Labcenter Electronics\Proteus6 Professional\MODELS\目录下的VDM51.dll文件复制到C:\Keil\C51\BIN目录中。
  (2)用记事本打开Keil目录下的TOOLS.INI文件,在键[C51]下加入TDRV5=BIN\VDM51.DLL ("Proteus VSM Simulator"),其中“TDRV5”中的“5”要根据实际情况写,不要和原来的重复就可以了。
  (3)Keil的设置。启动Keil μVision3并打开一个工程,选择Project菜单的Option for Target‘工程名’,在Debug标签的右栏上部下拉列表框中选中Proteus VSM Simulator,如图1所示。然后单击右侧的Settings按钮,如果Proteus运行在另一台PC机上,则在弹出的对话框中填入另一台PC机的IP地址,如果是在同一台PC机上运行,IP地址选默认的Localhost或填入127.0.0.1,端口号都选择默认的8000。
  (4)Proteus的设置。启动ISIS,在Debug菜单中选中Use Romote Debug Monitor。
  图1 Debug标签下Proteus VSM Simulator的选择与IP设置
  (5)在ISIS中画好相应的仿真电路图,或者打开一个设计好的文件,然后打开Keil,编写好程序,编译通过后(为方便起见,可把Keil的工程和Proteus的文件放到同一个目录下),单击Debug菜单下的Start/Stop Debug Session菜单项或按Ctrl+F5进入调试界面。此时可单步,全速运行程序,并进行调试,同时可以观察Proteus中目标板的运行情况。
  3.2 Proteus6.9版本与Keil的接口
  Proteus6.9版本安装目录下的MODELS子目录没有VDM51.dll和VDMARM.dll,需要执行安装程序vdmadi.exe(下载网址为http://downloads.labcenter.co.uk/vdmagdi.exe),双击之后会自动在Keil安装目录下的ARM子目录和C51子目录下的BIN子目录,分别安装VDMARM.dll和VDM51.dll,同时会在Keil目录下的TOOLS.INI文件相应位置添加相关键值,不需要用户进行修改。然后按照3.1中的第(3)步开始依次进行设置即可。
  
  4 实例分析
  
  下面以ARM7处理器LPC2124的通用输入/输出口GPIO来控制LED流水灯为例,介绍如何通过Proteus和Keil μVision3构建ARM嵌入式开发平台进行源代码级调试的方法。例子虽然很简单,但其调试方法和过程却具有代表性,旨在抛砖引玉。
  4.1硬件电路绘制
  启动Proteus ISIS 6 Professional,通过选择相应的元器件,绘制硬件电路图如图2所示。绘制电路图的操作和Protel、EWB等软件不太一样,初学者可能不太适应,熟悉之后操作很简单,同时限于篇幅,这里不介绍电路图绘制方法,读者可以参阅相关文献。
  图2 LED流水灯的硬件电路图
  4.2 程序编译与电路仿真
  启动Keil μVision3,首先选定编译器(使用GNU编译器,Keil本身不带需要另外安装),方法是在工作空间(Project Workspace)空白处右击,从弹出的菜单中选择Manage Components命令,勾选Use GNU Compiler选项,在GNU-Tool-Prefix框中输入arm-uclibc-,单击确定。
  接着新建一个工程,命名为Blinky.uv2并保存,在弹出的Select Device for Target ‘工程名’对话框中选择目标CPU,这里选Philips公司的LPC2124芯片,确定并添加启动代码,建立New Group并将源文件Time.c和Blinky.c添加到工程中去。源文件用C语言编写,在此从略。
  然后进行工程配置,选择Project菜单的Option for Target‘工程名’,在弹出的对话框中,单击Target标签设置晶振频率为12MHz,单击Output标签勾选Create Hex File复选框,单击Linker标签,去掉Do not use Standard System Startup Files的对勾,并设置Linker Script文件Flash.ld,单击Debug标签的右栏上部下拉列表框中选中Proteus VSM Simulator,其他选项卡为默认,单击确定。
  最后单击执行Project菜单下的Build Target命令或单击工具栏Build Target按钮进行编译链接,生成目标代码,通过后就可以进行仿真了。
  单击执行Debug菜单下的Start/Stop Debug Session命令,加载程序到LPC2124中,这时切换至Proteus界面会发现,LED流水灯电路已经启动仿真(处于仿真暂停状态)。此时在Keil的调试界面下单击执行Debug菜单下的Run命令或按F5键全速运行程序,再切换至Proteus界面,会发现LED流水灯电路已经开始仿真运行了。结果如图3所示。
  图3 Proteus和Keil联调时的仿真结果
  
  5 结束语
  
  本文以ARM处理器LPC2124为例,介绍了一种基于Proteus软件和Keil for ARM编译器接口的ARM电路仿真并进行源代码级调试的实现方法,为嵌入式系统学习提出了一种新的思路和方法,该方法具有普遍意义。对于ARM学习者,没有ARM实验箱也可以学习ARM嵌入式系统开发;对于ARM开发设计人员,可以使用该方法进行虚拟开发成功之后再进行实际制作,无疑可以提高开发效率,降低开发风险。
  
  参考文献:
  [1]http://www.labcenters.co.uk.
  [2]http://www.keil.com.
  [3]周润景,袁伟亭.基于PROTEUS的ARM虚拟开发技术[M].北京:北京航空航天大学出版社,2007.
  
  注:“本文中所涉及到的图表、公式注解等形式请以PDF格式阅读原文。”
其他文献
摘要:本文介绍在Visual Basic语言编程环境中,利用鼠标mousedown、mousemove和mouseup事件,建立一个可供写字或绘图的窗口,将其编译成在桌面上可执行的文件,代替教学用粉笔写字或绘图。  关键词:VB;鼠标;事件;窗口  中图分类号:TP37文献标识码:A文章编号:1009-3044(2007)16-31138-02  Imitate a painting functi
期刊
摘要:在嵌入式系统中,中断的处理是必须的。本文阐述了μClinux下S3C44B0X的中断实现过程,并实现了S3C44B0X开发板的按键中断驱动程序。将μClinux移植到开发板后,中断得到正常响应,中断服务程序正确运行。  关键词:μClinux;S3C44B0X;中断;嵌入式系统  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)16-31091-02  The S
期刊
摘要:介绍了用Windows 2000系列或Windows XP系列自带的Ntloader引导程序来实现多个Linux系统与Windows系统的共存方法。  关键词:Linux;Ntloader   中图分类号:TP316文献标识码:A文章编号:1009-3044(2007)16-31156-01    1 引言    现在学习使用Linux操作系统是件很流行的事,所以很多人的电脑上除了安装常用的
期刊
摘要:本论文介绍了谐波测量的重要性和谐波测量的基本指标,采用快速傅里叶变换FFT测量方法,利用美国NI公司功能强大的LabVIEW开发平台制作一个虚拟谐波分析仪,对现场采集的电网电压波形数据进行了各指标的监测与分析,较直观地显示了基波和谐波的幅值。  关键词:LabVIEW;谐波测量;FFT  中图分类号:TP274文献标识码:A文章编号:1009-3044(2007)16-31128-02  A
期刊
摘要:深入研究Apriori算法,针对Apriori算法的性能瓶颈,以Apriori算法的运行事实为前提,给出了约简事务数据库中事务记录的理论,提出了一种利用事务地址索引表来有效约简事务数据库中事务记录的Apriori优化算法,以提高Apriori算法的执行效率。  关键词:关联规则;Apriori算法;事务地址索引表;约简事务  中图分类号:TP301.6 文献标识码:A文章编号:1009-30
期刊
摘要:建筑CAD技术的广泛应用,给建筑业带来了巨大的变革,它改变了人们传统的设计思维和模式,极大地提高了设计的效率。本文分析了CAD技术的发展现状及建筑CAD技术的应用特征,在此基础上,分析了建筑CAD技术的发展前景。  关键词:建筑CAD;应用;发展  中图分类号:TP317文献标识码:A文章编号:1009-3044(2007)16-31167-03  Briefly Analyzing CAD
期刊
摘要:图像增强是图像处理的一个重要分支,它对图像整体或局部特征能有效地改善;直方图是图像处理中最重要的基本概念之一,它能有效地用于图像增强。本文主要讨论了直方图均衡化和规定化处理的图像增强技术,并给出了相关的推导公式和算法;同时用MATLAB语言加以实现,给出标准的数字图像在各种处理前与处理后的对照图像、具体算法、实验结果及直方图。结果表明,用直方图均衡化和规定化的算法,能将原始图像密集的灰度分布
期刊
摘要:标量量化多描述编码(MDSQ)算法能有效提高信息的传输接收效果。结合Matlab工具在矩阵处理上的灵活性,用程序实现了MDSQ算法,并通过实验结果的分析证明该算法的可行性。  关键词:多描述编码;标量量化;Matlab;码率  中图分类号:TP391文献标识码:A文章编号:1009-3044(2007)16-31148-01  Image MDSQ Arithmetic And Its Im
期刊
摘要:生活中LED显示屏的应用越来越广,本文重点对大型室外LED显示屏的智能控制做了初步的研究,就控制回路做了详细介绍,对整个显示屏的智能环节做了分析,希望大家能通过本文对LED显示屏有更多的了解。  关键词:LED显示屏;屏内温度;屏内湿度;传感器;检测;控制  中图分类号:TP18文献标识码:A文章编号:1009-3044(2007)16-31123-02  Large Outdoor LED
期刊
摘要:随着信息技术的发展,计算机日益走进人们的工作、学习和生活,成为不可或缺的工具。在疾控工作中接触最多的是Microsoft Office,其中常用的办公软件有Microsoft Office Word 2003 文字处理,Microsoft Office Excel 2003 表格处理,Microsoft Office PowerPoint 2003 幻灯片等。本文从实际工作出发,着重介绍了办
期刊