一种实时操作系统VxWorks的剪裁方法

文档序号:6635552阅读:516来源:国知局
一种实时操作系统VxWorks的剪裁方法
【专利摘要】本发明公开了一种实时操作系统VxWorks的剪裁方法,包括:一、组件级剪裁,利用操作系统工具,对操作系统不需要的组件进行剪裁;二、文件级剪裁,梳理Makefile文件,将不需要保留的文件及未被编译的文件进行剪裁;三、函数级剪裁,分析每个函数的调用与被调用关系,将未被调用的函数进行剪裁;四、语句级剪裁,通过代码走查和分析,将不需要的代码进行剪裁。本发明能够解决操作系统剪裁不完全,有冗余代码产生的问题,同时还能提高系统的安全性和可靠性。
【专利说明】一种实时操作系统VxWorks的剪裁方法

【技术领域】
[0001]本发明涉及一种实时操作系统VxWorks的剪裁方法,属于实时操作系统应用领域。

【背景技术】
[0002]操作系统VxWorks是美国WindRiver公司推出的一种嵌入式实时操作系统。Vxfforks的微内核Wind是一个具有较高性能的、标准的嵌入式实时操作系统内核,具有快速多任务切换、抢占式任务调度、任务间通信手段多样化等主要特点,使其拥有了任务间切换时间短、中断延迟小、网络流量大等优点,与其它嵌入式实时操作系统相比具有一定的优势。
[0003]VxWorks系统具有较好的可裁剪能力,开发者可以通过交叉开发环境对操作系统的功能、大小进行增减,从而可调节应用程序的系统资源。
[0004]现有的剪裁方法大多通过开发工具的组件管理界面进行剪裁,但该方法在删除组件时,依赖检查不完全,只能简单的删除明确被选中的组件,而其它依赖于它的组件被保留,在工程中成为遗留的无用垃圾组件,这些组件成为冗余代码,占用着大部分存储空间。在深层嵌入式应用中,操作系统往往只有几十兆的存储空间,冗余代码的存在,使应用程序的存储资源受限。另一个方面,对于高安全和高可靠的安全关键性系统,操作系统中未剪裁的功能可能会给系统带来一些潜在的风险。


【发明内容】

[0005]本发明的技术解决问题是:克服现有技术的不足,提出一种实时操作系统Vxfforks的剪裁方法,该方法能够解决操作系统VxWorks剪裁不完全、有冗余代码产生的问题,同时能够提高系统的安全性和可靠性。
[0006]本发明的技术解决方案:一种实时操作系统VxWorks的剪裁方法,步骤如下:
[0007]步骤一:对操作系统VxWorks进行组件级剪裁:
[0008](1.1)根据操作系统VxWorks要求实现的功能得到需要保留的组件;
[0009](1.2)通过分析操作系统VxWorks组件间的依赖关系,得到与需要保留的组件有依赖关系的组件;
[0010](1.3)通过操作系统VxWorks自带的剪裁软件将操作系统VxWorks中除(1.1)和
(1.2)以外的组件进行剪裁;
[0011]步骤二:对经过组件级剪裁后的操作系统VxWorks进行文件级剪裁:
[0012](2.1)根据步骤一得到的需要保留的组件和与需要保留的组件有依赖关系的组件,对Makefile文件进行梳理,得到所有需要保留的文件清单;
[0013](2.2)对步骤一剪裁后的操作系统进行编译,根据梳理后得到的文件清单,在Makefile文件中将不需要保留的文件及未被编译的文件进行剪裁;
[0014]步骤三:对经过文件级剪裁后的操作系统VxWorks进行函数级剪裁:
[0015](3.1)根据应用程序和操作系统VxWorks之间需要调用的函数接口,在步骤二得到的保留文件中分析各个函数与所述函数接口之间的调用与被调用关系;
[0016](3.2)根据函数的调用与被调用关系,对未被调用的函数进行剪裁;
[0017]步骤四:对函数级剪裁后的操作系统VxWorks进行语句级剪裁:
[0018]对步骤三得到的操作系统VxWorks的函数源码进行代码走查和分析,找出应用程序不需要的语句以及函数源码中为了与其它组件进行通讯的针对性扩展功能语句,对上述语句进行剪裁,从而完成VxWorks实时操作系统的剪裁。
[0019]所述步骤三中的函数接口包括:
[0020]板级支持包代码需要调用的操作系统VxWorks提供的应用程序编程接口 ;
[0021]系统框架或用户应用程序需要调用的操作系统VxWorks提供的应用程序编程接P ;
[0022]操作系统VxWorks内部需要调用的应用程序编程接口。
[0023]本发明与现有技术相比具有如下有益效果:
[0024](I)传统的VxWorks的剪裁仅局限于利用VxWorks自身的剪裁软件进行组件级剪裁,属于浅层次剪裁,系统冗余较多,同时占用大量资源;本发明通过采用可分层VxWorks的剪裁方法,经过组件级、文件级、函数级和代码级四个层次的剪裁,将冗余功能组件及无用代码彻底剪裁,实现了对VxWorks源码最大程度的剪裁;
[0025](2)本发明在实现最大程度剪裁的同时,保留了应用程序及操作系统可运行所需的功能组件,节省程序存储器和数据存储器内存空间的同时,提高了操作系统的安全性和可靠性。

