新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 嵌入式操作系統(tǒng)介紹及選型原則

嵌入式操作系統(tǒng)介紹及選型原則

——
作者:宋延昭 時(shí)間:2007-02-28 來源:工業(yè)控制計(jì)算機(jī) 收藏
嵌入式系統(tǒng)是以應(yīng)用為中心,軟硬件可裁減的,適用于對(duì)功能、可靠性、成本、體積、功耗等綜合性嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。具有軟件代碼小、高度自動(dòng)化、響應(yīng)速度快等特點(diǎn),特別適合于要求實(shí)時(shí)和多任務(wù)的體系。嵌入式系統(tǒng)主要由嵌入式處理器、相關(guān)支撐硬件、及應(yīng)用軟件系統(tǒng)等組成,它是可獨(dú)立工作的“器件”。

    一、的發(fā)展

    作為嵌入式系統(tǒng)(包括硬、軟件系統(tǒng))極為重要的組成部分的,通常包括與硬件相關(guān)的底層驅(qū)動(dòng)軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動(dòng)接口、通信協(xié)議、圖形界面、標(biāo)準(zhǔn)化瀏覽器等。嵌入式操作系統(tǒng)具有通用操作系統(tǒng)的基本特點(diǎn),如能夠有效管理越來越復(fù)雜的系統(tǒng)資源;能夠把硬件虛擬化,使得開發(fā)人員從繁忙的驅(qū)動(dòng)程序移植和維護(hù)中解脫出來;能夠提供庫函數(shù)、驅(qū)動(dòng)程序、工具集以及應(yīng)用程序。與通用操作系統(tǒng)相比較,嵌入式操作系統(tǒng)在系統(tǒng)實(shí)時(shí)高效性、硬件的相關(guān)依賴性、軟件固態(tài)化以及應(yīng)用的專用性等方面具有較為突出的特點(diǎn)。

    嵌入式操作系統(tǒng)伴隨著嵌入式系統(tǒng)的發(fā)展經(jīng)歷了四個(gè)比較明顯的階段:

    第一階段:無操作系統(tǒng)的嵌入算法階段,以單芯片為核心的可編程控制器形式的系統(tǒng),具有與監(jiān)測、伺服、指示設(shè)備相配合的功能。應(yīng)用于一些專業(yè)性極強(qiáng)的工業(yè)控制系統(tǒng)中,通過匯編語言編程對(duì)系統(tǒng)進(jìn)行直接控制,運(yùn)行結(jié)束后清除內(nèi)存。系統(tǒng)結(jié)構(gòu)和功能都相對(duì)單一,處理效率較低,存儲(chǔ)容量較小,幾乎沒有用戶接口。

    第二階段:以嵌人式CPU為基礎(chǔ)、簡單操作系統(tǒng)為核心的嵌入式系統(tǒng)。CPU種類繁多,通用性比較差;系統(tǒng)開銷小,效率高;一般配備系統(tǒng)仿真器,操作系統(tǒng)具有一定的兼容性和擴(kuò)展性;應(yīng)用軟件較專業(yè),用戶界面不夠友好;系統(tǒng)主要用來控制系統(tǒng)負(fù)載以及監(jiān)控應(yīng)用程序運(yùn)行。

    第三階段:通用的嵌人式實(shí)時(shí)操作系統(tǒng)階段,以嵌入式操作系統(tǒng)為核心的嵌入式系統(tǒng)。能運(yùn)行于各種類型的微處理器上,兼容性好;內(nèi)核精小、效率高,具有高度的模塊化和擴(kuò)展性;具備文件和目錄管理、設(shè)備支持、多任務(wù)、網(wǎng)絡(luò)支持、圖形窗口以及用戶界面等功能;具有大量的應(yīng)用程序接口(APl);嵌入式應(yīng)用軟件豐富。

    第四階段:以基于Intemet為標(biāo)志的嵌入式系統(tǒng)。這是一個(gè)正在迅速發(fā)展的階段。目前大多數(shù)嵌入式系統(tǒng)還孤立于lnlemet之外,但隨著Intemet的發(fā)展以及Intemet技術(shù)與信息家電、工業(yè)控制技術(shù)等結(jié)合日益密切,嵌入式設(shè)備與Intemet的結(jié)合將代表著嵌入式技術(shù)的真正未來。

    二、使用實(shí)時(shí)操作系統(tǒng)的必要性

    嵌入式實(shí)時(shí)操作系統(tǒng)在目前的嵌入式應(yīng)用中用得越來越廣泛,尤其在功能復(fù)雜、系統(tǒng)龐大的應(yīng)用中顯得愈來愈重要。

    1.嵌人式實(shí)時(shí)操作系統(tǒng)提高了系統(tǒng)的可靠性。在控制系統(tǒng)中,出于安全方面的考慮,要求系統(tǒng)起碼不能崩潰,而且還要有自愈能力。不僅要求在硬件設(shè)計(jì)方面提高系統(tǒng)的可靠性和抗干擾性,而且也應(yīng)在軟件設(shè)計(jì)方面提高系統(tǒng)的抗干擾性,盡可能地減少安全漏洞和不可靠的隱患。長期以來的前后臺(tái)系統(tǒng)軟件設(shè)計(jì)在遇到強(qiáng)干擾時(shí),使得運(yùn)行的程序產(chǎn)生異常、出錯(cuò)、跑飛,甚至死循環(huán),造成了系統(tǒng)的崩潰。而實(shí)時(shí)操作系統(tǒng)管理的系統(tǒng),這種干擾可能只是引起若干進(jìn)程中的一個(gè)被破壞,可以通過系統(tǒng)運(yùn)行的系統(tǒng)監(jiān)控進(jìn)程對(duì)其進(jìn)行修復(fù)。通常情況下,這個(gè)系統(tǒng)監(jiān)視進(jìn)程用來監(jiān)視各進(jìn)程運(yùn)行狀況,遇到異常情況時(shí)采取一些利于系統(tǒng)穩(wěn)定可靠的措施,如把有問題的任務(wù)清除掉。

    2.提高了開發(fā)效率,縮短了開發(fā)周期。在嵌入式實(shí)時(shí)操作系統(tǒng)環(huán)境下,開發(fā)一個(gè)復(fù)雜的應(yīng)用程序,通??梢园凑哲浖こ讨械慕怦钤瓌t將整個(gè)程序分解為多個(gè)任務(wù)模塊。每個(gè)任務(wù)模塊的調(diào)試、修改幾乎不影響其他模塊。商業(yè)軟件一般都提供了良好的多任務(wù)調(diào)試環(huán)境。

    3.嵌入式實(shí)時(shí)操作系統(tǒng)充分發(fā)揮了32位CPU的多任務(wù)潛力。32位CPU比8、16位CPU快,另外它本來是為運(yùn)行多用戶、多任務(wù)操作系統(tǒng)而設(shè)計(jì)的,特別適于運(yùn)行多任務(wù)實(shí)時(shí)系統(tǒng)。32位CPU采用利于提高系統(tǒng)可靠性和穩(wěn)定性的設(shè)計(jì),使其更容易做到不崩潰。例如,CPU運(yùn)行狀態(tài)分為系統(tǒng)態(tài)和用戶態(tài)。將系統(tǒng)堆棧和用戶堆棧分開,以及實(shí)時(shí)地給出CPU的運(yùn)行狀態(tài)等,允許用戶在系統(tǒng)設(shè)計(jì)中從硬件和軟件兩方面對(duì)實(shí)時(shí)內(nèi)核的運(yùn)行實(shí)施保護(hù)。如果還是采用以前的前后臺(tái)方式,則無法發(fā)揮32位CPU的優(yōu)勢。從某種意義上說,沒有操作系統(tǒng)的計(jì)算機(jī)(裸機(jī))是沒有用的。在嵌入式應(yīng)用中,只有把CPU嵌入到系統(tǒng)中,同時(shí)又把操作系統(tǒng)嵌入進(jìn)去,才是真正的計(jì)算機(jī)嵌入式應(yīng)用。

    三、嵌入式操作系統(tǒng)選型

    當(dāng)我們?cè)谠O(shè)計(jì)信息電器、數(shù)字醫(yī)療設(shè)備等嵌入式產(chǎn)品時(shí),嵌入式操作系統(tǒng)的選擇至關(guān)重要。一般而言,在選擇嵌入式操作系統(tǒng)時(shí),可以遵循以下原則??偟膩碚f,就是“做加法還是做減法”的問題。 

    (一)市場進(jìn)入時(shí)間

    制定產(chǎn)品時(shí)間表與選擇操作系統(tǒng)有關(guān)系,實(shí)際產(chǎn)品和一般演示是不同的。目前是Windows程序員可能是人力資源最豐富的。現(xiàn)成資源最多的也就可能是WinCE。使用WinCE能夠很快進(jìn)入市場。因?yàn)閃inCE+X86做產(chǎn)品實(shí)際上是在做減法,去掉你不要的功能,能很快出產(chǎn)品,但伴隨的可能是成本高,核心競爭力差。而某些高效的操作系統(tǒng)可能由于編程人員缺乏,或由于這方面的技術(shù)積累不夠,影響開發(fā)進(jìn)度。

    (二)可移植性

    操作系統(tǒng)相關(guān)性。當(dāng)進(jìn)行嵌入式軟件開發(fā)時(shí),可移植性是要重點(diǎn)考慮的問題。良好的軟件移植性應(yīng)該比較好,可以在不同平臺(tái)、不同系統(tǒng)上運(yùn)行,跟操作系統(tǒng)無關(guān)。軟件的通用性和軟件的性能通常是矛盾的。即通用以損失某些特定情況下的優(yōu)化性能為代價(jià)。很難設(shè)想開發(fā)一個(gè)嵌入式瀏覽器而僅能在某一特定環(huán)境下應(yīng)用。反過來說,當(dāng)產(chǎn)品與平臺(tái)和操作系統(tǒng)緊密結(jié)合時(shí),往往你的產(chǎn)品的特色就蘊(yùn)含其中。

    (三)可利用資源

    產(chǎn)品開發(fā)不同于學(xué)術(shù)課題研究,它是以快速、低成本、高質(zhì)量的推出適合用戶需求的產(chǎn)品為目的的。集中精力研發(fā)出產(chǎn)品的特色,其他功能盡量由操作系統(tǒng)附加或采用第三方產(chǎn)品,因此操作系統(tǒng)的可利用資源對(duì)于選型是一個(gè)重要參考條件。Linux和WinCE都有大量的資源可以利用,這是他們被看好的重要原因。其他有些實(shí)時(shí)操作系統(tǒng)由于比較封閉,開發(fā)時(shí)可以利用的資源比較少,因此多數(shù)功能需要自己獨(dú)立開發(fā)。從而影響開發(fā)進(jìn)度。近來的市場需求顯示,越來越多的嵌入式系統(tǒng),均要求提供全功能的Web瀏覽器。而這要求有一個(gè)高性能、高可靠的GUI的支持。 

    (四)系統(tǒng)定制能力

    信息產(chǎn)品不同于傳統(tǒng)PC的Wintel結(jié)構(gòu)的單純性,用戶的需求是千差萬別的,硬件平臺(tái)也都不一樣,所以對(duì)系統(tǒng)的定制能力提出了要求。要分析產(chǎn)品是否對(duì)系統(tǒng)底層有改動(dòng)的需求,這種改動(dòng)是否伴隨著產(chǎn)品特色?Linux由于其源代碼開放的天生魅力,在定制能力方面具有優(yōu)勢。隨著WinCE3.0原碼的開放,以及微軟在嵌入式領(lǐng)域力度的加強(qiáng),其定制能力會(huì)有所提升。

   (五)成本

    成本是所有產(chǎn)品不得不考慮的問題。操作系統(tǒng)的選擇會(huì)對(duì)成本有什么影響呢?Linux免費(fèi),WinCE等商業(yè)系統(tǒng)需要支付許可證使用費(fèi),但這都不是問題的答案。成本是需要綜合權(quán)衡以后進(jìn)行考慮的——選擇某一系統(tǒng)可能會(huì)對(duì)其他一系列的因素產(chǎn)生影響,如對(duì)硬件設(shè)備的選型、人員投入、以及公司管理和與其他合作伙伴的共同開發(fā)之間的溝通等許多方面的影響。

    (六)中文內(nèi)核支持

    國內(nèi)產(chǎn)品需要對(duì)中文的支持。由于操作系統(tǒng)多數(shù)是采用西文方式,是否支持雙字節(jié)編碼方式,是否遵循GBK,GBl8030等各種國家標(biāo)準(zhǔn),是否支持中文輸入與處理,是否提供第三方中文輸入接口是針對(duì)國內(nèi)用戶的嵌入式產(chǎn)品的必需考慮的重要因素。

    上面提到用WinCE+x86出產(chǎn)品是減法,這實(shí)際上就是所謂PC家電化;另外一種做法是加法,利用家電行業(yè)的硬件解決方案(絕大部分是非x86的)加以改進(jìn),加上嵌入式操作系統(tǒng),再加上應(yīng)用軟件。這是所謂家電PC化的做法,這種加法的優(yōu)勢是成本低,特色突出,缺點(diǎn)是產(chǎn)品研發(fā)周期長,難度大(需要深入了解硬件和操作系統(tǒng))。如果選擇這種做法,Linux是一個(gè)好選擇,它讓你能夠深入到系統(tǒng)底層,如果你愿意并且有能力。

    四、幾種代表性嵌入式操作系統(tǒng)比較

    (一)VxWorks

    VxWorks操作系統(tǒng)是美國WindRiver公司于1983年設(shè)計(jì)開發(fā)的一種嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS),是Tornado嵌入式開發(fā)環(huán)境的關(guān)鍵組成部分。良好的持續(xù)發(fā)展能力、高性能的內(nèi)核以及友好的用戶開發(fā)環(huán)境,在嵌人式實(shí)時(shí)操作系統(tǒng)領(lǐng)域逐漸占據(jù)一席之地。

    VxWorks具有可裁剪微內(nèi)核結(jié)構(gòu);高效的任務(wù)管理;靈活的任務(wù)間通訊;微秒級(jí)的中斷處理;支持POSIX 1003.1b實(shí)時(shí)擴(kuò)展標(biāo)準(zhǔn);支持多種物理介質(zhì)及標(biāo)準(zhǔn)的、完整的TCP/IP網(wǎng)絡(luò)協(xié)議等。

    然而其價(jià)格昂貴。由于操作系統(tǒng)本身以及開發(fā)環(huán)境都是專有的,價(jià)格一般都比較高,通常需花費(fèi)10萬元人民幣以上才能建起一個(gè)可用的開發(fā)環(huán)境,對(duì)每一個(gè)應(yīng)用一般還要另外收取版稅。一般不通供源代碼,只提供二進(jìn)制代碼。由于它們都是專用操作系統(tǒng),需要專門的技術(shù)人員掌握開發(fā)技術(shù)和維護(hù),所以軟件的開發(fā)和維護(hù)成本都非常高。支持的硬件數(shù)量有限。

    (二)Windows CE

    Windows CE與Windows系列有較好的兼容性,無疑是Windows CE推廣的一大優(yōu)勢。其中WinCE3.0是一種針對(duì)小容量、移動(dòng)式、智能化、32位、了解設(shè)備的模塊化實(shí)時(shí)嵌人式操作系統(tǒng)。為建立針對(duì)掌上設(shè)備、無線設(shè)備的動(dòng)態(tài)應(yīng)用程序和服務(wù)提供了一種功能豐富的操作系統(tǒng)平臺(tái),它能在多種處理器體系結(jié)構(gòu)上運(yùn)行,并且通常適用于那些對(duì)內(nèi)存占用空間具有一定限制的設(shè)備。它是從整體上為有限資源的平臺(tái)設(shè)計(jì)的多線程、完整優(yōu)先權(quán)、多任務(wù)的操作系統(tǒng)。它的模塊化設(shè)計(jì)允許它對(duì)從掌上電腦到專用的工業(yè)控制器的用戶電子設(shè)備進(jìn)行定制。操作系統(tǒng)的基本內(nèi)核需要至少200KB的ROM。由于嵌入式產(chǎn)品的體積、成本等方面有較嚴(yán)格的要求,所以處理器部分占用空間應(yīng)盡可能的小。系統(tǒng)的可用內(nèi)存和外存數(shù)量也要受限制,而嵌入式操作系統(tǒng)就運(yùn)行在有限的內(nèi)存(一般在ROM或快閃存儲(chǔ)器)中,因此就對(duì)操作系統(tǒng)的規(guī)模、效率等提出了較高的要求。從技術(shù)角度上講,Windows CE作為嵌入式操作系統(tǒng)有很多的缺陷:沒有開放源代碼,使應(yīng)用開發(fā)人員很難實(shí)現(xiàn)產(chǎn)品的定制;在效率、功耗方面的表現(xiàn)并不出色,而且和Windows一樣占用過的系統(tǒng)內(nèi)存,運(yùn)用程序龐大;版權(quán)許可費(fèi)也是廠商不得不考慮的因素。

    (三)嵌入式Linux

    這是嵌入式操作系統(tǒng)的一個(gè)新成員,其最大的特點(diǎn)是源代碼公開并且遵循GPL協(xié)議,在近一年多以來成為研究熱點(diǎn),據(jù)IDG預(yù)測嵌入式Linux將占未來兩年的嵌入式操作系統(tǒng)份額的50%。

    由于其源代碼公開,人們可以任意修改,以滿足自己的應(yīng)用,并且查錯(cuò)也很容易。遵從GPL,無須為每例應(yīng)用交納許可證費(fèi)。有大量的應(yīng)用軟件可用。其中大部分都遵從GPL,是開放源代碼和免費(fèi)的??梢陨约有薷暮髴?yīng)用于用戶自己的系統(tǒng)。 有大量的免費(fèi)的優(yōu)秀的開發(fā)工具,且都遵從GPL,是開放源代碼的。有龐大的開發(fā)人員群體。無需專門的人才,只要懂Unix/Linux和C語言即可。隨著Linux在中國的普及,這類人才越來越多。所以軟件的開發(fā)和維護(hù)成本很低。優(yōu)秀的網(wǎng)絡(luò)功能,這在Internet時(shí)代尤其重要。穩(wěn)定——這是Linux本身具備的一個(gè)很大優(yōu)點(diǎn)。內(nèi)核精悍,運(yùn)行所需資源少,十分適合嵌入式應(yīng)用。

    支持的硬件數(shù)量龐大。嵌入式Linux和普通Linux并無本質(zhì)區(qū)別,PC上用到的硬件嵌入式Linux幾乎都支持。而且各種硬件的驅(qū)動(dòng)程序源代碼都可以得到,為用戶編寫自己專有硬件的驅(qū)動(dòng)程序帶來很大方便。

    在嵌入式系統(tǒng)上運(yùn)行Linux的一個(gè)缺點(diǎn)是Linux體系提供實(shí)時(shí)性能需要添加實(shí)時(shí)軟件模塊。而這些模塊運(yùn)行的內(nèi)核空間正是操作系統(tǒng)實(shí)現(xiàn)調(diào)度策略、硬件中斷異常和執(zhí)行程序的部分。由于這些實(shí)時(shí)軟件模塊是在內(nèi)核空間運(yùn)行的,因此代碼錯(cuò)誤可能會(huì)破壞操作系統(tǒng)從而影響整個(gè)系統(tǒng)的可靠性,這對(duì)于實(shí)時(shí)應(yīng)用將是一個(gè)非常嚴(yán)重的弱點(diǎn)。

    (四)μC/OS一Ⅱ

    μC/OS一Ⅱ是著名的源代碼公開的實(shí)時(shí)內(nèi)核,是專為嵌入式應(yīng)用設(shè)計(jì)的,可用于8位,16位和32位單片機(jī)或數(shù)字信號(hào)處理器(DSP)。它是在原版本μC/OS的基礎(chǔ)上做了重大改進(jìn)與升級(jí),并有了近十年的使用實(shí)踐,有許多成功應(yīng)用該實(shí)時(shí)內(nèi)核的實(shí)例。它的主要特點(diǎn)如下:

