在每個開發周期中都有一個時候,你必須選擇軟件構建的基礎。雖然有許多選擇,但它們通常分為三類:裸機、實時操作系統(RTOS)或通用操作系統(GPOS)。
裸機系統不使用操作系統。相反,應用程序代碼直接在硬件上運行,不需要操作系統的支持。你的代碼直接與硬件交互并訪問硬件。
RTOS操作系統旨在為實時應用程序提供可預測的執行時間和時間敏感的應用程序。他們的主要特征是響應性和確定性。
GPOS設計用于運行廣泛的軟件應用程序。這些操作系統的特點是用戶友好的界面和它們提供的廣泛服務。GPOS的例子包括Windows、Linux和MacOS。
你的選擇可能會對成本、上市時間甚至質量產生很大的后果。讓我們看看如何在裸機、RTOS和GPOS之間做出選擇。
何時選擇裸機
當處理器硬件受到資源限制時,裸機解決方案可以很好地工作。受限的資源包括處理器總線寬度、RAM、閃存和處理器速度。例如,你會發現在8位和16位微控制器上很少支持RTOS。
你還會發現,很少有操作系統適合32千字節的閃存空間或只有2千字節RAM的處理器。
資源限制并不是選擇裸機的唯一考慮因素。如果你的系統有非常嚴格的實時要求,你可能還想選擇裸機解決方案。操作系統通常會有與其內核相關的開銷,這會導致響應時間的抖動和延遲。直接訪問硬件可以幫助你管理時序和確定性,同時確保低延遲。
裸機解決方案最適合基于微控制器的低端系統,這些系統是具有嚴格實時要求的斷開系統。
何時選擇RTOS
當你的可用硬件不受資源限制時,RTOS是一個很好的解決方案。這些包括硬件系統,如32位微控制器和低端應用處理器。要使用RTOS,你的系統應該至少有64千字節的閃存、4千字節的RAM和80 MHz或更高的處理器時鐘。雖然你可以少花一些時間,但是你將花費更多的時間來對抗RTOS和硬件,而不是開發你的應用程序。
RTOS通常用于比裸機系統具有更復雜時序要求的系統。這些系統通常需要管理實時需求,同時處理TCP/IP、MQTT、USB、Wi-Fi等通信棧。雖然使用裸機解決方案開發這些類型的系統是可能的,但是擁有RTOS可以簡化設計,加快上市時間,并使軟件維護更容易。
RTOS的另一個重要方面是操作系統添加到軟件開發中的功能,例如任務管理、任務同步、調度和任務間通信。RTOS可以讓你優先處理那些可以互相搶占的任務,從而允許更復雜的應用程序設計。
RTOS解決方案最適合中高性能微控制器和低端應用處理器,在這些領域,高可靠性和時序至關重要。
何時選擇GPOS
當你有應用程序處理器或完整的微處理器可用時,通用操作系統非常適合。當你看到GPOS時,你很可能會使用某種嵌入式Linux。硬件通常是32位應用處理器,以200 MHz或更高的總線速度運行,具有數兆字節的內存存儲和RAM,如果不是數千兆字節的話。
對于不太需要嚴格計時和確定性的復雜應用程序來說,GPOS是一個出色的解決方案。GPOS通常提供廣泛的服務,例如用戶友好的界面、通信堆棧、軟件更新的簡便性等。這些功能可以幫助你在沒有底層硬件知識或專業知識的情況下更好地管理系統。它們也更易于設置和管理。在GPOS,更多的開發人員擁有領域知識,但電子產品通常比微控制器解決方案貴得多。
GPOS解決方案最適合確定性和系統時序不太重要的應用和微處理器。
結論
為你的電子系統選擇基礎時,你會發現有三種通用解決方案可供選擇:裸機、RTOS和GPOS。最佳解決方案取決于你可用的硬件、你想要的可靠性以及系統的時序要求。在某些情況下,你可能會發現不止一個適合。在這些情況下,你必須考慮開發成本以及長期維護和支持。
不要忘記考慮系統的可伸縮性及其未來擴展的潛力。系統可能需要發展,以適應更復雜的功能或額外的硬件,能夠處理這種增長的操作系統可能會更好地服務于這些系統。最后,考慮每個選項可用的社區和供應商支持,因為這可能會極大地影響你在系統生命周期中排除故障、更新和保護系統的能力。