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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

郑州大学毕业设计(翻译)

题目:Virtual ARM Platform for Embedded System Developers

指导教师:李正民职称:副教授

学生姓名:乔旭学号:20052430222

专业:计算机科学与技术

院(系):信息工程学院

完成时间:2009年5月20日

2009年5月20日

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

[摘要]

越来越多的嵌入式系统开发人员和片上系统设计师采用microprocessor-based(基于微处理器的)设计方法,以减少推向市场的时间。在过去的10年里,ARM处理器一直都是嵌入式系统行业的主角之一。然而,在早期设计阶段,有许多对基于ARM处理器的嵌入式软件开发的限制。对于那些不熟悉嵌入式软件设备的人来说,在ARM硬件平台上测试他们的软件是一项异常艰巨的工作。为克服这些问题,我们为基于ARM的嵌入式系统开发人员设计了虚拟的ARM平台,提供更容易测试和调试的环境。使用虚拟ARM平台的好处是:(1)减少开发成本,(2)对于初学者降低了入门的难度,以及(3)让您更轻松地测试和调试嵌入式软件。与许多其他的纯粹以软件为导向且独立于硬件平台的ARM模拟器不同,我们的虚拟ARM平台是专门针对SYS-Lab 5000 ARM硬件平台(由Libertron公司负责设计制造)研发的,这意味着我们的平台可以尽可能地模仿在目标硬件上的嵌入式软件的各种行为。本文旨在介绍我们的虚拟ARM平台的设计思想以及它在减少设计时间和开销方面的一些应用。

1.导言

嵌入式系统是一个拥有特殊用途的计算机系统,它仅仅采用通用计算机系统一小部分的专用功能,有时还需要进行实时处理。通常,嵌入式系统具备完整的硬件设备和机械装置,并且它已经深深渗透到现代生活的方方面面。不仅仅是个人数字助理(PDA)、mp3、手机等电子消费产品,在电信系统,交通运输系统,医学仪器等领域里,仍然存在着许多的嵌入式系统,例如防抱死刹车系统(ABS)、GPS、电子听诊器等。[1]

微处理器是嵌入式系统非常重要的硬件结构之一。随着个人计算机和因特网的普及,微处理器成为IT行业发展中的主要角色。针对不同的用途,每个微处理器都有自己的特殊结构。[2]其中,ARM微处理器采用RISC结构,被广泛应用于嵌入式系统的设计之中。这不仅仅是因为它的高性能和廉价,而且还因为它有低功耗的特点。ARM系列处理器在各种电子消费类产品中占有很大优势,从便携式设备(PDAs,手机,媒体播放器,掌上游戏机和计算器)到计算机外设(硬盘,桌面路由器)。

我们即将在本文中介绍的虚拟ARM平台,是一个为目标硬件设计的ARM模拟器。与其他仅仅在软件模型上设计的虚拟ARM机不同,我们的虚拟ARM平台可以与目标嵌入式系统执行相类似的操作。这种相类似的操作具体是指我们的虚拟ARM平台允许嵌入式系统开发人员在一个正真的H/W平台上开发和测试他们的嵌入式应用。为执行一个特定的虚拟ARM平台,我们已经选择了SYS-Lab5000 ARM硬件平台作为我们的目标H/W平台。正是由于特定目标的虚拟平台可以测试目标平台的细节而无需实际的目标平台,设计时间和花销被大幅的降低了。尤其在教学领域,在无法提供充足数量的嵌入式设备时,这种针对特定目标的虚拟平台将尽可能减少学生对实际硬件的需求,同时为学生学习如何设计特定目标的嵌入式系统提供巨大帮助。我们的虚拟ARM平台通过使用SimIt-ARM虚拟器和QT程序库的用户图形界面,完全可以建立在ARM虚拟器之上。为了方便维护和调试,我们还扩展了特定目标的易用程度,设计了给定平台信息,提供自动进行特定平台环境设置的模拟器。此外,我们还可以为简易操作系统模拟器运行中断句柄定时器。

本文的余下部分将介绍以下内容:在第二部分,我们讨论在虚拟ARM平台上开发嵌入式系统与实际硬件平台上的区别。在第三部分,我们将总结一些相互关系的研究成果。第四部分介绍我们的虚拟ARM平台是如何组织和工作的,第五部分介绍我们的研究成果,第六部分是总结。

2.虚拟ARM平台的需求

2.1 S/W嵌入式系统的发展

众所周知,在通用计算机平台例如PC上开发软件与在嵌入式平台上开发软件有很大的不同。因此,通用平台软件开发人员在开发嵌入式平台软件时,可能会遇到很多困难。因为,嵌入式系统软件开发需要将通用运行程序烧录到嵌入式平台中,并检查它的运行。这就意味着当通用软件有相同的开发和运行环境(不同PC之间)时,软件开发环境(以PC为例)和嵌入式软件运行环境(嵌入式目标平台)不相同。图1展示的是通常开发和测试嵌入式系统软件的步骤。

图1 嵌入式系统软件的开发

与PC软件在每一步发展中仅仅需要PC不同,嵌入式软件的发展需要在实际的嵌入式系统硬件上进行。对于那些不熟悉嵌入式软件环境的人来说,在实际的硬件平台上测试他们的软件是一件很富有挑战性的工作。他们需要全面了解嵌入式系统,并善于使用硬件和在硬件上烧录程序。而且,如果他们不能负担足够的嵌入式系统(通常价格昂贵),他们能在实际硬件上测试他们软件的机会将变得极为有限。为了解决这一问题,我们设计了能够方便测试和调试基于ARM嵌入式系统开发人员的虚拟ARM平台。

2.2 虚拟ARM平台的使用

虚拟ARM平台可以和实际ARM硬件平台一样地观察嵌入式软件运行的结果。开发人员可以写程序代码,在客户机(PC)上通过虚拟ARM平台证实他们的程序。因为它除PC外不需要其他的硬件,在开发程序时也不需要烧录的阶段。图2展示的是在虚拟ARM平台上开发嵌入式系统程序的过程。

图2 在虚拟ARM平台上开发嵌入式应用程序的过程

3.一些相互关系的工作成果

近些年来,在嵌入式软件虚拟工具方面有许多研究成果,以下我们简要地对其中的部分成果进行总结。

在嵌入式系统开发中,作为最广为人知的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 在两种平台下固件级代码的运行

所有的这些努力都为了向开发人员提供书写源代码,建立可执行程序,并在主机PC上运行的功能。但不幸的是,这些工具只能在特定目标处理器上模拟可执行文件。因此它不能为整个目标硬件平台模拟运行,不能控制外围设备,同时在代码模拟上也有相当大的限制。

4.虚拟ARM平台的执行

我们建议虚拟ARM平台对外围设备进行持续的控制,这是以往的ARM模拟器所不能提供的。通过对外围设备增加控制代码,现有的ARM模拟器(例如SimIT-ARM或者SimpleScalar)可以控制外围设备,例如LED,七段数码显示器,步进电机等等。图4展示的是虚拟ARM平台通过对外围设备的“靶样”控制,开发嵌入式系统的步骤。

图4 虚拟ARM平台对外设提供控制

相关文档
最新文档