實(shí)時(shí)嵌入式操作系統(tǒng)VxWorks設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)
摘要:在嵌入式實(shí)時(shí)系統(tǒng)中進(jìn)行軟硬件開發(fā)的關(guān)鍵是編寫高效可靠的設(shè)備驅(qū)動(dòng)程序,而VxWorks下END網(wǎng)口驅(qū)動(dòng)程序是設(shè)備驅(qū)動(dòng)程序中較為復(fù)雜的一類。首先從整體上分析了VxWorks操作系統(tǒng)的特點(diǎn)與結(jié)構(gòu),然后介紹了VxWorks中設(shè)備驅(qū)動(dòng)程序的功能、結(jié)構(gòu)和開發(fā)方法,并給出了END網(wǎng)口驅(qū)動(dòng)程序的設(shè)計(jì)實(shí)例。該文時(shí)VxWorks設(shè)備驅(qū)動(dòng)程序開發(fā)者具有參考價(jià)值,通過(guò)本文可以方便的進(jìn)行END驅(qū)動(dòng)的配置和使用。
關(guān)鍵詞:實(shí)時(shí)操作系統(tǒng);板級(jí)支持包;設(shè)備驅(qū)動(dòng)程序;END網(wǎng)口驅(qū)動(dòng)
VxWorks是WindRiver公司開發(fā)的一種高性能的嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS),以其優(yōu)良的可靠性、開放性、實(shí)時(shí)性和易用性贏得了大量的客戶。VxWorks是目前嵌入式系統(tǒng)領(lǐng)域中使用最廣泛、市場(chǎng)占有率最高的系統(tǒng),被廣泛地應(yīng)用在通信、軍事、航空、航天等高精尖技術(shù)及實(shí)時(shí)性要求極高的領(lǐng)域中,如衛(wèi)星通訊、軍事演習(xí)、彈道制導(dǎo)、飛機(jī)導(dǎo)航等。
在目前多數(shù)操作系統(tǒng)中,用戶必須通過(guò)驅(qū)動(dòng)程序才能與設(shè)備進(jìn)行交互,正是設(shè)備驅(qū)動(dòng)程序?yàn)槠涮峁┝丝稍L問(wèn)性和可操作性,而設(shè)備驅(qū)動(dòng)程序本身跟操作系統(tǒng)的相關(guān)性特別密切。本文針對(duì)VxWorks操作系統(tǒng)特點(diǎn),分析設(shè)備驅(qū)動(dòng)程序的功能、組成和開發(fā)過(guò)程,并給出END網(wǎng)口驅(qū)動(dòng)程序的一個(gè)設(shè)計(jì)實(shí)例。
1 嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks
下面首先圍繞VxWorks的特點(diǎn)和結(jié)構(gòu)這兩個(gè)關(guān)鍵問(wèn)題進(jìn)行闡述。
1.1 VxWorks的特點(diǎn)
1)可靠性 操作系統(tǒng)的用戶希望在一個(gè)工作穩(wěn)定、可以信賴的環(huán)境中工作,所以操作系統(tǒng)的可靠性是用戶首先要考慮的問(wèn)題。而穩(wěn)定、可靠一直是VxWorks的一個(gè)突出優(yōu)點(diǎn)。自從對(duì)中國(guó)的銷售解禁以來(lái),VxWorks以其良好的可靠性在中國(guó)贏得了越來(lái)越多的用戶。
2)實(shí)時(shí)性 實(shí)時(shí)性是指能夠在限定時(shí)間內(nèi)執(zhí)行完規(guī)定的功能并對(duì)外部的異步事件做出響應(yīng)的能力。實(shí)時(shí)性的強(qiáng)弱是以完成規(guī)定功能和做出響應(yīng)時(shí)間的長(zhǎng)短來(lái)衡量的。VxWorks的實(shí)時(shí)性非常強(qiáng),其系統(tǒng)本身的開銷很小,進(jìn)程調(diào)度、進(jìn)程間通信、中斷處理等系統(tǒng)公用程序精練而有效,它們?cè)斐傻难舆t很短。VxWorks提供的多任務(wù)機(jī)制中對(duì)任務(wù)的控制采用了優(yōu)先級(jí)搶占(Preemptive Priority Scheduling)和輪轉(zhuǎn)調(diào)度(Round-Robin Scheduling)機(jī)制,也充分保證了可靠的實(shí)時(shí)性,使同樣的硬件配置能滿足更強(qiáng)的實(shí)時(shí)性要求,為應(yīng)用的開發(fā)留下更大的余地。
3)可裁減性 用戶在使用操作系統(tǒng)時(shí),并不是操作系統(tǒng)中的每一個(gè)部件都要用到。例如圖形顯示、文件系統(tǒng)以及一些設(shè)備驅(qū)動(dòng)在某些嵌入式系統(tǒng)中往往并不使用。VxWorks由一個(gè)體積很小的內(nèi)核及一些可以根據(jù)需要進(jìn)行定制的系統(tǒng)模塊組成。VxWorks內(nèi)核最小為8 kB,即便加上其他必要模塊,所占用的空間也很小,且不失其實(shí)時(shí)、多任務(wù)的系統(tǒng)特征。由于它的高度靈活性,用戶可以很容易地對(duì)這一操作系統(tǒng)進(jìn)行定制或作適當(dāng)開發(fā),來(lái)滿足自己的實(shí)際應(yīng)用需要。
1.2 VxWorks系統(tǒng)結(jié)構(gòu)
VxWorks系統(tǒng)結(jié)構(gòu)如圖1所示,可以從6部分來(lái)說(shuō)明。
1)高性能實(shí)時(shí)內(nèi)核(Wind Kernel) VxWorks的核心,一般稱作Wind,Wind使用中斷驅(qū)動(dòng)和基于優(yōu)先級(jí)的調(diào)度方式。負(fù)責(zé)多任務(wù)調(diào)度、任務(wù)間的同步、進(jìn)程間通信機(jī)制、中斷處理、看門狗和內(nèi)存管理機(jī)制。
2)文件系統(tǒng)(File System) VxWorks提供快速文件,它包括幾種支持使用塊設(shè)備(如磁盤)的本地文件系統(tǒng)。這些設(shè)備都使用一個(gè)標(biāo)準(zhǔn)的接口,從而使得文件系統(tǒng)能夠靈活地在設(shè)備驅(qū)動(dòng)程序上移植。另外,VxWorks也支持SCSI磁帶設(shè)備的本地文件系統(tǒng)。
3)設(shè)備驅(qū)動(dòng)(Device Drivers) VxWorks系統(tǒng)提供BSP、Network Driver、SCSI Driver構(gòu)成硬件抽象層。硬件抽象層是一個(gè)介于操作系統(tǒng)和底層硬件之間的軟層次,包括了系統(tǒng)中大部分與硬件相關(guān)的軟件模塊。在功能上包含兩部分:系統(tǒng)初始化及與硬件相關(guān)的設(shè)備驅(qū)動(dòng)。
4)I/O系統(tǒng)(I/O System) VxWorks提供了一個(gè)快速靈活的與ANSIC兼容的I/O系統(tǒng),包括UNIX標(biāo)準(zhǔn)的緩沖I/O和POSIX標(biāo)準(zhǔn)的異步I/O 。
5)網(wǎng)絡(luò)堆棧(Network Stack) VxWorks提供了對(duì)其他網(wǎng)絡(luò)和TCP/IP網(wǎng)絡(luò)系統(tǒng)的“透明”訪問(wèn),包括與BSD套接字兼容的編程接口,遠(yuǎn)程過(guò)程調(diào)用(RPC),遠(yuǎn)程文件訪問(wèn)以及BOOTP和ARP代理。所有的VxWorks網(wǎng)絡(luò)機(jī)制都遵循標(biāo)準(zhǔn)的Intemet協(xié)議。
6)板級(jí)支持包 BSP(Board Support Package)板級(jí)支持包向VxWorks操作系統(tǒng)提供了對(duì)各種板子的硬件功能操作的統(tǒng)一的軟件接口,它是保證VxWorks操作系統(tǒng)可移植性的關(guān)鍵,它包括硬件初始化、中斷的產(chǎn)生和處理、硬件時(shí)鐘和計(jì)時(shí)器管理、局域和總線內(nèi)存地址映射、內(nèi)存分配等等。每個(gè)板級(jí)支持包括一個(gè)ROM啟動(dòng)(Boot ROM)或其他啟動(dòng)機(jī)制。
評(píng)論