助学贷款
|
证书查询
|
报名/咨询
|
技术论坛
首 页
关于我们
学校动态
课程详解
学员就业
师资团队
资源实力
大学计划
网络课堂
企业服务
加盟合作
公告:
更多大型专题,详细内容请点击
粤嵌教育全国高校巡回讲座专题
·
中心简介
·
培训优势
·
联系我们
·
加入粤嵌教育
·
地理位置图/乘车指引
·
友情链接
·
公司动态
·
大型活动
·
杂志
·
培训动态
·
最新优惠
·
学员就业
·
校企合作
·
嵌入式Linux系列就业培训课程
·
Wince系列高端培训课程
·
嵌入式Linux高端培训课程
·
嵌入式硬件设计培训课程
·
Android系列开发培训课程
·
嵌入式开发提高课程
公告:
更多大型专题,详细内容请点击
粤嵌教育全国高校巡回讲座专题
·
培训导师
·
专家顾问
·
中心荣誉
·
培训感言
·
培训实景
·
培训设备
·
毕业留影
·
公共环境
·
学员活动
·
招生简章
·
大学课程
·
合作学校
·
合作流程
·
大学计划
公告:
更多大型专题,详细内容请点击
粤嵌教育全国高校巡回讲座专题
·
企业定制培训
·
人力外包及人才供应
·
人才委培
·
加盟优势
·
合作机会
·
加盟条件
·
加盟流程
您的位置:
首页
>
操作系统
>
Linux
> 从RTOS移植到实时Linux
从RTOS移植到实时Linux
来源: 作者: 时间:2010-07-22 浏览:617次 标签:
分享到:
在过去的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文档描述了超过一千种独特的函数和子例程。实际应用只使用数十个独特的RTOS API,而它们其余的操作都使用来自标准C/C++库的调用函数。
为了仿真这些接口以用于移植,开发人员只需要RTOS调用的核心子集。许多OEM选择自己建立和维护仿真轻量级库,而其他OEM则使用来自供应商的更全面的商用库。除了商用库和自主开发之外,另一种选择是一个叫做v2lin的开源项目,它可以仿真数十种常用的VxWorks API。此外,v2lin项目经过架构改造之后,可用于较新的兼容于POSIX的glibc版本。
使用虚拟化进行运行时划分
对于期望采用Linux的工程师而言,虚拟化是另一种可行的移植路径。虚拟化包括操作系统的驻留或者作为一个应用程序运行在另一个虚拟平台之上,其中一部分系统软件(运行在“裸机”之上或作为驻留的应用程序)可实现一个或多个“客户”OS实例的执行。在企业级计算中,基于Linux的虚拟化技术是数据中心的主流功能,而且虚拟化也在嵌入式系统中找到了许多的应用。
嵌入式虚拟化要求将CPU、内存和其他资源进行划分,以驻留RTOS以及一个或多个客户“应用程序”操作系统(通常是Linux)来运行更高层次的软件。
图2 采用虚拟化划分开的运行时
虚拟化可以通过允许RTOS应用程序和RTOS自身几乎原样地运行在新设计之中,而Linux则运行在自己的分区之中,以支持移植。这种方案适用于遗留代码依赖于RTOS的API和RTOS的性能特点的情况,例如实时性能或协议栈的具体实现。
工程师可以使用虚拟化作为从遗留代码向基于Linux的新设计过渡的简短且可靠的桥梁。不过,这种策略可能需要成本。OEM需要支付传统 RTOS运行时的使用费,还需要与VM供应商谈判商用许可证。
图3 RTOS的本地端口
逐步将应用移植到Linux
仿真和虚拟化可以提供直接明了的移植路径来进行原型制作、开发、甚至是对运行在Linux上的传统RTOS应用进行部署。但是,它们的缺点是需要额外的代码,并会涉及基础设施和许可费用。相反,在Linux实现“本地化”就能降低复杂度,简化许可程序,并增强可移植性和性能。
图4 将RTOS任务映射为Linux线程
当设计团队首次动手处理移植项目时,他们往往会选择仿真和虚拟化技术。随着他们不断学习并更加熟悉Linux的开发工具和运行时属性,OEM可以逐步地重新建造传统应用,以实现本地Linux执行。
一种方法是选择单个传统程序进行本地移植,并将它们驻留在独立的Linux进程中。在软件显示出其对其他子系统有着极小或者正常依赖性的情况下,这种技术最为适用。另一种明智的做法是,即使在部署仿真或虚拟化的时候也只将新的功能以本地代码的形式来实现。
重要的一点是,要注意到这种选择并不一定是相互排斥的。例如,设计团队可以每次选择一个关键的传统程序,逐步地将传统应用改造为本地 Linux执行,然后将它们放入单独的Linux进程中,而新功能只以本地代码方式来实现。
相关文章
·
基于嵌入式Linux的PMP系统设计..
·
嵌入式Linux平台的GPS数据采集研究
·
嵌入式Linux基础知识
·
在U-Boot中实现对Yaffs镜像..
·
U-BOOT Makefile 的结构
·
Linux大文件传输
·
Linux内核中的红黑树
·
Linux C 让程序崩溃后生成Co..
·
Linux设备驱动编程之内核模块
·
Linux 关机命令
焦点关注
细数linux学..
活动专题
为何选择粤嵌
粤嵌培训后效果怎么样?
你们合作就业的公司与薪金怎么样?
助学贷款
申请免费试听
需要哪些基础
粤嵌的实力怎么样
粤嵌嵌入式研发机构
高端嵌入式培训
100%包就业嵌入式培训
嵌入式linux培训
嵌入式3G培训
更多
本周热点排行
嵌入式系统及如何开发自己的嵌入式系统
Linux发展面临新机遇 产业井喷在即
Linux环境下基于I2C总线的E...
Linux系统下Shell命令行快...
基于Linux/Qtopia的车载...
Linux系统安全如何设定log日...
基于ARM9的32位高端嵌入式微处...
LSI Tarari 内容处理器大...
基于μClinux的触摸屏设计与关...
linux 基础复习(2)linu...
就业课程
高端课程
短期提高课程
·
嵌入式Linux系统与应用开发就业班
·
ARM+嵌入式Linux开发周末培训班
·
ARM+嵌入式Linux开发周末培训班
·
Android 3G手机开发就业班
·
嵌入式Linux+ARM项目实践暑假班
·
ARM+嵌入式Linux实时网络培训班
·
WinCE应用开发就业班
·
Mips+Linux开发与应用嵌入式培训
·
MTK平台手机设计
·
ARM+WINCE开发周末培训班
就业课程
高端课程
短期提高课程
·
WinCE系统开发高级班
·
嵌入式Linux驱动高级研修班
·
Symbian开发培训高级班
·
嵌入式系统与开发工程硕士班
·
高速嵌入式硬件设计培训班
·
Cadence PCB设计高级培训班
就业课程
高端课程
短期提高课程
·
Cortex-M3与uC/OS-II应用开发提高班
·
ARM+嵌入式Linux驱动移植培训班
·
Linux C语言程序设计培训班
·
Android系统移植培训班
·
WinCE系统定制与驱动开发培训班
·
Cadence PCB设计初级培训班
·
Protel应用实战培训班
最新博客
张先利
级别: 技工
Daimonn
级别: 技工
·
张先利:Linux系统清除Grub的几种方法
·
张先利:Linux启动过程综述
·
Daimonn:Linux学习:Linux内核编译高手教程
·
Daimonn:一种实现嵌入式Linux的新方法-ramdisk
·
ARM编程的方法与实践
·
专用IC解密技术AVR应用技巧
·
ARM的三种中断调试方法
·
采用DSP控制器的4个误解
推荐
细数linux学习技
Linux超线程感知
·
基于PXA270-Linux的智能...
·
基于嵌入式Linux和MiniGU...
·
基于LINUX和CAN总线的工业嵌...
·
基于Linux的液晶显示屏驱动设计
·
嵌入式Linux网络驱动程序开发设计
·
基于嵌入式Linux图像采集恢复和应用
关于我们
|
联系我们
|
我要报名
|
我要咨询
|
粤嵌招聘
|
地理位置图/乘车指引
|
友情链接
|
网站地图
在线客服:
网站合作:
联系地址:广州市科学城光谱西路69号TCL文化产业园二期创意中心B栋4层 邮政编码:510663
客服热线:020-61038926转823/831 61038927 传真:020-61038928 24小时服务热线:18928935315 4006-909-707
技术支持与报障:service@gec-edu.org 020-61038927-809
Copyright
©
2005-2012 粤嵌.All Rights Reserved.粤ICP备10029375号-1
QQ在线交谈
即时在线交谈
免费通话
在线留言/报名
与粤嵌联系
电话:
020-61038926
24小时值班手机:
18928935315