在上一篇文章“如何選擇嵌入式系統(tǒng)操作系統(tǒng):操作系統(tǒng)特征”中,我們討論了團(tuán)隊(duì)在選擇操作系統(tǒng)時(shí)權(quán)衡的系統(tǒng)特征。我們看到產(chǎn)品的生命周期成本、物理特性、實(shí)時(shí)性能、庫(kù)集成和安全性等特征發(fā)揮了作用(僅舉幾例)。今天的帖子將精確地探討何時(shí)何地使用裸機(jī),RTOS和Linux是有意義的。請(qǐng)記住,這些是一般準(zhǔn)則,因行業(yè)而異,甚至因產(chǎn)品而異。
何時(shí)使用裸機(jī)(無(wú)操作系統(tǒng))
當(dāng)您查看有關(guān)連接性,物聯(lián)網(wǎng),機(jī)器學(xué)習(xí)和其他前沿主題的營(yíng)銷標(biāo)題時(shí),您可能會(huì)認(rèn)為每個(gè)嵌入式系統(tǒng)都需要操作系統(tǒng)。不幸的是,這種印象與事實(shí)相去甚遠(yuǎn)!雖然許多尖端技術(shù)可能受益于操作系統(tǒng),但對(duì)于相當(dāng)多的應(yīng)用程序,您可以在沒(méi)有RTOS或Linux的情況下生存。如果您查看2019年嵌入式市場(chǎng)調(diào)查,您會(huì)發(fā)現(xiàn)約50%的項(xiàng)目是裸機(jī)的!
在幾種情況下,不使用操作系統(tǒng)會(huì)很有意義。首先,如果您使用的是 8 位或 16 位微控制器,您幾乎總是希望使用裸機(jī)或使用輕量級(jí)協(xié)作調(diào)度程序。許多操作系統(tǒng)開(kāi)發(fā)人員不會(huì)將他們的軟件移植到較小的架構(gòu)中,因?yàn)檫@些系統(tǒng)已經(jīng)受到處理器和資源限制。添加操作系統(tǒng)通常會(huì)消耗太多的時(shí)鐘周期,并使系統(tǒng)效率低下。
接下來(lái),裸機(jī)解決方案在微控制器引腳數(shù)較少且可用的閃存和SRAM有限的應(yīng)用中非常有意義。在資源受限的環(huán)境中工作時(shí),每個(gè)字節(jié)和每個(gè)時(shí)鐘周期都會(huì)對(duì)產(chǎn)品是否可用產(chǎn)生影響。如果微控制器受到資源限制,最有效的解決方案可能是沒(méi)有操作系統(tǒng)。
最后,如果您正在處理一個(gè)沒(méi)有任何連接或高性能處理需求的“簡(jiǎn)單”控制應(yīng)用程序,則裸機(jī)可能對(duì)您的應(yīng)用程序有意義。當(dāng)今在嵌入式系統(tǒng)中使用操作系統(tǒng)的重要驅(qū)動(dòng)因素之一是需要支持基礎(chǔ)設(shè)施代碼。例如,連接到互聯(lián)網(wǎng)的傳感器必須連接到云,管理安全分區(qū),執(zhí)行安全更新,運(yùn)行DSP算法等。操作系統(tǒng)可以幫助管理所有這些活動(dòng)的時(shí)間和資源,但是如果您沒(méi)有所有這些內(nèi)容,則可能不需要操作系統(tǒng)。
何時(shí)使用實(shí)時(shí)操作系統(tǒng)
當(dāng)微控制器的板載資源達(dá)到40 MHz的最低時(shí)鐘速度,具有至少64千字節(jié)的閃存和8千字節(jié)的RAM時(shí),使用操作系統(tǒng)的大門就開(kāi)始了。如果做得更少,您將花費(fèi)更多時(shí)間與RTOS的需求而不是應(yīng)用程序的需求作斗爭(zhēng)。例如,當(dāng)您使用 RTOS 時(shí),每個(gè)任務(wù)都有自己的堆棧。堆棧至少需要 512 – 1024 字節(jié)的 SRAM。如果你的設(shè)計(jì)需要六個(gè)任務(wù),你很快就會(huì)耗盡內(nèi)存。你可能需要更多的閃存和RAM來(lái)構(gòu)建一個(gè)合適的系統(tǒng)。
當(dāng)我決定是使用RTOS還是裸機(jī)時(shí),我問(wèn)自己幾個(gè)問(wèn)題:
添加實(shí)時(shí)操作系統(tǒng)是否會(huì)簡(jiǎn)化軟件架構(gòu)?
添加實(shí)時(shí)操作系統(tǒng)會(huì)提高軟件的可維護(hù)性嗎?
應(yīng)用程序的實(shí)時(shí)性能是否會(huì)得到改善?
RTOS是一種工具,應(yīng)該為應(yīng)用程序和整個(gè)軟件開(kāi)發(fā)生命周期提供價(jià)值。如果RTOS是一個(gè)障礙,那么就不應(yīng)該僅僅因?yàn)槲蚁胧褂盟褂盟?/p>
在一些特定的應(yīng)用中,使用RTOS是立即有意義的。例如,如果我正在開(kāi)發(fā)物聯(lián)網(wǎng)產(chǎn)品,我?guī)缀蹩偸鞘褂肦TOS。這是因?yàn)镽TOS提供了工具和機(jī)制,可以輕松管理低級(jí)資源并將應(yīng)用程序分解為半獨(dú)立的程序。當(dāng)應(yīng)用程序很復(fù)雜時(shí),將應(yīng)用程序分解為任務(wù)是非常有意義的。例如,物聯(lián)網(wǎng)產(chǎn)品通常需要幾個(gè)任務(wù)來(lái)管理連接,更不用說(shuō)最終應(yīng)用了。另一個(gè)例子是具有顯示器的設(shè)備,盡管有時(shí)這些應(yīng)用程序最適合多核處理器。
何時(shí)使用 Linux
近年來(lái),在嵌入式系統(tǒng)中使用Linux已成為一種流行的選擇。Linux受歡迎的部分原因是它提供了一個(gè)功能齊全的操作系統(tǒng),其中包含隨之而來(lái)的所有花里胡哨的東西。Linux帶有大量的庫(kù)和功能。開(kāi)發(fā)人員可以利用多任務(wù)處理,甚至是內(nèi)核的實(shí)時(shí)補(bǔ)丁。此外,運(yùn)行Linux的硬件成本在過(guò)去五年中急劇下降,使其成為特定應(yīng)用程序的令人興奮的解決方案。
在考慮一個(gè)項(xiàng)目是否可以使用嵌入式Linux時(shí),我會(huì)考慮以下幾點(diǎn)。首先,產(chǎn)品必須能夠支持硬件的財(cái)務(wù)成本。我最近有一個(gè)客戶,我第三次幫助重新設(shè)計(jì)他們的產(chǎn)品,因?yàn)榍皟晌辉O(shè)計(jì)師無(wú)法滿足制造價(jià)格目標(biāo)。該產(chǎn)品的目標(biāo)受眾愿意為該產(chǎn)品支付約40美元。最初的設(shè)計(jì)師使用Linux構(gòu)建了一個(gè)系統(tǒng),材料清單成本超過(guò)100美元!使用微控制器和操作系統(tǒng)的RTOS重新設(shè)計(jì)產(chǎn)品,我能夠?qū)OM降低到11美元左右。這就是擁有一家可持續(xù)發(fā)展的公司和一家不存在的公司之間的區(qū)別。
使用 Linux 時(shí)要考慮的第二點(diǎn)是產(chǎn)品的卷。如果你有一個(gè)小批量的產(chǎn)品,用戶可能已經(jīng)支付了更多的金額。當(dāng)您查看非經(jīng)常性工程成本和產(chǎn)品成本之間的權(quán)衡時(shí),您可能會(huì)發(fā)現(xiàn)使用Linux可以大大減少NRE和上市時(shí)間。如果客戶對(duì)價(jià)格不敏感,Linux可能更具商業(yè)意義。
最后,我們不能忘記Linux為我們提供了強(qiáng)大的抽象,服務(wù)和庫(kù),可以簡(jiǎn)化工程。如果我們的產(chǎn)品非常復(fù)雜,我們可以利用Linux來(lái)簡(jiǎn)化我們與硬件的交互方式。我們可以使用更現(xiàn)代的編程語(yǔ)言,如Python。如果需要,我們可以自定義內(nèi)核。Linux非常適用于許多嵌入式應(yīng)用程序。如果您需要靈活性和利用現(xiàn)有庫(kù)的能力,Linux可能是您應(yīng)用程序的絕佳選擇。
結(jié)論
選擇用于嵌入式產(chǎn)品的操作系統(tǒng)可能會(huì)成就或破壞項(xiàng)目。過(guò)于輕量級(jí)會(huì)導(dǎo)致開(kāi)發(fā)團(tuán)隊(duì)花費(fèi)更多的精力和時(shí)間來(lái)使事情正常工作。另一方面,過(guò)重會(huì)導(dǎo)致更高的物料清單成本。正如我們所看到的,為您的應(yīng)用程序選擇正確的操作系統(tǒng)歸結(jié)為權(quán)衡對(duì)您的團(tuán)隊(duì)和用戶最重要的東西。
審核編輯 黃昊宇
-
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3716瀏覽量
133049 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7325瀏覽量
128576
發(fā)布評(píng)論請(qǐng)先 登錄
如何選擇嵌入式系統(tǒng)操作系統(tǒng):操作系統(tǒng)特征
嵌入式操作系統(tǒng)怎么選擇?
如何去選擇嵌入式操作系統(tǒng)?
嵌入式操作系統(tǒng)的內(nèi)核研究
嵌入式實(shí)時(shí)操作系統(tǒng)COS一Ⅱ與VxWORKs
嵌入式操作系統(tǒng)的網(wǎng)絡(luò)加載實(shí)現(xiàn)
關(guān)于怎樣選擇嵌入式操作系統(tǒng)的淺析
該如何正確選擇嵌入式操作系統(tǒng)
如何為嵌入式應(yīng)用程序選擇操作系統(tǒng)
嵌入式操作系統(tǒng)如何應(yīng)用_嵌入式操作系統(tǒng)的組成
嵌入式操作系統(tǒng)
如何選擇您的嵌入式系統(tǒng)操作系統(tǒng):選擇指南
如何選擇您的嵌入式系統(tǒng)操作系統(tǒng):操作系統(tǒng)特性
什么是嵌入式操作系統(tǒng)?

如何選擇嵌入式系統(tǒng)操作系統(tǒng):選擇指南
評(píng)論