<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

              一、的發(fā)展

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

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

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

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

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

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

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

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

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

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

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

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

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

              (一)市場進入時間

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

              (二)可移植性

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

              (三)可利用資源

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

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

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

             (五)成本

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

              (六)中文內核支持

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

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

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

              (一)VxWorks

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

              VxWorks具有可裁剪微內核結構;高效的任務管理;靈活的任務間通訊;微秒級的中斷處理;支持POSIX 1003.1b實時擴展標準;支持多種物理介質及標準的、完整的TCP/IP網(wǎng)絡協(xié)議等。

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

              (二)Windows CE

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

              (三)嵌入式Linux

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

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

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

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

              (四)μC/OS一Ⅱ

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

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

              五、結束語

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

              參考文獻

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

          c語言相關文章:c語言教程


          linux相關文章:linux教程




          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();