首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
» 实时操作系统从RTOS移植到实时Linux
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
实时操作系统从RTOS移植到实时Linux
发短消息
加为好友
我是MT
当前离线
UID
1023166
帖子
6651
精华
0
积分
3328
阅读权限
90
来自
燕山大学
在线时间
230 小时
注册时间
2013-12-19
最后登录
2016-1-5
论坛元老
UID
1023166
性别
男
来自
燕山大学
1
#
打印
字体大小:
t
T
我是MT
发表于 2015-9-25 08:30
|
只看该作者
实时操作系统从RTOS移植到实时Linux
操作系统
,
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文档描述了超过一千种独特的函数和子例程。实际应用只使用数十个独特的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进程中,而新功能只以本地代码方式来实现。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议