When and where it makes sense to use bare-metal, an RTOS, and Linux.
在上一篇文章“如何選擇您的嵌入式系統操作系統:操作系統特性”中,我們討論了團隊在選擇操作系統時會權衡的系統特性。我們看到產品的生命周期成本、物理特性、實時性能、庫集成和安全性等特性發揮了作用(僅舉幾例)。今天的文章將準確探討何時何地使用裸機、RTOS 和 Linux 是有意義的。請記住,這些是一般性指導方針,會因行業而異,甚至因產品而異。
何時使用裸機(無操作系統)
當您查看有關連接、物聯網、機器學習和其他前沿主題的營銷頭條時,您可能會認為每個嵌入式系統都需要一個操作系統。不幸的是,這種印象與事實相去甚遠!雖然許多尖端技術可能受益于操作系統,但您可以在沒有 RTOS 或 Linux 的情況下使用相當多的應用程序。如果您查看2019 年嵌入式市場調查,您會發現約 50% 的項目是裸機!
在幾種情況下,不使用操作系統會很有意義。首先,如果您使用的是 8 位或 16 位微控制器,您幾乎總是希望使用裸機或使用輕量級協作調度程序。許多操作系統開發人員不會將他們的軟件移植到更小的架構上,因為這些系統已經受到處理器和資源的限制。添加操作系統通常會消耗太多時鐘周期并使系統效率低下。
接下來,裸機解決方案在微控制器引腳數較少且可用閃存和 SRAM 有限的應用中非常有意義。在資源受限的環境中工作時,每個字節和每個時鐘周期都會對產品是否可用產生影響。如果微控制器資源有限,最有效的解決方案可能是沒有操作系統。
最后,如果您正在開發一個沒有任何連接或高性能處理需求的“簡單”控制應用程序,那么裸機可能對您的應用程序有意義。當今在嵌入式系統中使用操作系統的重要驅動因素之一是需要支持基礎設施代碼。例如,連接互聯網的傳感器必須連接到云、管理安全分區、執行安全更新、運行 DSP 算法等。操作系統可以幫助管理所有這些活動的時間和資源,但您可能不需要如果您沒有所有這些東西,請使用操作系統。
何時使用 RTOS
當微控制器的板載資源達到 40 MHz 的最低時鐘速度、至少 64 KB 的閃存和 8 KB 的 RAM 時,使用操作系統的大門就開始了。減少任何東西,您將花費更多時間來滿足 RTOS 的需求,而不是應用程序的需求。例如,當您使用 RTOS 時,每個任務都有自己的堆棧。堆棧至少需要 512 – 1024 字節的 SRAM。如果您的設計需要六個任務,您將很快耗盡內存。您可能需要更多的閃存和 RAM 來構建合適的系統。
當我決定是使用 RTOS 還是使用裸機時,我會問自己幾個問題:
添加 RTOS 會簡化軟件架構嗎?
添加 RTOS 會提高軟件的可維護性嗎?
應用程序的實時性能會提高嗎?
RTOS 是一種應該為應用程序和整個軟件開發生命周期提供價值的工具。如果 RTOS 是一個障礙,那么不應該僅僅因為我想使用它就使用它。
在某些特定的應用程序中,使用 RTOS 會立即變得有意義。例如,如果我正在開發物聯網產品,我幾乎總是使用 RTOS。這是因為 RTOS 提供了工具和機制來輕松管理低級資源并將應用程序分解為半獨立的程序。當應用程序很復雜時,將應用程序分解為任務很有意義。例如,物聯網產品通常需要幾個任務來管理連接,更不用說終端應用了。另一個例子是有顯示器的設備,盡管有時這些應用最適合多核處理器。
何時使用 Linux
近年來,在嵌入式系統中使用 Linux 已成為一種流行的選擇。Linux 受歡迎的部分原因在于它提供了一個功能齊全的操作系統,并附帶了所有的花里胡哨。Linux 帶有大量的庫和特性。開發人員可以利用多任務處理甚至內核的實時補丁。此外,運行 Linux 的硬件成本在過去五年中大幅下降,使其成為特定應用程序的令人興奮的解決方案。
在查看一個項目是否可以使用嵌入式 Linux 時,我考慮了幾點。首先,產品必須能夠支持硬件的財務成本。我最近有一個客戶,我第三次幫助重新設計他們的產品,因為前兩位設計師無法滿足制造價格目標。該產品的目標受眾愿意為該產品支付大約 40 美元。最初的設計師使用 Linux 構建了一個系統,材料成本超過 100 美元!使用微控制器和用于操作系統的 RTOS 重新設計產品,我能夠將 BOM 降至 11 美元左右。這就是擁有可持續發展的公司和不存在的公司之間的區別。
使用 Linux 時要考慮的第二點是產品的體積。如果你有一個小批量的產品,用戶可能已經支付了更大的金額。當您查看非經常性工程成本和產品成本之間的權衡時,您可能會發現使用 Linux 可以顯著降低 NRE 和上市時間。如果客戶對價格不敏感,Linux 可能更具有商業意義。
最后,我們不能忘記 Linux 為我們提供了強大的抽象、服務和庫,可以簡化工程。如果我們的產品非常復雜,我們可以利用 Linux 來簡化我們與硬件的交互方式。我們可以使用更現代的編程語言,如 Python。如果需要,我們可以自定義內核。Linux 非常適用于許多嵌入式應用程序。如果您需要靈活性以及利用現有庫的能力,Linux 可能是您應用程序的絕佳選擇。
結論
選擇用于嵌入式產品的操作系統可能會影響項目的成敗。太輕量級會導致開發團隊花費更多的精力和時間來使事情正常工作。另一方面,過重會導致更高的物料清單成本。正如我們所見,為您的應用程序選擇正確的操作系統歸結為權衡對您的團隊和用戶最重要的東西。
審核編輯 黃昊宇
-
嵌入式
+關注
關注
5092文章
19177瀏覽量
307663 -
操作系統
+關注
關注
37文章
6892瀏覽量
123742
發布評論請先 登錄
相關推薦
云服務器選擇什么操作系統好?
2025嵌入式操作系統專業培訓班正式啟動!
![2025<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統</b>專業培訓班正式啟動!](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
ARM嵌入式實時操作系統比較
什么是嵌入式操作系統?
嵌入式 Linux 操作系統配置
嵌入式linux開發的基本步驟有哪些?
RT-Thread出席第六屆中國嵌入式技術大會,共話嵌入式操作系統與智能工業
![RT-Thread出席第六屆中國<b class='flag-5'>嵌入式</b>技術大會,共話<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統</b>與智能工業](https://file1.elecfans.com/web2/M00/C4/8A/wKgZomX0EhWACv8DAAAUet8ikhs451.png)
評論