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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 如何選擇實(shí)時(shí)操作系統(tǒng)

          如何選擇實(shí)時(shí)操作系統(tǒng)

          ——
          作者:Greg Hawley 時(shí)間:2007-02-28 來源: 收藏

          很難作決定是買一個(gè)實(shí)時(shí)操作系統(tǒng),還是自己動手做。如果要買的話,決定買哪一種、從哪家供應(yīng)商買仍然充滿變數(shù)。 

          嵌入式軟件工程師總是幾乎完全從零開始開發(fā)應(yīng)用程序。為什么會那樣?如果從我們的朋友——硬件工程師那里取點(diǎn)兒經(jīng)的話可能大有裨益。他們開始做一項(xiàng)新設(shè)計(jì)時(shí),總是選擇現(xiàn)成的集成電路,只有到最后不得已時(shí)才自己設(shè)計(jì)邏輯電路。因此,對我們來說,重用他人的工作成果以達(dá)到目標(biāo)的第一步就是要選擇一種實(shí)時(shí)操作系統(tǒng)(RTOS)。然而當(dāng)你選擇RTOS時(shí)很有一些需要考慮的問題,一個(gè)清晰的思路無疑有助于成功地作出決定。 


          實(shí)時(shí)操作系統(tǒng)對我來說真的必要嗎? 
          Do I really need a real-time operating system? 

          在一頭扎進(jìn)如何選擇一個(gè)實(shí)時(shí)操作系統(tǒng)的討論之前,大多數(shù)人應(yīng)該問問自己:為什么需要實(shí)時(shí)操作系統(tǒng)?是否所有的嵌入式軟件系統(tǒng)在實(shí)時(shí)操作系統(tǒng)的支持下工作得最好?當(dāng)然不是。有很多簡單的產(chǎn)品,不夠大也不夠復(fù)雜,根本負(fù)擔(dān)不起額外的開銷。 

          有關(guān)是否使用RTOS的爭論非常類似于是否使用高級語言的爭論。正象高級語言一樣,RTOS使你可以更快地開發(fā)產(chǎn)品。它可能要求一些額外的開銷,但是隨著技術(shù)的進(jìn)步,這種開銷在變小。 

          正如有的應(yīng)用仍推崇匯編語言,也存在這樣一些應(yīng)用,它們很簡單,僅需求很少的一點(diǎn)操作系統(tǒng)服務(wù)。在這種情況下,更簡單的結(jié)構(gòu)——比如輪轉(zhuǎn)調(diào)度之類以狀態(tài)機(jī)為基礎(chǔ)的函數(shù)——可能就足夠了。難道你能指望在你的面包機(jī)里安裝一個(gè)實(shí)時(shí)操作系統(tǒng)嗎?除此之外,你應(yīng)該考慮RTOS。 


          自建還是購買? 
          Build vs. buy 

          在“嵌入式”世界里,就一個(gè)工作組該購買還是自建實(shí)時(shí)操作系統(tǒng)展開了生動的討論。不幸的是,我們非常缺乏有效的統(tǒng)計(jì)數(shù)據(jù)。我認(rèn)為在大多數(shù)情況下,購買RTOS是較好的選擇。我這樣說的時(shí)候,請注意我與RTOS工業(yè)界的任何公司沒有任何私人或者職務(wù)關(guān)系。 

          關(guān)于購買RTOS的爭論還有一個(gè)小小的軼聞。以前我曾在一個(gè)為醫(yī)療設(shè)備開發(fā)嵌入式軟件的項(xiàng)目組工作。我們使用的是CMX公司的CMX-RTX。在嵌入式開發(fā)者一系列可能的選擇中,這個(gè)RTOS的特征是很典型的。隨OS還提供了11,000行的源代碼。想想吧,用CMX公司賣得的兩千美元你能定義、設(shè)計(jì)、實(shí)現(xiàn)并測試完成如此的產(chǎn)品嗎?我看不大可能。 

          然而,堅(jiān)持從零開始自建RTOS的人仍與購買現(xiàn)成專用RTOS的擁護(hù)者爭論不休。在性能絕對至關(guān)重要的場合,寫自己的實(shí)時(shí)操作系統(tǒng)可能允許你花費(fèi)巨大代價(jià)換取有限的百分之幾的速度提升。 

          另外,特定的工業(yè)(比如醫(yī)療設(shè)備、安全系統(tǒng)等)對軟件有特定的規(guī)則或標(biāo)準(zhǔn)要求。在某些情況下,現(xiàn)成的操作系統(tǒng)滿足不了這些要求。這時(shí)也只能選擇自建。 

          最后,在嵌入式系統(tǒng)中,為了使用專用代碼而安裝的基礎(chǔ)系統(tǒng)相當(dāng)大。把老代碼剝離出來移植到新的操作系統(tǒng)上難說是個(gè)明智的主意。而將產(chǎn)品移植到一種新的微處理器上是說得通的。如果該專用RTOS尚未被移植到新的微處理器上,這可能是考慮使用現(xiàn)成RTOS的一個(gè)好時(shí)機(jī)。 


          工具的相互關(guān)系 
          Tool interrelationships 

          一個(gè)工程師選擇實(shí)時(shí)操作系統(tǒng)時(shí)如果不考慮其余與之相關(guān)的工具是不行的。微處理器、在線仿真器(ICE)、編譯器、匯編器、連接器、調(diào)試器以及模擬器——都這樣或那樣地影響著操作系統(tǒng)。 

          有些在線仿真器供應(yīng)商提供其ICE與實(shí)時(shí)操作系統(tǒng)接口的軟件。檢查一下你的ICE是否能與你的RTOS協(xié)同工作,這在調(diào)試那些最隱蔽的小錯誤(bugs)時(shí)是很有用的。然而,重要的是要了解在線仿真器的操作對性能的影響。有時(shí)當(dāng)ICE執(zhí)行操作時(shí)增加了額外的開銷,比如中斷某行源代碼在某個(gè)任務(wù)中的執(zhí)行。 

          對給定微處理器家族上的某種操作系統(tǒng)來說,很可能OS供應(yīng)商只支持所有可用編譯工具(包括編譯器、匯編器和連接器)的一個(gè)子集。應(yīng)該確認(rèn)供應(yīng)商支持你所用的。你應(yīng)該避免我們項(xiàng)目組當(dāng)初選擇一種現(xiàn)成的實(shí)時(shí)操作系統(tǒng)所碰到的災(zāi)難。OS供應(yīng)商將我們選擇的RTOS以源代碼的形式提供給了我們,但是我們沒有考慮到的一個(gè)問題是這種RTOS與我們使用的編譯器不能合作。經(jīng)過六周的艱苦努力,負(fù)責(zé)修改RTOS源代碼的工程師終于完成了任務(wù)。 

          選擇準(zhǔn)則 
          Selection criteria 

          除了開發(fā)工具箱中其他工具的影響之外,如果你能很好地組織在調(diào)查研究RTOS期間所搜集的信息,作出選擇就會容易一些。首先列一份可供選擇的RTOS清單。到選擇RTOS時(shí),你可能已經(jīng)選定了微處理器。據(jù)此你可以立即劃掉不支持你的MCU的RTOS從而得到較短的清單。如果你選擇了無所不在的68000或者x86系列,則需要更多的準(zhǔn)則來幫助你作出選擇。 

          有了一個(gè)短的清單之后,艱難的工作才真正開始。首先,要決定對你的應(yīng)用來說哪條準(zhǔn)則是真正重要的。本文討論了選擇時(shí)要考慮的幾條重要特征,然而每一個(gè)應(yīng)用開發(fā)都有差異,需要認(rèn)真考察到底什么是最重要的。應(yīng)該根據(jù)各項(xiàng)選擇準(zhǔn)則列一個(gè)表,針對每個(gè)項(xiàng)目評價(jià)每種RTOS。甚至在填完了整張表格之后,模模糊糊的仍然不知該選哪一個(gè),這種事情確實(shí)很難干脆果斷。參與選擇過程的每個(gè)人應(yīng)該對這個(gè)表格展開討論。討論之后拿出決定或者拿出作決定的計(jì)劃。 

          在選擇RTOS的過程中有兩個(gè)基本的因素。第一組基本準(zhǔn)則圍繞著一個(gè)特定產(chǎn)品的細(xì)節(jié)。你現(xiàn)在正在使用的工具哪些要與RTOS一起繼續(xù)使用?把所有的決定建立在如此簡單、短視的判斷上不可能最好。開闊視野,將眼光擴(kuò)展到公司的整個(gè)產(chǎn)品線。這樣的話,你需要考察RTOS與整個(gè)產(chǎn)品線的兼容性。該RTOS在將來的幾年中仍會有所發(fā)展嗎?該RTOS與你期望選用的其他微處理器兼容嗎? 

          第二,你可以創(chuàng)建一個(gè)實(shí)現(xiàn)極少特性的框架,但這樣做有點(diǎn)違背購買現(xiàn)成RTOS的目的。當(dāng)深入RTOS的結(jié)構(gòu)之后,一系列問題始終困擾著開發(fā)者。這些問題包括:該RTOS可以動態(tài)地創(chuàng)建和刪除任務(wù)嗎?一個(gè)任務(wù)能同時(shí)等待多個(gè)事件嗎?任務(wù)有多少優(yōu)先級?很難預(yù)料在整個(gè)應(yīng)用的設(shè)計(jì)過程中需要RTOS的哪些服務(wù)。一般來說,很多特性可以實(shí)現(xiàn)你想要的大多數(shù)功能。如果有困難,要積極地資訊供應(yīng)商的技術(shù)支持和應(yīng)用工程師。如果你有使用其他RTOS的經(jīng)驗(yàn),現(xiàn)在要用一種新的OS,試著在新的RTOS中找找那些你熟悉的特性。因?yàn)椴煌墓?yīng)商往往用不同的方式解決同一個(gè)問題。最好選擇其中與你過去熟悉的方式接近的那種。 

          內(nèi)核要求的最小存儲器大小 
          Footprint 

          實(shí)時(shí)操作系統(tǒng)可以裝入小得令人驚訝的內(nèi)存中。盡管如此,當(dāng)供應(yīng)商給出一個(gè)內(nèi)核要求的最小存儲器大小時(shí),很重要的一點(diǎn)是要了解這個(gè)內(nèi)核中包括了什么。最小的內(nèi)核經(jīng)常是僅僅支持很少的特性,而典型的配置可能產(chǎn)生大得多的內(nèi)核。如果你的設(shè)計(jì)非常在乎RAM或ROM的大小,一定要澄清這個(gè)問題。有時(shí)供應(yīng)商可以提供一份詳細(xì)的列表,說明了創(chuàng)建包含不同服務(wù)的內(nèi)核分別需要多大的RAM和ROM。 


          性能 
          Performance 

          對所有的項(xiàng)目來說,性能無不是個(gè)大問題。但是要了解RTOS對系統(tǒng)的影響卻不那么容易。當(dāng)你比較供應(yīng)商提供的benchmark時(shí)你要明白他們是要測試什么。供應(yīng)商使用的是什么評估板?微處理器的時(shí)鐘頻率是多少?使用的什么存儲系統(tǒng)?存儲器訪問使用了幾個(gè)等待周期?只有弄清楚了這些你才能作出公平的對比。 

          有幾種性能建模工具可以幫助你建立系統(tǒng)性能模型,供應(yīng)商是Tri-Pacific Software和CARDtools Systems之類。隨著設(shè)計(jì)的深入還要繼續(xù)細(xì)化性能模型。 


          軟件組件和設(shè)備驅(qū)動程序 
          Software components and device drivers 

          在1998年11月的嵌入式系統(tǒng)會議上,Wind River Systems的合伙創(chuàng)始人之一Jerry Fiddler描繪了將來十年嵌入式系統(tǒng)的圖景——網(wǎng)絡(luò)化的、無所不在的普通設(shè)備。到處都會有計(jì)算機(jī),但計(jì)算機(jī)的外表不再是一成不變的。為了使美景成真,嵌入式系統(tǒng)應(yīng)該通過各種標(biāo)準(zhǔn)加大開發(fā)需求的互操作性,開發(fā)者可能要依賴于他人開發(fā)的組件。假如你的應(yīng)用需要通信協(xié)議、服務(wù)、庫或者其他組件(如TCP/IP、HTTP、ftp、telnet、SNMP、CORBA和圖形),現(xiàn)看看哪里可以獲得它們。類似的,在設(shè)計(jì)中用到現(xiàn)成的板卡或IC時(shí),要確定是否可以得到設(shè)備驅(qū)動程序。 

          有些操作系統(tǒng)供應(yīng)商提供這些特性或驅(qū)動程序的方式不同,可能作為操作系統(tǒng)的一部分,也可能作為可選配件。另外,這些服務(wù)也可以從第三方供應(yīng)商獲得。與供應(yīng)商交涉時(shí),要弄清楚你的RTOS里集成了哪些組件。 


          調(diào)試工具 
          Debugging tools 

          RTOS供應(yīng)商可能有有助于找到錯誤的調(diào)試工具,這些錯誤(比如死鎖、忘了放信號燈等等)用其他源碼級調(diào)試器更難于發(fā)現(xiàn)。許多工具允許開發(fā)者在任務(wù)之間相互傳遞信號燈時(shí)、在任務(wù)切換時(shí)和發(fā)生中斷時(shí)進(jìn)行Watch(以增加CPU開銷為代價(jià))。 

          少數(shù)供應(yīng)商提供給用戶的是集成開發(fā)環(huán)境。對主機(jī)-目標(biāo)式調(diào)試器來說,應(yīng)用在RAM中運(yùn)行是它工作得很好。如果你希望從ROM運(yùn)行代碼,看看這種調(diào)試服務(wù)還有多大用處。 

          標(biāo)準(zhǔn)兼容性 
          Standards compatibility 

          你正在考察的RTOS支持一般的標(biāo)準(zhǔn)嗎?例如,RTOS服務(wù)有一個(gè)POSIX標(biāo)準(zhǔn)。即使大多數(shù)開發(fā)者不需要POSIX,這也可以作為一個(gè)考慮因素。如果你在開發(fā)安全性敏感的系統(tǒng),應(yīng)該考慮一下該行業(yè)所要求的安全標(biāo)準(zhǔn)。有些RTOS供應(yīng)商已經(jīng)開始認(rèn)證他們的產(chǎn)品。 


          技術(shù)支持 
          Technical support 

          購買了RTOS之后,你還需要技術(shù)支持。RTOS供應(yīng)商提供多種支持渠道,其中都有電話和/或電子支持。但是要確認(rèn)在你購買之后這種支持能持續(xù)多久。最好能感受一下供應(yīng)商技術(shù)支持的質(zhì)量如何。如果你對RTOS完全是新手,供應(yīng)商的培訓(xùn)就很有用了。這種培訓(xùn)一般是上門服務(wù)。如果供應(yīng)商能提供高質(zhì)量的附帶幾個(gè)好實(shí)例的文檔,那么對培訓(xùn)的要求就可以降低一些了。 


          源代碼還是目標(biāo)代碼? 
          Source vs. object code 

          有些供應(yīng)商當(dāng)你購買了一個(gè)開發(fā)許可時(shí)會提供給你全部源代碼。而其他的僅提供目標(biāo)代碼。第一次使用沒有源代碼的RTOS可能會令人不安。其實(shí)這兩種方式都能開發(fā)出優(yōu)秀的產(chǎn)品。如果你對RTOS的源代碼大動手腳而不僅僅是作簡單的修改,趕快住手,拿起電話叫技術(shù)支持吧。若對RTOS作重大的改動,豈不是違背了購買他人現(xiàn)成實(shí)時(shí)操作系統(tǒng)的初衷? 

          對那些沒有源代碼的來說,也不必?fù)?dān)心無法配置內(nèi)核。供應(yīng)商會在頭文件中給出必要的常量使開發(fā)者可以根據(jù)需要微調(diào)內(nèi)核。 


          許可 
          Licensing 

          購買某些高級的RTOS屬于重大的商業(yè)事務(wù),有許多費(fèi)用要考慮。典型情況是開發(fā)工具的費(fèi)用由實(shí)時(shí)操作系統(tǒng)供應(yīng)商來承擔(dān),并為RTOS發(fā)放許可證以開發(fā)產(chǎn)品。有的供應(yīng)商一次性地收取一大筆費(fèi)用,而有的供應(yīng)商的收費(fèi)遍及每用戶、每平臺、每產(chǎn)品、每位置。我干過的項(xiàng)目經(jīng)歷了這兩個(gè)極端。不過說不上這兩種方式哪種更好,只要你明白為什么掏錢就行了。 


          聲譽(yù) 
          Reputation 

          還有一點(diǎn)是要了解該RTOS供應(yīng)商的聲譽(yù)。這也許有些困難,這里有一些建議也許有所幫助。 

          首先,打電話了解他們。然而供應(yīng)商肯定怕給你壞印象,因此與真正的用戶交流才能得到對該操作系統(tǒng)質(zhì)量的較好的認(rèn)識。下面是一個(gè)你應(yīng)該問的問題清單:
          技術(shù)支持如何? 
          問題得到解答要多長時(shí)間? 
          使操作系統(tǒng)運(yùn)轉(zhuǎn)起來要多長時(shí)間? 
          你覺得對OS的投資有價(jià)值嗎? 

          其次,對該公司作一番調(diào)查。下面是一個(gè)有助于你評價(jià)該公司的問題清單: 
          穩(wěn)定的商務(wù)活動開始多久了? 
          公司有多少職員? 
          供應(yīng)商的網(wǎng)站上有有價(jià)值的信息嗎? 
          這種RTOS在哪個(gè)行業(yè)表現(xiàn)最好? 
          該操作系統(tǒng)為哪些特殊的應(yīng)用領(lǐng)域做過優(yōu)化(如安全系統(tǒng)、VME卡、嵌入式PC等)? 
          公司的質(zhì)量系統(tǒng)狀況如何? 
          公司通過了ISO 9001認(rèn)證嗎?



          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁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); })();