0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何選擇嵌入式操作系統(tǒng)

星星科技指導(dǎo)員 ? 來源:嵌入式計算設(shè)計 ? 作者:Colin Walls ? 2022-06-30 10:41 ? 次閱讀

幾乎所有現(xiàn)代嵌入式系統(tǒng)都是使用某種操作系統(tǒng) (OS) 構(gòu)建的。這意味著該操作系統(tǒng)的選擇往往發(fā)生在設(shè)計過程的早期。許多開發(fā)人員發(fā)現(xiàn)這個選擇過程具有挑戰(zhàn)性。您如何為您的特定應(yīng)用選擇操作系統(tǒng)?

你需要一個操作系統(tǒng)嗎?

對于許多嵌入式應(yīng)用程序,顯然需要一個操作系統(tǒng)。如果應(yīng)用程序很復(fù)雜并且在高端處理器上運行,那么幾乎可以肯定操作系統(tǒng)是有益的。另一方面,在低端芯片上運行的簡單軟件根本不需要操作系統(tǒng)。還有另外兩種可能性:低端 CPU 上的復(fù)雜軟件和復(fù)雜處理器上的簡單軟件。在這兩種情況下,操作系統(tǒng)似乎都不會提供太多優(yōu)勢,而且實際上可能會妨礙效率。但是,圍繞多任務(wù)模型構(gòu)建代碼是使其可擴展的好方法,從而在將來某個時候遷移到更強大的設(shè)備和/或需要為應(yīng)用程序增加更多復(fù)雜性時最大限度地減少工作量。

pYYBAGK9DV-AH84fAAFIbNY1snA602.png

你在哪里可以獲得操作系統(tǒng)?

大致而言,有三種方法可以獲得嵌入式操作系統(tǒng):

自己寫一個

利用“免費”或開源產(chǎn)品

從商業(yè)供應(yīng)商處購買/許可產(chǎn)品

選項(1)很少是一個好的選擇,因為您的特定需求不太可能如此專業(yè)以至于現(xiàn)有產(chǎn)品無法滿足它們。“重新發(fā)明輪子”從來不是一個明智的決定。唯一可能的例外可能是將編寫操作系統(tǒng)作為一項學(xué)術(shù)練習(xí),以充分了解此類產(chǎn)品的工作原理。

選擇標(biāo)準(zhǔn)

操作系統(tǒng)的選擇取決于您可能會問自己或他人的一系列問題。很容易想象這完全是關(guān)于操作系統(tǒng)的技術(shù)問題,事實上,這些問題主導(dǎo)了這個過程。但是,需要考慮商業(yè)因素——比如成本——并且不能忽視個人經(jīng)驗等因素。

技術(shù)因素

操作系統(tǒng)的技術(shù)方面在選擇過程中占主導(dǎo)地位。在考慮其他參數(shù)之前,這些問題需要完全清楚。

您的應(yīng)用程序是實時的嗎?

實時應(yīng)用程序是響應(yīng)時間至關(guān)重要的應(yīng)用程序。它可能不快,但需要在可預(yù)測的(確定的)時間內(nèi)響應(yīng)外部事件;它必須足夠快(或慢)。操作系統(tǒng)選擇的含義是實時操作系統(tǒng) (RTOS) 最有可能是正確的選擇,因為它是專門為滿足應(yīng)用程序的要求而設(shè)計的。Linux 本質(zhì)上不是實時的,但實時擴展可能使其成為一個可行的選擇。

內(nèi)存大小有限制嗎?

過去,嵌入式系統(tǒng)的內(nèi)存容量通常非常小——可能只有幾 K?,F(xiàn)在,有一個更加慷慨的規(guī)定,盡管帶有微控制器的片上內(nèi)存可能仍然非常有限。在設(shè)計簽署后向系統(tǒng)添加更多內(nèi)存并非易事。更重量級的操作系統(tǒng),如 Linux,非常需要內(nèi)存,因此空間限制是一個真正的挑戰(zhàn)。大多數(shù) RTOS 產(chǎn)品更輕量級并且可能具有可擴展性,這意味著內(nèi)存僅用于實際需要的功能。

CPU 功率有限制嗎?

CPU 的功率是衡量它在給定時間內(nèi)可以完成多少工作(可以執(zhí)行多少條指令)的指標(biāo)。大多數(shù)嵌入式設(shè)計都會有一個有足夠功率的 CPU,但可能沒有多余的。任何一種操作系統(tǒng)都是開銷;它的執(zhí)行使用 CPU 能力,但不直接影響應(yīng)用程序功能。將此開銷保持在最低限度通常很重要。操作系統(tǒng)的效率差異很大,但 RTOS 產(chǎn)品傾向于最節(jié)儉地使用 CPU。

