徐松林 馮英
摘 要:文章在對嵌入式計算機系統概述的基礎上,分析了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.