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