設(shè)備功耗是個問題嗎?

嵌入式系統(tǒng)的功耗成為優(yōu)先事項越來越普遍。這通常用于保持電池壽命,但也可能出于環(huán)境考慮。從歷史上看,功耗被認(rèn)為是純粹的硬件問題?,F(xiàn)在人們認(rèn)識到,軟件可以極大地促進能源使用的優(yōu)化。

簡單來說,代碼越小,所需的內(nèi)存就越少,從而節(jié)省電力。同樣,代碼的效率對必要的 CPU 能力有影響。RTOS 可能是緊湊和高效的。

許多系統(tǒng)包括電源管理功能。這可能只是低功耗模式(如睡眠和掛起)的可用性,但更高級的電源管理正在變得普遍。這可能包括外圍設(shè)備的選擇性斷電以及 CPU 電壓和時鐘頻率的控制。Linux 和許多 RTOS 產(chǎn)品都支持電源管理。

您的系統(tǒng)是否有晦澀或自定義的外圍設(shè)備?

嵌入式應(yīng)用程序中一些最具挑戰(zhàn)性的代碼是外圍設(shè)備的接口。使用操作系統(tǒng)時,這通常封裝在驅(qū)動程序中。大多數(shù) RTOS 都提供了適用于許多標(biāo)準(zhǔn)設(shè)備的驅(qū)動程序。Linux 的功能更多,包括對許多相當(dāng)晦澀的硬件的支持。

如果您有自定義外圍設(shè)備,顯然將無法獲得支持,因此需要自定義驅(qū)動程序。RTOS 供應(yīng)商通常會在這方面提供良好的支持。Linux 驅(qū)動程序開發(fā)專業(yè)知識相當(dāng)廣泛。

你有內(nèi)存管理單元(MMU)嗎?

大多數(shù)高端嵌入式 CPU 都有一個 MMU,至少作為一個選項。這允許重新映射和/或保護存儲區(qū)域。MMU 對于部署 Linux 是必不可少的;如果沒有可用的 MMU,則不能選擇 Linux。RTOS 通常不需要MMU,但如果可用,可以通過促進“輕量級進程模型”(也稱為“線程保護模式”)來使用 MMU。

應(yīng)用程序安全是一個問題嗎?

一些嵌入式應(yīng)用程序具有安全意識——必須保護代碼免受外部干擾。這可以看作是保護每個任務(wù)免受其他任務(wù)的影響。Linux 等采用的進程模型使用 MMU,是提高安全性的一種非常好的方法。如果 RTOS 可以使用 MMU,如上所述,這提供了幾乎相同的安全性和更少的開銷。

您的應(yīng)用程序是否需要安全認(rèn)證?

在許多行業(yè)——如航空航天、醫(yī)療、汽車和工業(yè)——都有安全認(rèn)證計劃。獲得認(rèn)證的過程既復(fù)雜又昂貴。通常需要整個應(yīng)用程序的所有源代碼——包括操作系統(tǒng)。因此,擁有操作系統(tǒng)源代碼是必不可少的;源代碼并不總是可用的。在某種程度上,要認(rèn)證的代碼大小會影響過程的成本,因此操作系統(tǒng)越小越好。

通常不可能只對操作系統(tǒng)進行認(rèn)證——對整個應(yīng)用程序進行評估。但是,一些 RTOS 供應(yīng)商可以提供“預(yù)認(rèn)證包”,其中提供了有關(guān)操作系統(tǒng)所需的大部分初始文檔。當(dāng)然,選擇具有在類似應(yīng)用領(lǐng)域使用和認(rèn)證的“跟蹤記錄”的操作系統(tǒng)也是明智之舉。

商業(yè)因素

盡管工程師喜歡嵌入式軟件開發(fā)的技術(shù)挑戰(zhàn),但此類項目也受到商業(yè)考慮。一切都取決于金錢。實施一個操作系統(tǒng)需要花錢,但是它是獲得的:

內(nèi)部開發(fā)顯然要花錢

商業(yè)產(chǎn)品有價格

開源不是“免費的”;有實施成本和持續(xù)維護

商業(yè)操作系統(tǒng)產(chǎn)品提供各種商業(yè)模式。例如,每個發(fā)貨單位的起始付款和持續(xù)特許權(quán)使用費可能較低,或者預(yù)付費用可能較高且沒有持續(xù)特許權(quán)使用費??山邮艿男吞柸Q于售價和預(yù)計的出貨量。

其他注意事項

操作系統(tǒng)選擇過程中可能容易被忽視的一個方面是借鑒過去的經(jīng)驗。您和您的團隊之前可能使用過一個或多個操作系統(tǒng),這可能會產(chǎn)生重大影響。

