ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:1.22MB ,
资源ID:15960636      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-15960636.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(为嵌入式系统开发人员建立虚拟的ARM平台.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

为嵌入式系统开发人员建立虚拟的ARM平台.docx

1、为嵌入式系统开发人员建立虚拟的ARM平台郑州大学毕业设计(翻译)题 目:Virtual ARM Platform for Embedded System Developers指导教师: 李正民 职称: 副教授 学生姓名: 乔 旭 学号: 20052430222 专 业: 计算机科学与技术 院(系): 信息工程学院 完成时间: 2009年5月20日 2009年5月20日为嵌入式系统开发人员建立虚拟的ARM平台摘要越来越多的嵌入式系统开发人员和片上系统设计师采用microprocessor-based(基于微处理器的)设计方法,以减少推向市场的时间。在过去的10年里,ARM处理器一直都是嵌入式系统

2、行业的主角之一。然而,在早期设计阶段,有许多对基于ARM处理器的嵌入式软件开发的限制。对于那些不熟悉嵌入式软件设备的人来说,在ARM硬件平台上测试他们的软件是一项异常艰巨的工作。为克服这些问题,我们为基于ARM的嵌入式系统开发人员设计了虚拟的ARM平台,提供更容易测试和调试的环境。使用虚拟ARM平台的好处是:(1)减少开发成本,(2)对于初学者降低了入门的难度,以及(3)让您更轻松地测试和调试嵌入式软件。与许多其他的纯粹以软件为导向且独立于硬件平台的ARM模拟器不同,我们的虚拟ARM平台是专门针对SYS-Lab 5000 ARM硬件平台(由Libertron公司负责设计制造)研发的,这意味着我

3、们的平台可以尽可能地模仿在目标硬件上的嵌入式软件的各种行为。本文旨在介绍我们的虚拟ARM平台的设计思想以及它在减少设计时间和开销方面的一些应用。1.导言嵌入式系统是一个拥有特殊用途的计算机系统,它仅仅采用通用计算机系统一小部分的专用功能,有时还需要进行实时处理。通常,嵌入式系统具备完整的硬件设备和机械装置,并且它已经深深渗透到现代生活的方方面面。不仅仅是个人数字助理(PDA)、mp3、手机等电子消费产品,在电信系统,交通运输系统,医学仪器等领域里,仍然存在着许多的嵌入式系统,例如防抱死刹车系统(ABS)、GPS、电子听诊器等。1微处理器是嵌入式系统非常重要的硬件结构之一。随着个人计算机和因特网

4、的普及,微处理器成为IT行业发展中的主要角色。针对不同的用途,每个微处理器都有自己的特殊结构。2其中,ARM微处理器采用RISC结构,被广泛应用于嵌入式系统的设计之中。这不仅仅是因为它的高性能和廉价,而且还因为它有低功耗的特点。ARM系列处理器在各种电子消费类产品中占有很大优势,从便携式设备(PDAs,手机,媒体播放器,掌上游戏机和计算器)到计算机外设(硬盘,桌面路由器)。我们即将在本文中介绍的虚拟ARM平台,是一个为目标硬件设计的ARM模拟器。与其他仅仅在软件模型上设计的虚拟ARM机不同,我们的虚拟ARM平台可以与目标嵌入式系统执行相类似的操作。这种相类似的操作具体是指我们的虚拟ARM平台允

5、许嵌入式系统开发人员在一个正真的H/W平台上开发和测试他们的嵌入式应用。为执行一个特定的虚拟ARM平台,我们已经选择了SYS-Lab5000 ARM硬件平台作为我们的目标H/W平台。正是由于特定目标的虚拟平台可以测试目标平台的细节而无需实际的目标平台,设计时间和花销被大幅的降低了。尤其在教学领域,在无法提供充足数量的嵌入式设备时,这种针对特定目标的虚拟平台将尽可能减少学生对实际硬件的需求,同时为学生学习如何设计特定目标的嵌入式系统提供巨大帮助。我们的虚拟ARM平台通过使用SimIt-ARM虚拟器和QT程序库的用户图形界面,完全可以建立在ARM虚拟器之上。为了方便维护和调试,我们还扩展了特定目标

6、的易用程度,设计了给定平台信息,提供自动进行特定平台环境设置的模拟器。此外,我们还可以为简易操作系统模拟器运行中断句柄定时器。本文的余下部分将介绍以下内容:在第二部分,我们讨论在虚拟ARM平台上开发嵌入式系统与实际硬件平台上的区别。在第三部分,我们将总结一些相互关系的研究成果。第四部分介绍我们的虚拟ARM平台是如何组织和工作的,第五部分介绍我们的研究成果,第六部分是总结。2.虚拟ARM平台的需求2.1 S/W嵌入式系统的发展众所周知,在通用计算机平台例如PC上开发软件与在嵌入式平台上开发软件有很大的不同。因此,通用平台软件开发人员在开发嵌入式平台软件时,可能会遇到很多困难。因为,嵌入式系统软件

7、开发需要将通用运行程序烧录到嵌入式平台中,并检查它的运行。这就意味着当通用软件有相同的开发和运行环境(不同PC之间)时,软件开发环境(以PC为例)和嵌入式软件运行环境(嵌入式目标平台)不相同。图1展示的是通常开发和测试嵌入式系统软件的步骤。 图1 嵌入式系统软件的开发与PC软件在每一步发展中仅仅需要PC不同,嵌入式软件的发展需要在实际的嵌入式系统硬件上进行。对于那些不熟悉嵌入式软件环境的人来说,在实际的硬件平台上测试他们的软件是一件很富有挑战性的工作。他们需要全面了解嵌入式系统,并善于使用硬件和在硬件上烧录程序。而且,如果他们不能负担足够的嵌入式系统(通常价格昂贵),他们能在实际硬件上测试他们

8、软件的机会将变得极为有限。为了解决这一问题,我们设计了能够方便测试和调试基于ARM嵌入式系统开发人员的虚拟ARM平台。2.2 虚拟ARM平台的使用虚拟ARM平台可以和实际ARM硬件平台一样地观察嵌入式软件运行的结果。开发人员可以写程序代码,在客户机(PC)上通过虚拟ARM平台证实他们的程序。因为它除PC外不需要其他的硬件,在开发程序时也不需要烧录的阶段。图2展示的是在虚拟ARM平台上开发嵌入式系统程序的过程。图2 在虚拟ARM平台上开发嵌入式应用程序的过程3.一些相互关系的工作成果近些年来,在嵌入式软件虚拟工具方面有许多研究成果,以下我们简要地对其中的部分成果进行总结。在嵌入式系统开发中,作为

9、最广为人知的ARM模拟器,ARMulator常被用于提供虚拟环境原型。通过虚拟的硬件IP和端口,在ARMulator上操作系统(例如C/OS-II)6可以脱离H/W平台模拟运行。SimIt-ARM是一个设置指令的模拟器,它可以在用户层和系统层运行ARM程序。SimIt-ARM支持两种流行的模拟形式:解释和动态编译。但正如图3所示,SimIt-ARM不能够脱离在C运行库支持下的I/O控制代码去建立固件级的程序。因此,对于不同的目标平台,初始化代码也是不相同的。开发人员不能在虚拟工具和目标H/W ARM平台中使用相同的可执行程序。图3 在两种平台下固件级代码的运行所有的这些努力都为了向开发人员提供

10、书写源代码,建立可执行程序,并在主机PC上运行的功能。但不幸的是,这些工具只能在特定目标处理器上模拟可执行文件。因此它不能为整个目标硬件平台模拟运行,不能控制外围设备,同时在代码模拟上也有相当大的限制。4.虚拟ARM平台的执行我们建议虚拟ARM平台对外围设备进行持续的控制,这是以往的ARM模拟器所不能提供的。通过对外围设备增加控制代码,现有的ARM模拟器(例如SimIT-ARM或者SimpleScalar)可以控制外围设备,例如LED,七段数码显示器,步进电机等等。图4展示的是虚拟ARM平台通过对外围设备的“靶样”控制,开发嵌入式系统的步骤。图4 虚拟ARM平台对外设提供控制虚拟ARM平台由虚

11、拟ARM模拟器,图形用户界面,输入事件句柄,定时器,和I/O设备模型组成。如图5所示,虚拟ARM平台启动后,首先初始化图形用户界面,在屏幕上显示GUI主窗口,然后虚拟ARM模拟器开始运行,处理可执行文件的操作并向虚拟ARM平台发送结果。当虚拟ARM平台从虚拟ARM模拟器得到模拟结果后,便同从虚拟ARM模拟器得到的可执行报告一道更新它的用户界面。当输入事件句柄发现任何输入事件,他分析事件,当事件是中断请求时,他将中断当前执行的程序。如果事件不是中断请求,句柄将输入事件进程发送到虚拟ARM模拟器来模拟修改后的数据操作。图5 在虚拟 ARM平台运行程序4.1 虚拟ARM模拟器虚拟ARM模拟器不仅可以

12、解码还可以与实际的ARM处理器一样运行给定的ARM操作,即处理从虚拟ARM平台转移的事件。如图6所示,当虚拟ARM模拟器解码ARM命令时,要检查解码命令是否包含外围设备的控制地址。如果不包含,虚拟ARM模拟器仅仅运行ARM命令并向虚拟ARM平台发送结果。然而,如果包含,虚拟ARM模拟器可以执行额外的操作。因此,虚拟ARM平台利用I/O内存映像图控制外围设备,特定平台的数据文件包含设备控制记录存取地址和相应的设备控制地址。一个特定数据文件的平台例子如表1所示。通过查找H/W特定数据平台,虚拟ARM模拟器确定应该控制哪个设备,确定如何控制相应的设备。最终,虚拟ARM模拟器通过发送设备控制符和虚拟A

13、RM平台数据处理控制设备。图6 在虚拟 ARM模拟器上运行程序表1 对SYS-Lab 5000 ARM H/W平台的数据抽样通过使用特定平台的数据文件,开发人员允许在虚拟ARM平台和实际H/W平台上使用相同的代码控制外围设备。4.2 图形用户界面图形用户界面将被用于处理输入事件,程序同步,打印屏幕上的模拟结果。如图7是我们的GUI全局结构。图7 图形用户界面和虚拟ARM模拟器GUI看起来与实际的目标H/W平台一致。GUI通过打印真实设备的更改显示外围设备控制结果。同样地,在GUI中当开发人员敲击外围设备(例如键盘和转换器)使虚拟ARM平台发现外部输入。在开发人员控制外围设备时,图8.2显示了一

14、个执行GUI的例子,图8.1显示了一个脱离GUI的虚拟ARM平台的例子。图8.1 脱离GUI的虚拟ARM平台LED显示图8.2 GUI下的虚拟ARM平台LED显示4.3 定时器和I/O设备我们还在虚拟ARM平台上使用定时器。当虚拟ARM平台启动时,初始化定时器。通过使用定时器,开发人员可以测试看门狗定时器中断,上下文开关程序和系统内核模拟器例如C/OS-II6。图9显示了定时器被用于操作系统定时器。图9 操作系统定时器是如何在虚拟ARM平台上工作的虚拟ARM模拟器可以像使用SDRAM单元一样使用虚拟SDRAM。通过使用作为虚拟内存的虚拟SDRAM,虚拟ARM模拟器可以通过连接I/O控制代码模拟

15、固件级代码,使得代码的运行与实际H/W ARM平台相一致。图10显示了在虚拟ARM平台和实际H/W ARM平台上的固件级代码均可以运行。图10 在虚拟ARM平台和H/W平台上运行固件级代码当然,我们还可以使用LED,点阵,七段数码管,LED文本显示器,步进电机,直流电机和键盘区。LED(如图8.2),点阵(如图11.1),七段数码管(如图11.2)都可以通过CPU时钟控制将控制数据转换为图形输出。LED文本显示器(如图11.3)通过一步步地输入文本控制数据,可以在LED上显示给定的打印信息。步进电机和直流电机(如图11.4)在CPU时钟的控制之下,通过给定速度控制数据,可以看到它们旋转。键盘通

16、过检测鼠标单击每个关键按钮,发送相应的数据输入到虚拟ARM平台。图11.1 执行点阵图11.2 执行七段数码管图11.3 执行LCD文本显示器图11.4 执行步进电机5.实验结果我们已经通过实验测试了我们的虚拟ARM平台。我们每一项的测试结果如图12所示,这需要完全控制嵌入式开发板上的每一个设备。通过测试每项应用,(如图13),我们可以看出在实际H/W平台和我们的虚拟平台上,外部特征是非常相似的,如图14.1和图14.2所示有着相同的运行结果。1: Initialize Text-LCD2: Print “Virtual ARM” on Text-LCD3: Activate STEP MOT

17、OR to spin4: Sequentially Turn ON&OFF LED Lamps by Rows5: Get Keypad Input6: Shows input data from Keypad through 7-Segment7: Shows input data from Keypad through Dot-Matrix8: Repeat step 5 to step 79: OS controls task1(step 4) and task2(step 8)图12 测试应用图13 针对虚拟ARM平台和SYS-Lab5000的逐项测试图14.1 在实际平台上的运行结果

18、图14.2 在虚拟ARM平台上的运行结果6.小结在本文中,我们提出虚拟的ARM开发平台,提供了一个与真正的H/W平台非常相似的极好的测试环境。通过使用我们的虚拟ARM平台,开发人员将能够开发基于ARM 的嵌入式系统软件,而不再需要购买目标H/W平台。由于开发人员可以在主机上立即测试自己的程序而不用烧录可执行文件到实际平台。程序的整体开发过程将更快,更方便。此外,一个类似于目标的H/W平台的用户友好的GUI界面,使得入门嵌入式系统变得容易。特别是,虚拟ARM平台将作为大学理想的教育工具,使得学生在学习和研究嵌入式系统软件时没有任何时间,空间和金钱的限制。7.鸣谢本论文受到韩国MKE(Minist

19、ry of Knowledge Economy)和ITRC(Information Technology Research Center)的大力支持,程序依据标准为IITA(Institute for Information Technology Advancement)。(IITA-2008-C1090-0801-0045)8.参考文献1 Y. S. Li and S. Malik, Performance analysis of Real-Time Embedded Software, Kluwer Academic Publishers, 1999.2 A. Krishnaswarmy

20、and R. Gupta, Profile Guided Selection of ARM and Thumb Instructions, CM SIGPLAN Joint Conference on Languages Compilersand Tools for Embedded Systems & Software and Compilers for Embedded Systems (LCTES/SCOPES), Berlin, Germany, June 2002.3 http:/simit-4 5 Gon Kim, Sang-Young Cho, and Jungbae Lee,

21、“Virtual Prototyping Environment on ARMulator”, Korea Computer Congress 2004 Vol. 2., 2004, pp. 592-594.6 Jean J. Labrosse, MicroC/OS-II Real Time Kernel 2/E, R&D Technical Books, 2002.7 P. Schaumont, D. Ching, I. Verbauwhede, An interactive codesign environment for domain-specific coprocessors, ACM

22、 Transactions on Design Automation for Embedded Systems, January 2006.8 W. Qin, S. Malik. Flexible and Formal Modeling of Microprocessors with Application to Retargetable Simulation, Proceedings of 2003 Design Automation and Test in Europe Conference (DATE 03), Mar, 2003,pp.556-561.9 W. Qin, S. Raja

23、gopalan, S. Malik, A Formal Concurrency Model Based Architecture Description Language for Synthesis of Software DevelopmentTools, ACM 2004 Conference on Languages, Compilers, and Tools for Embedded Systems, June 2004, pp. 47-56.10 Rajesh Kumar Gupta, Co-synthesis of Hardware and Software for Digital Embedded systems, PhD thesis, Stanford University, April 1991.

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2