宋 然
◆ 概述
嵌入式實(shí)時(shí)操作系統(tǒng)(Real Time Embedded Operating System)是一種實(shí)時(shí)的、支持嵌入式系統(tǒng)應(yīng)用的操作系統(tǒng)軟件,它是嵌入式系統(tǒng)(包括硬、軟件系統(tǒng))極為重要的組成部分,通常包括與硬件相關(guān)的底層驅(qū)動(dòng)軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動(dòng)接口、通信協(xié)議、圖形界面、標(biāo)準(zhǔn)化瀏覽器Browser等。目前,嵌入式操作系統(tǒng)的品種較多,其中較為流行的有:VxWorks、Windows CE、Palm OS、Real Time Linux、pSOS、PowerTV以及Microware公司的
OS-9。與通用操作系統(tǒng)相比較,它在系統(tǒng)實(shí)時(shí)高效性、硬件的相關(guān)依賴性、軟件固態(tài)化以及應(yīng)用的專用性等方面具有較為突出的特點(diǎn)。
◆ 嵌入式操作系統(tǒng)的發(fā)展
(1) 無操作系統(tǒng)的嵌入算法階段:這一階段的嵌入式系統(tǒng)是以可編程控制器的形式、以單芯片為核心的系統(tǒng),同時(shí)具有與一些監(jiān)測、伺服、指示設(shè)備相配合的功能。這種系統(tǒng)大部分應(yīng)用于一些專業(yè)性極強(qiáng)的工業(yè)控制系統(tǒng)中,通過匯編語言編程對系統(tǒng)進(jìn)行直接控制,運(yùn)行結(jié)束后清除內(nèi)存。這一階段系統(tǒng)的主要特點(diǎn)是系統(tǒng)結(jié)構(gòu)和功能都相對單一,針對性強(qiáng),但無操作系統(tǒng)支持,幾乎沒有用戶接口。
(2) 簡單監(jiān)控式的實(shí)時(shí)操作系統(tǒng)階段:這一階段的嵌入式系統(tǒng)主要以嵌入式處理器為基礎(chǔ),以簡單監(jiān)控式操作系統(tǒng)為核心。系統(tǒng)的特點(diǎn)是處理器種類繁多,通用性比較弱;系統(tǒng)開銷小,效率高;一般配備系統(tǒng)仿真器,具有一定的兼容性和擴(kuò)展性;操作系統(tǒng)的用戶界面不夠友好,其主要用來控制系統(tǒng)負(fù)載以及監(jiān)控應(yīng)用程序運(yùn)行。
(3) 通用的嵌入式實(shí)時(shí)操作系統(tǒng)階段:以通用型嵌入式實(shí)時(shí)操作系統(tǒng)為標(biāo)志的嵌入式系統(tǒng)。如VxWorks、pSOS、OS-9、Windows CE就是這一階段的典型代表。這一階段系統(tǒng)的特點(diǎn)是能運(yùn)行在各種不同類型強(qiáng)大的微處理器上;具有強(qiáng)大的通用型操作系統(tǒng)的功能,如具備了文件和目錄管理、多任務(wù)、設(shè)備支持、網(wǎng)絡(luò)支持、圖形窗口以及用戶界面等功能;具有豐富的應(yīng)用程序接口(API)和嵌入式應(yīng)用軟件。
◆ 實(shí)時(shí)多任務(wù)操作系統(tǒng)與分時(shí)多任務(wù)操作系統(tǒng)
實(shí)時(shí)多任務(wù)操作系統(tǒng)是根據(jù)操作系統(tǒng)的工作特性而言的。實(shí)時(shí)是指物理進(jìn)程的真實(shí)時(shí)間,實(shí)時(shí)操作系統(tǒng)是指具有實(shí)時(shí)性能支持實(shí)時(shí)控制系統(tǒng)工作的操作系統(tǒng)。對于分時(shí)操作系統(tǒng),軟件的執(zhí)行在時(shí)間上的要求并不嚴(yán)格,時(shí)間上的錯(cuò)誤一般不會(huì)造成災(zāi)難性的后果。而對于實(shí)時(shí)操作系統(tǒng),主要任務(wù)是對事件進(jìn)行實(shí)時(shí)的處理,雖然事件可能在無法預(yù)知的時(shí)刻到達(dá),但是軟件上必須在事件發(fā)生時(shí)能夠在嚴(yán)格的時(shí)限內(nèi)作出響應(yīng)。實(shí)時(shí)操作系統(tǒng)具有如下功能:① 任務(wù)管理多任務(wù)和基于優(yōu)先級(jí)的任務(wù)調(diào)度;② 任務(wù)間同步和通信信號(hào)量信郵箱等;③ 存儲(chǔ)器優(yōu)化管理含ROM的管理;④ 實(shí)時(shí)時(shí)鐘服務(wù);⑤ 中斷管理服務(wù)。
◆ VxWorks及其開發(fā)工具Tornado
(1) VxWorks操作系統(tǒng)概述
VxWorks由美國WindRiver系統(tǒng)公司出品,在嵌入式操作系統(tǒng)領(lǐng)域中頗具優(yōu)勢。目前該操作系統(tǒng)的版本為VxWorks 5.4,其核心功能主要有微內(nèi)核wind,任務(wù)間的通信機(jī)制,高級(jí)的網(wǎng)絡(luò)支持,功能強(qiáng)大的文件系統(tǒng)(VxWorks支持4種文件系統(tǒng):dosFs、rt11Fs、rawFs、tapeFs)和I/O管理,POSIX標(biāo)準(zhǔn)實(shí)時(shí)擴(kuò)展,C++和其他標(biāo)準(zhǔn)支持等核心功能。這些核心功能可以與WindRiver系統(tǒng)的其他附件和超過400個(gè)Tornado合作伙伴的產(chǎn)品很好的結(jié)合在一起。它是專門為嵌入式微處理器設(shè)計(jì)的高模塊化、高性能的實(shí)時(shí)操作系統(tǒng),廣泛應(yīng)用于高科技產(chǎn)品中,包括消費(fèi)電子設(shè)備、工業(yè)自動(dòng)化、無線通信產(chǎn)品、醫(yī)療儀器、數(shù)字電視與多媒體設(shè)備等,具有很好的安全性、容錯(cuò)性以及系統(tǒng)靈活性。VxWorks操作系統(tǒng)的在國外的主要商業(yè)用戶有Cisco Systems、Bay Networks、3Com、 Fore Systems、HP、Lucent、NASA、Qualcomm,主要應(yīng)用有火星探測車,愛國者導(dǎo)彈等。
(2) VxWorks系統(tǒng)結(jié)構(gòu)
VxWorks是現(xiàn)在所有獨(dú)立于處理器的實(shí)時(shí)系統(tǒng)中最具特色的操作系統(tǒng)。主要表現(xiàn)在:① VxWork系統(tǒng)運(yùn)行環(huán)境支持的CPU包括PowerPC、68K、SPARC、i960、x86等,同時(shí)支持RISC、DSP技術(shù)。② 它的微內(nèi)核Wind是一個(gè)具有較高性能的標(biāo)準(zhǔn)的嵌入式實(shí)時(shí)操作系統(tǒng)內(nèi)核,其主要特點(diǎn)包括快速多任務(wù)切換、搶占式任務(wù)調(diào)度、任務(wù)間通信手段多樣化等。③ 該系統(tǒng)具有較好的可剪裁能力,可剪裁的組件超過80個(gè)。用戶可以根據(jù)自己系統(tǒng)的目標(biāo)功能,通過交叉開發(fā)環(huán)境方便地進(jìn)行配置。④ 支持應(yīng)用程序的動(dòng)態(tài)連接和動(dòng)態(tài)下載。⑤ 具有較好的兼容性。
VxWorks是帶有一個(gè)相當(dāng)小的、真正微內(nèi)核的層次結(jié)構(gòu)。內(nèi)核僅提供多任務(wù)環(huán)境進(jìn)程間通信和同步功能這些功能模塊,足夠支持VxWorks在較高層次所提供的豐富的性能要求。多任務(wù)內(nèi)核的基本功能是提供一個(gè)多任務(wù)環(huán)境,使許多程序在表面上表現(xiàn)為并發(fā)執(zhí)行,而事實(shí)上內(nèi)核是根據(jù)基本的調(diào)度算法使他們分段執(zhí)行每個(gè)明顯獨(dú)立的程序。每個(gè)任務(wù)擁有自己的上下文,使該任務(wù)執(zhí)行的時(shí)候能看到CPU環(huán)境和系統(tǒng)資源。內(nèi)核維護(hù)系統(tǒng)中的每個(gè)任務(wù)的當(dāng)前狀態(tài)遷移發(fā)生在應(yīng)用程序調(diào)用內(nèi)核功能服務(wù)的時(shí)候。
wind內(nèi)核狀態(tài):就緒態(tài) 一個(gè)任務(wù)當(dāng)前除了CPU不等待任何資源;阻塞態(tài) 一個(gè)任務(wù)由于某些資源不可獲得而被阻塞;延遲態(tài) 一個(gè)任務(wù)睡眠一段時(shí)間;掛起態(tài) 主要用于調(diào)試的一個(gè)輔助狀態(tài),掛起禁止任務(wù)的執(zhí)行。任務(wù)被創(chuàng)建以后進(jìn)入掛起態(tài),需要通過特定的操作使被創(chuàng)建的任務(wù)進(jìn)入就緒態(tài),這一操作執(zhí)行速度很快,從而使應(yīng)用程序能夠提前創(chuàng)建任務(wù)并以一種快捷的方式激活該任務(wù)。
調(diào)度控制:多任務(wù)需要一個(gè)調(diào)度算法分配CPU給就緒的任務(wù)。VxWorks 中默認(rèn)的調(diào)度算法是基于優(yōu)先級(jí)的搶占調(diào)度,調(diào)度采用搶占的方式就是指當(dāng)一個(gè)優(yōu)先級(jí)高于當(dāng)前任務(wù)的任務(wù)變?yōu)榫途w態(tài)時(shí),內(nèi)核將立即保存當(dāng)前任務(wù)的上下文并切換到高優(yōu)先級(jí)任務(wù)的上下文。外部中斷被指定優(yōu)先于任何任務(wù)的優(yōu)先級(jí),就能夠在任何時(shí)候搶占一個(gè)任務(wù)。
任務(wù)間通信:wind內(nèi)核提供了一套豐富的任務(wù)間通信與同步的機(jī)制,這些通信功能使一個(gè)應(yīng)用中各個(gè)獨(dú)立的任務(wù)能夠相互地協(xié)調(diào)各自的行動(dòng)。① 共享地址空間 wind內(nèi)核的任務(wù)間通信機(jī)制的基礎(chǔ)是通過共享地址空間,任務(wù)能夠使用共享數(shù)據(jù)結(jié)構(gòu)的指針自由地通信,管道不需要映射一塊內(nèi)存區(qū)到兩個(gè)互相通信任務(wù)的尋址空間。② 互斥操作 實(shí)現(xiàn)互斥的方法包括禁止中斷、禁止任務(wù)搶占和通過信號(hào)量進(jìn)行資源鎖定。最強(qiáng)的互斥方法是屏蔽中斷,這樣的鎖定保證了對CPU的互斥訪問,但是這種方法對于實(shí)時(shí)是不恰當(dāng)?shù)模驗(yàn)樗阪i定期間阻止系統(tǒng)響應(yīng)外部事件,長的中斷延時(shí)對于要求有確定響應(yīng)時(shí)間的應(yīng)用是不可接受的;禁止搶占提供了強(qiáng)制性較弱的互斥方式;互斥信號(hào)量,信號(hào)量是用于鎖定共享資源訪問的基本方式,信號(hào)量限制了互斥操作僅作用于相關(guān)的資源,一個(gè)信號(hào)量被創(chuàng)建來保護(hù)資源。
(3) VxWorks的開發(fā)平臺(tái)TornadoII
TornadoII具有友好的開發(fā)調(diào)試環(huán)境,便于操作配置和應(yīng)用程序的開發(fā)調(diào)試。它在1995年獲得了EDN雜志頒發(fā)的年度產(chǎn)品創(chuàng)新獎(jiǎng)。它是一個(gè)集成的軟件開發(fā)環(huán)境,提供了一種非常有效的方法來開發(fā)實(shí)時(shí)的嵌入式應(yīng)用。它由3個(gè)部分構(gòu)成:① VxWorks―高性能的實(shí)時(shí)操作系統(tǒng);② 應(yīng)用的構(gòu)建工具;③ 一個(gè)集成的開發(fā)環(huán)境(IDE)―管理和構(gòu)造工程,建立和管理主機(jī)與目標(biāo)機(jī)通信,運(yùn)行、調(diào)試和監(jiān)視VxWorks的應(yīng)用程序。IDE主要包括源碼編輯器、工程管理工具、C和C++的編譯器、資源瀏覽器、圖形增強(qiáng)的調(diào)試器、C語言命令外殼、VxWorks的目標(biāo)模擬器等,這些都為實(shí)時(shí)嵌入式應(yīng)用程序的編制提供了豐富的手段。它的開發(fā)環(huán)境能夠提供上述所有特色,而與目標(biāo)系統(tǒng)是否資源有限無關(guān),它主要運(yùn)行于主機(jī)系統(tǒng)之上,同時(shí)共享有基于主機(jī)的動(dòng)態(tài)鏈接和遠(yuǎn)程目標(biāo)系統(tǒng)的符號(hào)表。Tornado開發(fā)工具和目標(biāo)機(jī)的通信要經(jīng)由目標(biāo)服務(wù)器和目標(biāo)代理。使用Tornado能夠使嵌入式應(yīng)用的時(shí)間大為縮短。
◆ 結(jié)語
本文以WindRiver公司的VxWorks及其開發(fā)工具Tornado為例,介紹了嵌入式實(shí)時(shí)操作系統(tǒng)及其開發(fā)工具在嵌入式系統(tǒng)中占據(jù)的重要地位,國內(nèi)在這方面所做的工作取得了一定的成果,如凱思集團(tuán)自主研制開發(fā)的嵌入式操作系統(tǒng)Hopen OS,但總體水平與國外相比仍然比較落后,隨著嵌入式應(yīng)用的迅速發(fā)展,對這方面的需求必將進(jìn)一步加大,我們應(yīng)該借鑒國外的先進(jìn)經(jīng)驗(yàn)來開發(fā)完善我們自己的產(chǎn)品,力爭早日趕上世界先進(jìn)水平。