例如,一個操作系統(tǒng)的 API 的詳細知識需要一些時間來獲得,因此能夠重用這些知識是一個很大的好處。如果 API 是專有的,這可能是指向特定產(chǎn)品的強指針。如果 API 是標(biāo)準(zhǔn),如 POSIX,您仍然可以選擇。當(dāng)然,使用混亂且不靈活的 API 的糟糕體驗可能會產(chǎn)生相反的效果!

與特定供應(yīng)商合作的經(jīng)驗是另一個因素。他們的技術(shù)支持好嗎?文檔是否符合要求?源代碼是否可用并得到很好的評論?

多核系統(tǒng)和操作系統(tǒng)選擇

使用多核設(shè)計實現(xiàn)嵌入式系統(tǒng)正變得越來越普遍。從軟件的角度來看,有兩種多核系統(tǒng):

對稱多處理 (SMP),其中所有內(nèi)核都是相同的,并且單個操作系統(tǒng)在所有內(nèi)核上運行。

非對稱多處理 (AMP),其中內(nèi)核不一定相同,并且每個內(nèi)核都運行自己的操作系統(tǒng)。

對于 SMP 系統(tǒng),操作系統(tǒng)的選擇是按照本文迄今為止描述的方式進行的,另外一個因素是操作系統(tǒng)必須支持 SMP 功能。Linux 以 SMP 形式提供,許多 RTOS 產(chǎn)品也提供它作為選項。

對于 AMP 系統(tǒng),需要根據(jù)其特定要求使用上述方法為每個內(nèi)核選擇操作系統(tǒng)。

結(jié)論

總的來說,可以看出對于選擇嵌入式操作系統(tǒng)的問題沒有真正簡單的答案。有許多相互關(guān)聯(lián)的因素。不僅要關(guān)注技術(shù)方面的考慮,還要考慮商業(yè)問題和過去的經(jīng)驗,這一點很重要。

對于臺式計算機,有大約四種操作系統(tǒng)可供選擇。在嵌入式世界中,至少有幾十個。這是為什么?簡而言之,臺式計算機都大同小異,但每個嵌入式系統(tǒng)都不同。這種差異既是技術(shù)上的,也是商業(yè)上的。因此需要詳細的選擇過程。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5046

    文章

    18817

    瀏覽量

    298562
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207912
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6545

    瀏覽量

    122743
