千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 嵌入式開發:如何選擇嵌入式操作系統

嵌入式開發:如何選擇嵌入式操作系統

來源:千鋒教育
發布人:xqq
時間: 2023-12-11 08:22:33 1702254153

幾乎所有現代嵌入式系統都是使用某種操作系統(OS)構建的。這意味著選擇該操作系統往往發生在設計過程的早期。許多嵌入式開發人員認為這一選擇過程具有挑戰性。如何為你的特定應用程序選擇操作系統?

選擇標準

操作系統的選擇是由你可能會問自己或別人的一系列問題決定的。很容易想象這都是關于操作系統的技術問題,事實上,這些問題主導了整個過程。然而,需要考慮商業因素(如成本),也不能忽視個人體驗等因素。

1.技術因素

操作系統的技術方面在選擇過程中占主導地位。在考慮其他參數之前,需要完全弄清楚這些問題。

你的應用程序是實時的嗎?

在實時應用程序中,響應時間至關重要。它可能不夠快,但需要在可預測的(確定性的)時間內對外部事件做出響應,它必須足夠快(或慢)。對操作系統選擇的影響是,實時操作系統(RTOS)最有可能是正確的選擇,因為它是專門為適應應用程序的要求而設計的。Linux本質上不是實時的,但是實時擴展可能使它成為一個可行的選擇。

內存大小有限嗎?

過去,嵌入式開發系統的內存容量通常非常小,可能只有幾k。如今,雖然微控制器的片內存儲器可能仍有很大限制,但提供的內存容量要大得多。在設計完成后,給系統增加更多的內存并不容易。更重量級的操作系統,如Linux,非常需要內存,所以空間限制是一個真正的挑戰。大多數RTOS產品要輕得多,而且很可能是可伸縮的,這意味著內存只用于實際需要的功能。

CPU功率有限嗎?

CPU的能力是衡量它在給定時間內可以做多少工作——可以執行多少指令。大多數嵌入式設計的CPU都有足夠的能力,但可能沒有多余的能力。任何一種OS都是開銷;它的執行使用CPU的能力,但不直接影響應用程序的功能。將這種開銷保持在最低水平通常很重要。操作系統的效率差異很大,但是RTOS的產品傾向于最節約地使用CPU。

設備功耗是個問題嗎?

嵌入式系統的功耗越來越成為優先考慮的問題。這通常用于延長電池壽命,但也可能是出于環境考慮。歷史上,功耗被認為是一個純粹的硬件問題。現在人們認識到,軟件可以大大有助于優化能源的使用。簡單地說,在嵌入式開發中,代碼越小,需要的內存就越少,這樣就節省了能量。類似地,代碼的效率對必要的CPU能力有影響。RTOS很可能是緊湊和高效的。

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

你的系統有模糊的或定制的外圍設備嗎?

嵌入式應用中最具挑戰性的一些代碼是與外圍設備的接口。使用操作系統時,這通常封裝在驅動程序中。大多數RTOSes都提供了大量標準設備的驅動程序。Linux有更多的功能,包括對許多不太知名的硬件的支持。如果你有自定義外設,顯然沒有支持將是可用的,所以將需要一個自定義驅動程序。RTOS供應商通常在這方面提供良好的支持。Linux驅動程序開發專業知識是相當普遍的。

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

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

應用程序安全性是一個問題嗎?

一些嵌入式應用具有安全意識——必須保護代碼免受外部干擾。這可以看作是保護每個任務不受其他任務的影響。Linux等使用的進程模型。使用MMU是增加安全性的一個非常好的方法。如果RTOS可以利用MMU,如上所述,這可以用更少的開銷提供幾乎同樣多的安全性。

你的應用需要安全認證嗎?

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

在嵌入式開發中,通常不可能只對操作系統進行認證,而是對整個應用程序進行評估。但是,一些RTOS供應商可以提供“預認證包”,其中提供了操作系統所需的大量初始文檔。當然,選擇在類似應用領域有使用和認證“記錄”的操作系統也是明智的。

2.商業因素

雖然工程師喜歡嵌入式軟件開發的技術挑戰,但這類項目也要考慮商業因素。一切都歸結于錢。實施操作系統需要資金,但卻可以獲得:

l內部開發顯然要花錢

l一件商品有一個價格

l開源不是“免費的”存在實施成本和持續維護

商業操作系統產品有多種商業模式。例如,可能會有一個低的起始付款和每單位裝運的持續版稅,或者可能會有一個較大的前期費用,沒有持續的版稅。可接受的型號取決于售價和預計的出貨量。

3.其他考慮

操作系統選擇過程中容易被忽略的一個方面是利用過去的經驗。嵌入式開發團隊可能以前使用過一個或多個操作系統,這可能會產生重大影響。例如,獲取操作系統API的詳細知識需要一些時間,因此能夠重用這些知識是一個很大的好處。如果API是專有的,這可能是一個指向特定產品的強指針。如果API是一個標準,比如POSIX,你仍然可以選擇。當然,使用混亂和不靈活的API的糟糕體驗可能會產生相反的效果!

與特定供應商合作的經驗是另一個因素。他們的技術支持好嗎?文檔符合標準嗎?源代碼是否可用并得到了很好的評論?

多核系統和操作系統選擇

使用多核設計實現嵌入式系統變得越來越普遍。從軟件的角度來看,有兩種多核系統:

l對稱多處理(SMP),其中所有內核都是相同的,一個操作系統運行在所有內核上。

l不對稱多處理(AMP),內核不一定完全相同,每個內核都運行自己的操作系統。

對于SMP系統,操作系統的選擇是按照本文到目前為止所描述的方式進行的,另外一個因素是操作系統必須支持SMP功能。Linux有SMP形式,許多RTOS產品也提供它作為一個選項。對于AMP系統,需要根據其具體要求,使用上述方法為每個內核選擇操作系統。

結論

總的來說,可以看出,對于選擇嵌入式操作系統的問題,沒有真正簡單的答案。有許多相互關聯的因素。重要的是,不僅要關注技術方面的考慮,還要考慮商業問題和過去的經驗。

對于臺式電腦,有大約四種操作系統可供選擇。在嵌入式開發領域,至少有幾十個。這是為什么呢?簡單地說,臺式電腦都大同小異,但每個嵌入式系統都不一樣。這種差異既是技術上的,也是商業上的。因此需要詳細的選擇過程。

聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
在线播放免费精品 | 中文字幕一区日韩高清 | 午夜亚洲欧美视频在线观看 | 亚洲日韩精品欧美一区二区一 | 夜夜躁日日躁狠狠久久AV | 日韩久久久中文字幕 |