RTOSVxWorks应用迁移Linux的技术实现

RTOSVxWorks应用迁移Linux的技术实现陈荣观摘要:VxWorks以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。Linux完全开源,全世界拥有几十万的开源项目,目前主流的Android及嵌入式设备都采用Linux操作系统。该文着重介绍将基于VxWorks开发的应用程序移植到Linux的技术实现。关键词:Linux;Vxworks;RTOS;程序迁移;嵌入式:TP393文献标识码:A:1009-3044(2016)09-0087-031概述VxWorks是美国WindRiverSystem公司(以下简称风河公司,即WRS公司)于十九世纪八十年代设计开发的一种嵌入式实时操作系统(RTOS)。良好的持续发展能力、高性能的内核以及友好的组件化用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的F-16、FA-18战斗机、B-2隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器、2008年5月登陆的凤凰号,和2012年8月登陆的好奇号也都使用到了VxWorks。Linux操作系统经过二十几年的发展,其拥有几十万的开发人员,成千上万的开源项目,成为了开发人员的首选。在移动领域借助Android与IOS平分天下。在嵌入式领域,随着CPU主频的发展,克服了Linux分时操作系统的实时缺陷,其精度已经完成可以满足大部分实时领域的要求,特别在民用领域。目前除了在工业控制,航天,军用领域保持优势以外,VxWorks的优势荡然无存。目前开发人员碰到使用新的硬件方案,厂家基本上不提供VxWorks的Bsp,只支持Linux。这个给开发人员增加了很大的开发成本,所有的程序跟模块都要重新设计,以适应新的系统,增加了开发周期。本文设计一种方案,可以很方便地将VxWorks的应用程序搬迁到Linux上,为厂家缩短开发周期,减少程序搬迁风险,大大降低了开发成本。本文先介绍VxWorks的技术原理,然后分析技术实现细节,最后拿一个应用程序作为例子。2VxWorks系统原理VxWorks操作系统以实时著称,系统代码组件化比较好,系统精简,产品的IMAGE可以做的非常小。VxWorks属于共享内存的操作系统,没有进程的概念,按照任务进行调度,每个任务是分配了堆栈,可以访问系统的所有内存空间,比较高效,但是也比较危险,很容易就会发生系统崩溃的情况。但是也就是因为这个特性,因此基于VxWorks开发的产品一般是单个应用产品,这个打包完可以以一个进程体现在Linux里面。VxWorks系统主要如下几个组件,一般的应用程序也就用到如下几个模块:任务调度负责任务优先级,任务创建,任务删除等功能。任务通讯主要涉及队列管理,管道管理等。IO管理就是通用外设的输入输出管理。文件管理包含文件或者链接创建,修改,删除,检索等等。内存管理包含内存申请及内存释放。定时器管理就是定时器创建,定时器删除。网络通信包含套接字创建,udp/tcp通信,套接字删除,及配置管理。同步就是任务同步。互斥就是任务互斥,保护关键资源。在VxWorks操作系统的代码架构里面,一般写一个应用程序只需要涉及上面几个系统组件,由于VxWorks操作系统组件化非常好,这几个组件的耦合度非常低,每个组件对外提供都是单独的头文件,比如任务调度,其头文件为taskLib.h,任务通讯如果用的队列,那其头文件就是msgQLib.h,如果是定时器管理,那其头文件就是timerLib.h,因此也让程序移植提供了很大的便利性。有很多人认为,VxWorks跟Linux操作性的系统头文件差异化太大,因此移植难度成倍速增加,其实不然,就是由于VxWorks的高度组件化,让程序移植提供了很大的便利性。3技术实现我们假设现在要移植一个简单的聊天程序到Linux,那么其应该包含网络通讯组件(udp通讯),任务调度组件(任务创建),任务通讯(队列报文排序管理),内存管理(内存申请),定时器模块(报文超时重发),任务互斥/同步(并发多人聊天)等基础组件,虽然功能简单,但是基本上也包含了常用的功能,我们就以这个为例来谈谈技术实现。正常这个程序在Linux上...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

文秘专家
机构认证
内容提供者

1

确认删除?