VxWorks嵌入式實時操作系統(tǒng)結構簡析
關鍵詞:嵌入式 實時 操作系統(tǒng) 微內核 任務 中斷 調度 目標系統(tǒng)
一 VxWorks實時操作系統(tǒng)背景
用戶在開發(fā)具有日益復雜的32位嵌入式處理器的產(chǎn)品時,需要一個用來連接產(chǎn)品應用程序和底層硬件的操作系統(tǒng)。用戶所尋求的操作系統(tǒng)應該具有的最重要的特點包括:
可靠性高的實時性能
可下載到最終產(chǎn)品的板上內存的豐富和靈活的功能模塊集與全面的主機開發(fā)環(huán)境的可協(xié)同工作。
VxWorks操作系統(tǒng)是美國WindRiver公司于1987年設計開發(fā)的一種嵌入式實時操作系統(tǒng)(),是Tornado II嵌入式開發(fā)環(huán)境的關鍵組成部分。
VxWorks是Windriver公司開發(fā)專門為實時嵌入式系統(tǒng)設計開發(fā)的操作系統(tǒng)軟件,為程序員提供了高效的實時任務調度、中斷管理,實時的系統(tǒng)資源以及實時的任務間通信。應用程序員可以將盡可能多的精力放在應用程序本身,而不必再去關心系統(tǒng)資源的管理。該系統(tǒng)主要應用在單板機、數(shù)據(jù)網(wǎng)絡(以太網(wǎng)交換機、路由器)和通信方面等多方面。通過對VxWorks的研究,可以使我們對嵌入式操作系統(tǒng)的研究和開發(fā)更進一步,尤其對國內的類似研制廠家有借鑒意義。
VxWorks操作系統(tǒng)的主要功能
目前VxWorks操作系統(tǒng)的版本為VxWorks 5.4,其核心功能主要有:
微內核wind
任務間通信機制
網(wǎng)絡支持
文件系統(tǒng)和I/O管理
標準實時擴展
C++以及標準支持
這些核心功能可以與WindRiver系統(tǒng)的附件和Tornado合作伙伴的產(chǎn)品結合在一起使用。
二 VxWorks實時操作系統(tǒng)的簡介
VxWorks實時操作系統(tǒng)包括微內核wind、網(wǎng)絡支持、文件系統(tǒng)和I/O管理、C++和標準支持等核心功能。
1. 微內核設計
處于VxWorks實時操作系統(tǒng)核心的是高性能的微內核wind。這個微內核支持所有的實時特征:快速任務切換、中斷支持、搶占式和時間片輪轉調度等。微內核設計減少了系統(tǒng)開銷,從而保證了對外部事件的快速、確定的反應。
運行環(huán)境也提供了有效的任務間通信機制,允許獨立的任務在實時系統(tǒng)中與其行動相協(xié)調。開發(fā)者在開發(fā)應用程序時可以使用多種方法:用于簡單數(shù)據(jù)共享的共享內存、用于單CPU的多任務間信息交換的消息隊列和管道、套接口、用于網(wǎng)絡通信的遠程過程調用、用于處理異常事件的信號等。為了控制關鍵的系統(tǒng)資源,提供了三種信號燈:二進制、計數(shù)、有優(yōu)先級繼承特性的互斥信號燈。
2. 可裁剪的運行軟件
VxWorks之所以設計為具有可裁剪性,是為了使開發(fā)者能夠根據(jù)自己的應用程序需要,而不是根據(jù)操作系統(tǒng)的需要,來分配稀少的內存資源。從需要幾個KB字節(jié)內存的深層嵌入式設計到需要更多的操作系統(tǒng)的功能的復雜的高端的實時系統(tǒng),開發(fā)者也許需要從100多個不同的選項中進行選擇以產(chǎn)生上百種的配置方式。許多獨立的模塊都是在開發(fā)時要使用而在產(chǎn)品中卻不再使用。
而且,這些子系統(tǒng)本身也是可裁剪的,這樣就允許開發(fā)者為最廣泛的應用程序進行更為優(yōu)化的VxWorks運行環(huán)境配置。例如,如果應用程序不需要某些功能模塊,就可以將它移出 C運行庫;如果應用程序不需要某些特定的內核同步對象,這些對象也可以忽略。還有,TCP、UDP、套接口和標準Berkeley服務也可以根據(jù)需要將之移出或移入網(wǎng)絡協(xié)議棧。
這些配置選項可以通過Tornado II的項目工具圖形接口輕易地選擇。開發(fā)者也可以使用Tornado II的自動裁剪特性,自動地分析應用程序代碼并合并合適的選項。
三 VxWorks操作系統(tǒng)的基本結構
VxWorks操作系統(tǒng)的基本構成部件主要有以下五個部分:
板級支持包BSP(Board )
微內核wind
網(wǎng)絡系統(tǒng)
文件系統(tǒng)
I/O系統(tǒng)
VxWorks 操作系統(tǒng)包括了板級支持包BSP(Board )、進程管理、存儲管理、設備管理、文件系統(tǒng)管理、網(wǎng)絡協(xié)議及系統(tǒng)應用等幾個部分。VxWorks只占用了很小的存儲空間,并可高度裁減,保證了系統(tǒng)能以較高的效率運行。
1.板級支持包 BSP(Board )
板級支持包對各種板子的硬件功能提供了統(tǒng)一的軟件接口,它包括硬件初始化、中斷的產(chǎn)生和處理、硬件時鐘和計時器管理、局域和總線內存地址映射、內存分配等等。每個板級支持包括一個 ROM 啟動(Boot ROM)或其它啟動機制。
2.高性能的實時操作系統(tǒng)核心 wind
[1].VxWorks 的核心,被稱作 wind,包括多任務調度(采用優(yōu)先級搶占方式),任務間的同步和進程間通信機制以及中斷處理,看門狗和內存管理機制。一個多任務環(huán)境允許實時應用程序以一套獨立任務的方式構筑,每個任務擁有獨立的執(zhí)行線程和它自己的一套系統(tǒng)資源。進程間通信機制使得這些任務的行為同步、協(xié)調。
[2].wind使用中斷驅動和優(yōu)先級的方式。它縮短了上下文轉換的時間開銷和中斷的時延。在 VxWorks 中,任何例程都可以被啟動為一個單獨的任務,擁有它自己的上下文和堆棧。還有一些其它的任務機制可以使任務掛起、繼續(xù)、刪除、延時或改變優(yōu)先級。
[3].wind 核提供信號量作為任務間同步和互斥的機制。在 wind 核中有幾種類型的信號量,它們分別針對不同的應用需求:二進制信號量、計數(shù)信號量、互斥信號量和 信號量。所有的這些信號量是快速和高效的,它們除了被應用在開發(fā)設計過程中外,還被廣泛地應用在 VxWorks 高層應用系統(tǒng)中。對于進程間通信,wind 核也提供了諸如消息隊列、管道、套接字和信號等機制。
3.網(wǎng)絡設施
VxWorks的網(wǎng)絡結構如圖所示,它提供了對其它網(wǎng)絡和 TCP/IP 網(wǎng)絡系統(tǒng)的"透明"訪問,包括與BSD套接字兼容的編程接口,遠程過程調用(RPC),(可選項),遠程文件訪問(包括客戶端和服務端的NFS機制以及使用RSH,F(xiàn)TP 或 P的非NFS機制)以及 和 ARP 代理。無論是松耦合的串行線路、標準的以太網(wǎng)連接還是緊耦合的利用共享內存的背板總線,所有的 VxWorks 網(wǎng)絡機制都遵循標準的 協(xié)議。
4.文件系統(tǒng)
VxWorks 提供的快速文件系統(tǒng)適合于實時系統(tǒng)應用。它包括幾種支持使用塊設備(如磁盤)的本地文件系統(tǒng)。這些設備都使用一個標準的接口從而使得文件系統(tǒng)能夠被靈活地在設備驅動程序上移植。
VxWorks 也支持 磁帶設備的本地文件系統(tǒng)。VxWorks I/O 體系結構甚至還支持在一個單獨的 VxWorks 系統(tǒng)上同時并存幾個不同的文件系統(tǒng)。
VxWorks 支持四種文件系統(tǒng):
dosFs
rt11Fs
rawFs
tapeFs。
另一方面,普通數(shù)據(jù)文件,外部設備都統(tǒng)一作為文件處理。它們在用戶面前有相同的語法定義,使用相同的保護機制。這樣既簡化了系統(tǒng)設計又便于用戶使用。
5.I/O 系統(tǒng)
VxWorks 提供了一個快速靈活的與 C 兼容的 I/O 系統(tǒng),包括
標準的緩沖 I/O
標準的異步 I/O
VxWorks 包括以下驅動程序:
網(wǎng)絡驅動
管道驅動
RAM盤驅動
驅動
鍵盤驅動
顯示驅動
磁盤驅動
并口驅動
四Tornado II系統(tǒng)開發(fā)工具
了解Vxworks操作系統(tǒng)的構成,對我們開發(fā)目標系統(tǒng)上的軟件和調試有重要意義,同時也能鏈接其內核的許多功能方便共享。在Tornado集成環(huán)境上的開發(fā)其基本點是動態(tài)鏈接與加載,即Tornado允許開發(fā)者增量地將目標模塊加載到目標系統(tǒng)上去,這種動態(tài)的鏈接和加載功能是Tornado系統(tǒng)的核心功能,可以使開發(fā)者省去通常的開發(fā)步驟:在主機上將應用程序與內核鏈接起來,然后將整個應用程序下載到目標系統(tǒng)上去。這樣,編輯-測試-調試的周期會大為縮短;而且,所有的模塊都是可以共享的,主機上的應用程序模塊也不需要重新鏈接,所以,加載目標模塊到運行中的VxWorks目標系統(tǒng)中以達到調試和重新配置的目的成為可能。關于如何調試VXWORKS目標系統(tǒng)本文不贅述。