公開源代碼,容易就能把操作系統(tǒng)移植到各個(gè)不同的硬件平臺(tái)上; 
可移植性,絕大部分源代碼是用C語言寫的,便于移植到其他微處理器上; 
可固化; 
可裁剪性,有選擇的使用需要的系統(tǒng)服務(wù),以減少斗所需的存儲(chǔ)空間; 
占先式,完全是占先式的實(shí)時(shí)內(nèi)核,即總是運(yùn)行就緒條件下優(yōu)先級(jí)最高的任務(wù); 
多任務(wù),可管理64個(gè)任務(wù),任務(wù)的優(yōu)先級(jí)必須是不同的,不支持時(shí)間片輪轉(zhuǎn)調(diào)度法; 
可確定性,函數(shù)調(diào)用與服務(wù)的執(zhí)行時(shí)間具有其可確定性,不依賴于任務(wù)的多少; 
實(shí)用性和可靠性,成功應(yīng)用該實(shí)時(shí)內(nèi)核的實(shí)例,是其實(shí)用性和可靠性的最好證據(jù)。
    由于μC/OS一Ⅱ僅是一個(gè)實(shí)時(shí)內(nèi)核,這就意味著它不像其他實(shí)時(shí)存在系統(tǒng)那樣提供給用戶的只是一些API函數(shù)接口,還有很多工作需要用戶自己去完成。

    五、結(jié)束語

    在嵌入式應(yīng)用中,使用實(shí)時(shí)操作系統(tǒng)(RTOS)是當(dāng)前嵌入式應(yīng)用的一個(gè)特點(diǎn),一種趨勢,也是單片機(jī)應(yīng)用從低水平向高水平的一個(gè)進(jìn)步。在實(shí)際的應(yīng)用中,根據(jù)不同的要求和條件選擇合適的操作系統(tǒng),使開發(fā)工作更容易,設(shè)計(jì)出更完美的嵌入式系統(tǒng)。

    參考文獻(xiàn)

    [1] 張湘,肖建.嵌入式系統(tǒng)和嵌入式操作系統(tǒng)[J].中國機(jī)電一體化網(wǎng),2004年10月2日
    [2] 魏忠,蔡勇,雷紅衛(wèi).嵌入式開發(fā)詳解[M].電子工業(yè)出版社,2003年1月第一版.
    [3] 王田苗.嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例分析[M].清華大學(xué)出版社,2003年10月第二版.
    [4] 劉崢嶸,張智超,許振山.嵌入式Linux應(yīng)用開發(fā)詳解[M].機(jī)械工業(yè)出版社,2004年7月第一版

c語言相關(guān)文章:c語言教程


linux相關(guān)文章:linux教程




評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