从RTOS移植到实时Linux-基础电子_第1页
从RTOS移植到实时Linux-基础电子_第2页
从RTOS移植到实时Linux-基础电子_第3页
从RTOS移植到实时Linux-基础电子_第4页
从RTOS移植到实时Linux-基础电子_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑从RTOS移植到实时Linux-基础电子在过去的10年中,Linux成功地取代了一些主要的传统RTOS平台,成为了各种各样的嵌入式设备和应用中的新的嵌入式操作系统。尽管一度曾被认为是不重要的平台,但今天嵌入式Linux已经成为主流,并引领着如下重要应用领域的市场和设计份额:消费电子、移动和无线设备、数据联网以及电信设备。

设计团队越来越多地期望使用Linux作为标准的嵌入式操作系统。考虑Linux的种种原因包括:广泛的硬件支持、更高的可靠性、更优异的性能、可扩展性以及更快的响应速度。不过,工程师在将基于传统RTOS的设计移植到嵌入式Linux时会遇到几大难题,因为Linux的架构和传统RTOS有很大的不同。

移植的时机

随着应用开发步伐的不断加快和产品生命周期的不断缩短,对于设计团队而言,能够将传统软件移植到这些新平台上并重新使用是十分重要的。尽管嵌入式Linux有许多优势,但是设计团队在选择从传统的RTOS进行移植之前,必须考虑如下几项因素:

●内存占用量。嵌入式Linux没有传统RTOS那样紧凑。因此,工程师必须确保设备有足够的内存和闪存来应对Linux更大的内存占用量。

●实时性考虑。嵌入式Linux可以实现50μs以下的响应时间。不过,这不一定能够满足项目需求,这一点有助于确定是否需要RTOS。

●需求。期望转换到嵌入式Linux的设计团队应确保项目将仍然满足业界特有的需求,例如安全或美国国防部。

移植路径选择

尽管移植过程中存在固有的难题,但从传统RTOS到Linux的移植不需要转弯抹角。工程师可以采用以下三种路径将应用从传统的RTOS移植到Linux。

仿真RTOS的API

种移植路径是仿真传统RTOS的API。为了使传统RTOS应用能够驻留并运行在Linux上,必须具备基于Linux的运行时服务于RTOS系统调用和其他API。许多(但并非全部)RTOS入口点和独立编译器库例行程序都在Linux和glibc运行时库中有原样的类似程序。如果不存在类似程序,就必须有新的代码介入来仿真缺失的功能。即使存在类似的API,可能也会出现参数类型和数量不同的情况。

图1在Linux上仿真RTOS

传统RTOS可以实现数百种系统调用和库API。例如,VxWorks文档描述了超过一千种独特的函数和子例程。实际应用只使用数十个独特的RTOSAPI,而它们其余的操作都使用来自标准C/C++库的调用函数。

为了仿真这些接口以用于移植,开发人员只需要RTOS调用的子集。许多OEM选择自己建立和维护仿真轻量级库,而其他OEM则使用来自供应商的更全面的商用库。除了商用库和自主开发之外,另一种选择是一个叫做v2lin的开源项目,它可以仿真数十种常用的VxWorksAPI。此外,v2lin项目经过架构改造之后,可用于较新的兼容于POSIX的glibc版本。

使用虚拟化进行运行时划分

对于期望采用Linux的工程师而言,虚拟化是另一种可行的移植路径。虚拟化包括操作系统的驻留或者作为一个应用程序运行在另一个虚拟平台之上,其中一部分系统软件(运行在“裸机”之上或作为驻留的应用程序)可实现一个或多个“客户”OS实例的执行。在企业级计算中,基于Linux的虚拟化技术是数据中心的主流功能,而且虚拟化也在嵌入式系统中找到了许多的应用。

嵌入式虚拟化要求将CPU、内存和其他资源进行划分,以驻留RTOS以及一个或多个客户“应用程序”操作系统(通常是Linux)来运行更高层次的软件。

图2采用虚拟化划分开的运行时

虚拟化可以通过允许RTOS应用程序和RTOS自身几乎原样地运行在新设计之中,而Linux则运行在自己的分区之中,以支持移植。这种方案适用于遗留代码依赖于RTOS的API和RTOS的性能特点的情况,例如实时性能或协议栈的具体实现。

工程师可以使用虚拟化作为从遗留代码向基于Linux的新设计过渡的简短且可靠的桥梁。不过,这种策略可能需要成本。OEM需要支付传统RTOS运行时的使用费,还需要与VM供应商谈判商用许可证。

图3RTOS的本地端口

逐步将应用移植到Linux

仿真和虚拟化可以提供直接明了的移植路径来进行原型制作、开发、甚至是对运行在Linux上的传统RTOS应用进行部署。但是,它们的缺点是需要额外的代码,并会涉及基础设施和许可费用。相反,在Linux实现“本地化”就能降低复杂度,简化许可程序,并增强可移植性和性能。

图4将RTOS任务映射为Linux线程

当设计团队首次动手处理移植项目时,他们往往会选择仿真和虚拟化技术。随着他们不断学习并更加熟悉Linux的开发工具和运行时属性,OEM可以逐步地重新建造传统应用,以实现本地Linux执行。

一种方法是选择单个传统程序进行本地移植,并将它们驻留在独立的Linux进程中。在软件显示出其对其他子系统有着极小或者正常依赖性的情况下,这种技术为适用。另一种明智的做法是,即使在部署仿真或虚拟化的时候也只将新的功能以本地代码的形式来

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论