基于VxWorks的嵌入式计算机系统的设计与实现

2014-07-24 14:47徐松林冯英
无线互联科技 2014年5期

徐松林 冯英

摘 要:文章在对嵌入式计算机系统概述的基础上,分析了VxWorks操作系统的突出特点,并通过对硬件驱动的开发、应用层的开发以及应用软件的维护等几个嵌入式系统需要注意的方面进行详细阐述。

关键词:VxWorks操作系统;嵌入式计算机系统;Tornado开发环境

1 引言

嵌入式系统是指以计算机的应用为目标,以计算机技术、电子技术以及半导体技术等技术为支撑,对系统的功能、可靠性、成本、体积、功耗等有严格要求的一种计算机系统[1]。嵌入式计算机系统本质是为了实现某个特定的应用功能而将计算机科学、电子科学、半导体技术等科学技术相结合,嵌入式计算机系统具有系统内核小、功能特定、对技术要求较高、实时性较高、创新性较高、系统较精简等特点。经过几十年的发展,嵌入式系统被广泛应用在工业工程、航空、船舶、汽车、军事设备以及通信等领域。对一个嵌入式系统而言,嵌入式系统采用的实时多任务操作系统很大程度上决定了该系统的可靠性,一些常用的嵌入式计算机操作系统[2]主要有VxWorks操作系统、QNX操作系统、Linux操作系统、PSOS操作系统、Plus操作系统以及Nucleus操作系统等,由于VxWorks具有较为突出的优点,因此本文操作系统主要采用美国Windriver公司开发的VxWorks嵌入式操作系统,系统的硬件平台主要以386EX CPU为核心,该CPU除了包含定时器等常规的接口之外还包含了一个军用的可靠性较高的外部接口。

2 VxWorks嵌入式操作系统的主要优势

美国Windriver公司的VxWorks操作系统是一个较为优秀可靠的操作系统,已经经过了几十年的不断改进和发展,其在嵌入式系统方面的突出优势主要可以概括为以下几个方面:⑴支持较多的工业标准,如ANSIC和TCP/IP网络协议等,它可以为主机和分机之间提供一种无缝连接的工作环境。⑵内核较小,VxWorks的微内核设计使其降低系统消耗的内存并加速对外部指令的反应和处理。⑶接口资源丰富,VxWorks的有着数量巨大的接口资源和丰富的第三方产品为其广泛应用奠定了坚实的基础。⑷高可移植性,VxWorks支持POWERPC CPU、X86 CPU、MIPS CPU以及ARM CPU等几乎现有的全部CPU系列,其可适应于较多种类的硬件平台。⑸Tornado开发环境[2],VxWorks的Tornado开发环境是嵌入式最新一代的特别优秀的开发环境。

3 基于VxWorks的嵌入式计算机系统的开发设计

嵌入式计算机系统是整个嵌入式系统的核心,由硬件驱动层、中间件层、操作系统层和应用层四大部分组成。在设计嵌入式计算机系统时,一般主要对硬件驱动层和应用层进行开发设计,同时,还需要注意所设计的嵌入式计算机系统的可维护性,因此本部分主要介绍硬件驱动的开发、应用层的开发以及应用软件的维护三部分内容。

3.1 驱动层的开发

VxWorks系统的硬件驱动层的开发主要包括BSP的设计、通用接口的设计和专用接口的设计等三个方面的设计。VxWorks系统的BSP兼容性较好,主要负责对硬件在上电时初始化,是VxWorks用来对硬件驱动进行访问。BSP文件包主要包含:源文件,头文件,make文件以及导出文件和驱动模块。

通用标准接口的驱动函数一般是系统库自带的,正常情况下是不需要进行设置的,但是有时存在通用借口的驱动参数与使用的硬件环境不兼容,这时就必须通过使用ar-d命令将不兼容模块从文件库中删掉,再将所使用的硬件驱动源程序进行复制,在Makefile中利用MACH_EXTRA指令将硬件导入到最终的VxWorks映像文件中。在硬件中如果使用了专用接口,这时则需要对专用接口进行自行编制驱动程序。编制程序之后,需要在在Makefile中利用MACH_EXTRA指令将专用设备模块导入到最终的VxWorks映像文件中。

3.2 应用层的开发

Tornado开发环境是VxWorks 操作系统的应用开发环境,因此应用程序的开发主要的Tornado环境中进行完成[4]。开发应用程序会因为所应用的场合有差异而有较大的不同,在Tornado环境开发时主要需要注意对任务进行划分、确定任务的优先级以及多个任务之间进行通讯等问题。例如:应该赋予系统中对实时性、运行频率等有要求的软件应用较高的优先级;复杂任务可能会溢出堆栈,因此在调试软件时,应测试堆栈空间的剩余量。

3.3 应用软件的维护

嵌入式计算机系统的软件很多是在ROM中固化,因此对应用软件的维护有时较为困难。本文此处主要介绍在VxWorks操作系统中的对软件进行现场维护的实现方式。

众所周知,Tornado环境一般可以为嵌入式操作系统提供源文件[5],在使用TrueFFS文件系统时,需要对sysTffs.c文件和xxxMTD.c文件进行更新。在文件系统构建以后,可以导入TrueFFS文件系统的宏定义到Config.n中。

当软件需要在轨维护,可以通过特定的外部接口把所需要更新的新代码导入至目标机,利用新代码来替代旧的文件代码,最后在重新启动系统之后会对软件进行自动更新。如果当系统应用软件的配置发生了变化之后,则要求用户对系统应用软件进行更新和维护,TrueFFS文件系统中的MTDS模块可以为系统应用软件的维护提供接口。

[参考文献]

[1]VxWorks与嵌入式软件开发[M].机械工业出版社,2003.

[2]Barbalace A,Luchetta A,Manduchi G,et al.Performance comparison of VxWorks,Linux, RTAI and Xenomai in a hard real-time application[C].Real-Time Conference,2007 15th IEEE-NPSS.IEEE,2007:1-5.

[3]祥营,桂枝,柏.嵌入式实时操作系统VxWorks及其开发环境Tornado[M].中国电力出版社,2002.

[4]王才善,陈光武,旷文珍,等.基于VxWorks的实时多任务程序设计机制分析[J].铁路计算机应用, 2009(5):12-15.

[5]戴娅,何亦征,白英彩.基于VxWorks多任务的无线接收机系统设计与实现[J].计算机应用与软件, 2007,24(9):159-161.