【专利附图】

【附图说明】
[0026]图1为本发明方法流程图。

【具体实施方式】
[0027]本发明提出一种实时操作系统VxWorks的剪裁方法,如图1所示,包含组件级剪裁、文件级剪裁、函数级剪裁和语句级剪裁四个部分,具体如下:
[0028]一、对原始的操作系统VxWorks进行组件级剪裁
[0029](1.1)根据操作系统VxWorks要求实现的功能得到需要保留的组件;
[0030](1.2)通过分析操作系统VxWorks组件间的依赖关系,得到与需要保留的组件有依赖关系的组件;
[0031](1.3)通过操作系统VxWorks自带的剪裁软件将操作系统VxWorks中除(1.1)和
(1.2)以外的组件进行剪裁;
[0032]例如,经过分析,操作系统中的banner组件、网络组件、串口组件、WDB组件不属于需要保留的组件,且与需要保留的组件没有依赖关系,则可以通过系统软件自带的剪裁软件,如Tornado或Workbench,将上述组件删除。
[0033]二、对组件级剪裁后的代码进行文件级剪裁
[0034](2.1)根据步骤一得到的需要保留的组件和与需要保留的组件有依赖关系的组件,对Makefile文件进行梳理,得到所有需要保留的文件清单;
[0035]对Makefile文件的内容进行分析,该Makefile文件中包含了当前目录下所有需要编译文件的列表清单,根据需要保留的组件和与需要保留的组件有依赖关系的组件,梳理出需要保留的文件列表清单;
[0036](2.2)对步骤一剪裁后的操作系统进行编译,编译通过后,根据梳理后得到的文件清单,在Makefile文件中将不需要保留的文件及未被编译的文件进行剪裁;
[0037]对于未被编译的文件,可以直接在Makefile文件中剪裁;同时根据梳理出的文件清单,对于不需要保留的文件,可以在Makefile文件中去除不需要保留文件对应的.0目标文件;
[0038]三、对文件级剪裁后的代码进行函数级剪裁
[0039](3.1)根据应用程序和操作系统VxWorks之间需要调用的函数接口,在步骤二得到的保留文件中分析各个函数与所述函数接口之间的调用与被调用关系;
[0040]对于文件级剪裁后保留的每个函数,对该函数与其它功能组件及其函数的相关性进行分析。应用程序和操作系统VxWorks之间需要调用的函数接口主要包括:板级支持包代码(BSP)需要调用的操作系统VxWorks提供的应用程序编程接口 ;系统框架或用户应用程序需要调用的操作系统VxWorks提供的应用程序编程接口,操作系统VxWorks内部需要调用的应用程序编程接口。凡是应用程序需要保留的功能,其接口所调用的所有函数需要保留,其它函数若被保留的函数所调用,则予以保留;
[0041](3.2)根据函数的调用与被调用关系,将未被调用的函数进行剪裁;
[0042]根据(3.1)中分析出的调用关系,将不会对应用程序所使用的应用程序编程接口造成影响的函数进行剪裁;
[0043]四、对函数级剪裁后的代码进行语句级剪裁
[0044](4.1)通过代码走查,分析函数源码中应用程序不需要的语句,以及函数源码中为了与其它组件进行通讯的针对性扩展功能语句;
[0045]对代码进行分析,其中剪裁的对象可分为:保留函数中,依赖于被剪裁功能组件的代码和变量以及应用程序不需要的功能语句;函数源码中为了与其它组件进行通讯的针对性扩展功能语句(例如内核针对WindView进行的扩展的语句);
[0046](4.2)根据函数源码分析的结果,将不需要的代码进行剪裁。
[0047]代码剪裁使用预编译宏进行控制,预编译宏在VxWorks.h头文件中定义为TRUE。如果想恢复为VxWorks剪裁前的代码,只需将预编译宏设置为FALSE。如果剪裁涉及到功能组件库、应用程序接口或者VxWorks内核内部使用的接口,则依次使用具有不同名称的预编译宏进行条件控制编译。
[0048]本发明未详细描述内容为本领域技术人员公知技术。
【权利要求】
1.一种实时操作系统VxWorks的剪裁方法,其特征在于步骤如下: 步骤一:对操作系统VxWorks进行组件级剪裁: (1.D根据操作系统VxWorks要求实现的功能得到需要保留的组件; (1.2)通过分析操作系统VxWorks组件间的依赖关系,得到与需要保留的组件有依赖关系的组件; (1.3)通过操作系统VxWorks自带的剪裁软件将操作系统VxWorks中除(1.1)和(1.2)以外的组件进行剪裁; 步骤二:对经过组件级剪裁后的操作系统VxWorks进行文件级剪裁: (2.1)根据步骤一得到的需要保留的组件和与需要保留的组件有依赖关系的组件,对Makefile文件进行梳理,得到所有需要保留的文件清单; (2.2)对步骤一剪裁后的操作系统进行编译,根据梳理后得到的文件清单,在Makefile文件中将不需要保留的文件及未被编译的文件进行剪裁; 步骤三:对经过文件级剪裁后的操作系统VxWorks进行函数级剪裁: (3.1)根据应用程序和操作系统VxWorks之间需要调用的函数接口,在步骤二得到的保留文件中分析各个函数与所述函数接口之间的调用与被调用关系; (3.2)根据函数的调用与被调用关系,对未被调用的函数进行剪裁; 步骤四:对函数级剪裁后的操作系统VxWorks进行语句级剪裁: 对步骤三得到的操作系统VxWorks的函数源码进行代码走查和分析,找出应用程序不需要的语句以及函数源码中为了与其它组件进行通讯的针对性扩展功能语句,对上述语句进行剪裁,从而完成VxWorks实时操作系统的剪裁。
2.如权利要求1所述的一种实时操作系统VxWorks的剪裁方法,其特征在于:所述步骤三中的函数接口包括: 板级支持包代码需要调用的操作系统VxWorks提供的应用程序编程接口 ; 系统框架或用户应用程序需要调用的操作系统VxWorks提供的应用程序编程接口 ; 操作系统VxWorks内部需要调用的应用程序编程接口。
【文档编号】G06F9/445GK104461617SQ201410681907
【公开日】2015年3月25日 申请日期:2014年11月24日 优先权日:2014年11月24日
【发明者】王瑞, 刘志成, 陆璐, 胡泉, 李沫, 孙凤丽, 杜轩, 郭栋, 杨磊, 陈亚伟, 郑明慧, 李国良, 杨桂枝, 杨隽, 杨昕 申请人:北京信息控制研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1