收藏 人收藏

    評論

    相關(guān)推薦

    RT-Thread出席第六屆中國嵌入式技術(shù)大會,共話嵌入式操作系統(tǒng)與智能工業(yè)

    第六屆中國嵌入式技術(shù)大會將于8月27-28日在深圳會展中心(福田)1號館舉行。本屆大會以“AI與開源,開啟嵌入式系統(tǒng)智能新時代”為主題,聚焦人工智能與嵌入式應(yīng)用、
    的頭像 發(fā)表于 08-03 08:35 ?245次閱讀
    RT-Thread出席第六屆中國<b class='flag-5'>嵌入式</b>技術(shù)大會,共話<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>與智能工業(yè)

    第六屆國產(chǎn)嵌入式操作系統(tǒng)技術(shù)與產(chǎn)業(yè)發(fā)展論壇議程發(fā)布

    每年一度的國產(chǎn)嵌入式操作系統(tǒng)論壇即將在杭州濱江舉辦,今年是第六屆了,又是中國嵌入式系統(tǒng)新朋老友相聚的時刻。大模型催生AI走人千家萬戶、喚醒端側(cè)AI的需求爆發(fā)。以機器人、無人駕駛和智能制
    發(fā)表于 07-26 10:54

    再談嵌入式實時操作系統(tǒng)

    由于嵌入式處理器早期功能單一且運算能力不高,嵌入式應(yīng)用已不能滿足各個領(lǐng)域不斷增長的需求。嵌入式操作系統(tǒng)應(yīng)運而生,嵌入式
    的頭像 發(fā)表于 04-09 17:27 ?568次閱讀
    再談<b class='flag-5'>嵌入式</b>實時<b class='flag-5'>操作系統(tǒng)</b>

    瑞薩CTSU程序在向嵌入式OS操作系統(tǒng)移植時的注意事項

    瑞薩CTSU程序在向嵌入式OS操作系統(tǒng)移植時的注意事項
    的頭像 發(fā)表于 03-29 08:05 ?216次閱讀
    瑞薩CTSU程序在向<b class='flag-5'>嵌入式</b>OS<b class='flag-5'>操作系統(tǒng)</b>移植時的注意事項

    請問ADuC7060能否移植uCOS II嵌入式操作系統(tǒng)

    我想問一下ADuC7060能否移植uCOS II嵌入式操作系統(tǒng)?
    發(fā)表于 01-15 06:59

    什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)的具體應(yīng)用

    嵌入式,一般是指嵌入式系統(tǒng)。用于控制、監(jiān)視或者輔助操作機器和設(shè)備的裝置。
    的頭像 發(fā)表于 12-20 13:33 ?2132次閱讀

    菁蓉聯(lián)創(chuàng)獲得首個openEuler嵌入式操作系統(tǒng)技術(shù)測評證書

    近日,成都菁蓉聯(lián)創(chuàng)科技有限公司(簡稱:菁蓉聯(lián)創(chuàng))攜手四川鯤鵬&歐拉生態(tài)創(chuàng)新中心完成首個openEuler嵌入式操作系統(tǒng)技術(shù)測評證書。
    的頭像 發(fā)表于 11-28 10:18 ?851次閱讀
    菁蓉聯(lián)創(chuàng)獲得首個openEuler<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>技術(shù)測評證書

    基于嵌入式Linux內(nèi)核的Android操作系統(tǒng)智能移動終端

    電子發(fā)燒友網(wǎng)站提供《基于嵌入式Linux內(nèi)核的Android操作系統(tǒng)智能移動終端.pdf》資料免費下載
    發(fā)表于 11-06 10:07 ?0次下載
    基于<b class='flag-5'>嵌入式</b>Linux內(nèi)核的Android<b class='flag-5'>操作系統(tǒng)</b>智能移動終端

    有無操作系統(tǒng)嵌入式Linux驅(qū)動設(shè)備有何區(qū)別?

    有無操作系統(tǒng)嵌入式Linux驅(qū)動設(shè)備有何區(qū)別? 嵌入式系統(tǒng)是指集成電子設(shè)備上的計算機系統(tǒng),通常用于控制、監(jiān)測、
    的頭像 發(fā)表于 10-29 17:29 ?602次閱讀

    一種嵌入式操作系統(tǒng)—VxWorks

    電子發(fā)燒友網(wǎng)站提供《一種嵌入式操作系統(tǒng)—VxWorks.pdf》資料免費下載
    發(fā)表于 10-27 10:59 ?0次下載
    一種<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>—VxWorks

    【11月師資培訓(xùn)】嵌入式操作系統(tǒng)開發(fā)與實踐

    ,使用操作系統(tǒng)進行開發(fā)已經(jīng)成為主流。RT-Thread,作為國產(chǎn)開源嵌入式物聯(lián)網(wǎng)操作系統(tǒng),以其中立第三方、構(gòu)架先進、功能強大和社區(qū)繁榮等特點,在眾多領(lǐng)域得到了廣泛應(yīng)用。 11月9日至10日 , RT-Thread將聯(lián)動瑞薩電子共
    的頭像 發(fā)表于 10-27 09:45 ?318次閱讀
    【11月師資培訓(xùn)】<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>開發(fā)與實踐

    基于VxWorks嵌入式操作系統(tǒng)和RTW環(huán)境的飛控軟件開發(fā)方案

    電子發(fā)燒友網(wǎng)站提供《基于VxWorks嵌入式操作系統(tǒng)和RTW環(huán)境的飛控軟件開發(fā)方案.pdf》資料免費下載
    發(fā)表于 10-24 14:14 ?0次下載
    基于VxWorks<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>和RTW環(huán)境的飛控軟件開發(fā)方案

    嵌入式實時操作系統(tǒng)μC/OS-Ⅱ在LPC1788上的移植及應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《嵌入式實時操作系統(tǒng)μC/OS-Ⅱ在LPC1788上的移植及應(yīng)用.pdf》資料免費下載
    發(fā)表于 10-23 14:07 ?0次下載
    <b class='flag-5'>嵌入式</b>實時<b class='flag-5'>操作系統(tǒng)</b>μC/OS-Ⅱ在LPC1788上的移植及應(yīng)用

    基于ARM和uc/osII嵌入式操作系統(tǒng)的USB-CAN適配器設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于ARM和uc/osII嵌入式操作系統(tǒng)的USB-CAN適配器設(shè)計.pdf》資料免費下載
    發(fā)表于 10-07 16:00 ?1次下載
    基于ARM和uc/osII<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>的USB-CAN適配器設(shè)計

    STM32嵌入式操作系統(tǒng)介紹

    嵌入式操作系統(tǒng)的特點? 嵌入式操作系統(tǒng)是一種用途廣泛的系統(tǒng)軟件,通常包括與硬件相關(guān)的底層驅(qū)動軟件、系統(tǒng)
    發(fā)表于 09-28 06:59