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

完善資料讓更多小伙伴認識你,還能領(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)品的工作原理

選擇標準

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

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

嵌入式系統(tǒng)的功耗成為優(yōu)先事項越來越普遍。這通常用于保持電池壽命,但也可能出于環(huán)境考慮。從歷史上看,功耗被認為是純粹的硬件問題?,F(xià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 都提供了適用于許多標準設(shè)備的驅(qū)動程序。Linux 的功能更多,包括對許多相當晦澀的硬件的支持。

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

你有內(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)用程序是否需要安全認證?

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

通常不可能只對操作系統(tǒng)進行認證——對整個應(yīng)用程序進行評估。但是,一些 RTOS 供應(yīng)商可以提供“預(yù)認證包”,其中提供了有關(guān)操作系統(tǒng)所需的大部分初始文檔。當然,選擇具有在類似應(yīng)用領(lǐng)域使用和認證的“跟蹤記錄”的操作系統(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 是標準,如 POSIX,您仍然可以選擇。當然,使用混亂且不靈活的 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)注

    5082

    文章

    19126

    瀏覽量

    305299
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11304

    瀏覽量

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

    關(guān)注

    37

    文章

    6827

    瀏覽量

    123335
收藏 人收藏

    評論

    相關(guān)推薦

    ARM嵌入式實時操作系統(tǒng)比較

    嵌入式系統(tǒng)領(lǐng)域,實時操作系統(tǒng)(RTOS)是確保任務(wù)按時完成的關(guān)鍵技術(shù)。ARM架構(gòu)因其低功耗、高性能的特點,在嵌入式系統(tǒng)中得到了廣泛應(yīng)用。本
    的頭像 發(fā)表于 12-28 09:15 ?180次閱讀

    新手怎么學(xué)嵌入式?

    基本的概念。嵌入式系統(tǒng)是一種將計算機技術(shù)嵌入到特定設(shè)備中的系統(tǒng),它通常具有特定的功能和有限的資源。你需要學(xué)習(xí)一些計算機基礎(chǔ)知識,如數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)
    發(fā)表于 12-12 10:51

    什么是嵌入式操作系統(tǒng)?

    什么是嵌入式操作系統(tǒng)? 想象一下,如果一個智能設(shè)備,比如你口袋里的智能手機,是一個有頭腦的機器人,那么嵌入式操作系統(tǒng)(Embedded Operating System,簡稱EOS)就
    發(fā)表于 11-08 15:07

    嵌入式 Linux 操作系統(tǒng)配置

    隨著物聯(lián)網(wǎng)(IoT)和智能設(shè)備的快速發(fā)展,嵌入式系統(tǒng)在各個領(lǐng)域扮演著越來越重要的角色。Linux因其開源、靈活和穩(wěn)定的特性,成為嵌入式系統(tǒng)的首選操作
    的頭像 發(fā)表于 11-06 10:22 ?392次閱讀

    新書發(fā)布——《RT-Thread嵌入式實時操作系統(tǒng)內(nèi)核、驅(qū)動和應(yīng)用開發(fā)技術(shù)》

    我們非常高興地宣布,由鄭苗秀、沈鴻飛和廖建尚編著的《RT-Thread嵌入式實時操作系統(tǒng)內(nèi)核、驅(qū)動和應(yīng)用開發(fā)技術(shù)》一書正式發(fā)布。本書的編寫團隊由多位在嵌入式和實時操作系統(tǒng)領(lǐng)域有著豐富經(jīng)
    的頭像 發(fā)表于 09-03 08:06 ?599次閱讀
    新書發(fā)布——《RT-Thread<b class='flag-5'>嵌入式</b>實時<b class='flag-5'>操作系統(tǒng)</b>內(nèi)核、驅(qū)動和應(yīng)用開發(fā)技術(shù)》

    嵌入式linux開發(fā)的基本步驟有哪些?

    嵌入式Linux開發(fā)是一個復(fù)雜的過程,涉及到硬件選擇、操作系統(tǒng)移植、驅(qū)動開發(fā)、應(yīng)用程序開發(fā)等多個方面。以下是嵌入式Linux開發(fā)的基本步驟,以及每個步驟的說明。 硬件
    的頭像 發(fā)表于 09-02 09:11 ?497次閱讀

    “第六屆國產(chǎn)嵌入式操作系統(tǒng)技術(shù)與產(chǎn)業(yè)發(fā)展論壇”圓滿結(jié)束

    嵌入式系統(tǒng)是電子信息產(chǎn)業(yè)的基礎(chǔ),是智能系統(tǒng)的核心。大模型催生AI走入千家萬戶、喚醒端側(cè)AI的需求爆發(fā)。以機器人、無人駕駛和智能制造為代表的智能嵌入式
    的頭像 發(fā)表于 08-30 17:27 ?428次閱讀
    “第六屆國產(chǎn)<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>技術(shù)與產(chǎn)業(yè)發(fā)展論壇”圓滿結(jié)束

    嵌入式系統(tǒng)中的實時操作系統(tǒng)

    嵌入式RTOS是嵌入式應(yīng)用程序運行、相互交互和與外界通信的底層軟件機制。在本節(jié)中,您將了解嵌入式軟件開發(fā)人員使用哪些流行RTOS以及它們運行的嵌入式硬件平臺。
    的頭像 發(fā)表于 08-20 11:28 ?496次閱讀

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

    第六屆中國嵌入式技術(shù)大會將于8月27-28日在深圳會展中心(福田)1號館舉行。本屆大會以“AI與開源,開啟嵌入式系統(tǒng)智能新時代”為主題,聚焦人工智能與嵌入式應(yīng)用、
    的頭像 發(fā)表于 08-03 08:35 ?410次閱讀
    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ā)展論壇即將召開

    每年一度的國產(chǎn)嵌入式操作系統(tǒng)論壇即將在杭州濱江舉辦,今年是第六屆了,又是中國嵌入式系統(tǒng)新朋老友相聚的時刻。大模型催生AI走人千家萬戶、喚醒端側(cè)AI的需求爆發(fā)。以機器人、無人駕駛和智能制
    的頭像 發(fā)表于 08-01 08:36 ?380次閱讀
    【峰會同期活動】第六屆國產(chǎn)<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>技術(shù)與產(chǎn)業(yè)發(fā)展論壇即將召開

    第六屆國產(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)的外設(shè)器件選擇

    作者:DigiKey Editor 嵌入式系統(tǒng)除了最重要的為處理器選擇之外,配合的相關(guān)外設(shè)器件也是嵌入式系統(tǒng)的重要組成部分,包括內(nèi)存、時鐘(
    的頭像 發(fā)表于 05-05 09:38 ?915次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>的外設(shè)器件<b class='flag-5'>選擇</b>

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

    由于嵌入式處理器早期功能單一且運算能力不高,嵌入式應(yīng)用已不能滿足各個領(lǐng)域不斷增長的需求。嵌入式操作系統(tǒng)應(yīng)運而生,嵌入式
    的頭像 發(fā)表于 04-09 17:27 ?802次閱讀
    再談<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 ?357次閱讀
    瑞薩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