在嵌入式開發中,實時操作系統(RTOSes)在20世紀90年代普及,為各種嵌入式和實時產品提供了技術優勢。一些最重要的好處包括快速和小的代碼占用、確定性功能、廣泛的半導體支持、結構化設計方法以及通過封裝的軟件重用。
RTOS通常具有微內核設計,其中調度器起著核心作用。建立在一個簡單而有效的實時調度器上,可以實現系統設計的精確性。生產系統的決策因素超出了技術基礎。在選擇RTOS時,產品團隊必須考慮業務、軟件工程和長期可行性。
1.選擇RTOS時的業務考慮
在選擇RTOS時,許可模型、源代碼修改限制和行業認證是首要的業務考慮因素,這三個商業考慮因素相互影響。當產品要求具有可修改性時,許可和認證的選擇可能會受到直接影響。
許可模式包括開源、商業和混合版本。一些常用的開源許可證是MIT-0、Apache License 2.0和Eclipse Public License。由于許可模型和源代碼可用性,可修改的源代碼限制可能會影響創新過程。例如,創新可能受到限制,新的硬件功能或軟件創新需要內核級別的更改。
開源許可允許修改內核,開源項目強烈鼓勵修改貢獻,這樣技術社區就可以從進步中受益。商業許可模式往往限制了修改的可能性。例如,如果必須對內核源代碼進行調整,那么商業實體將接受并優先考慮,甚至可能拒絕修改的支持請求。如果商業RTOS公司破產,關閉業務,并且源代碼沒有托管,那么修改可能是不可能的。
然而,如果預計不會進行內核修改,則嵌入式開發人員可以在設計中使用諸如高完整性系統的SAFERTOS之類的選項。另一方面,一些開源RTOS現在提供長期支持(LTS),具有鎖定版本配置、維護承諾和使用全球平臺SESIP等程序的預認證。
2.選擇RTOS的軟件工程考慮
開發人員生產力是許多軟件工程團隊的主要關鍵性能指標,嵌入式系統軟件工程也不例外。交付結果、優化軟件性能和快速解決問題是一些最重要的指標。使用RTOS可以幫助構建良好的封裝、重用和維護實踐。廣泛的生態系統支持建立在這些基礎之上。開源或商業庫、編譯器和代碼優化工具以及調試和問題解決工具的可用性可以從根本上提高工程團隊的性能。
RTOS項目和供應商通常與提供軟件庫的開源和商業實體有關系。一個龐大的軟件庫目錄提供了對技術和技術的更快訪問。軟件庫的可用性和庫與內核良好配合的保證降低了軟件工程風險。
內核和庫通常作為RTOS LTS分發版提供。同樣,Espressif、Renesas、STMicroelectronics和Xilinx(現為AMD的一部分)等半導體制造商通過各自的軟件開發套件提供RTOS。軟件分發并不排除使用非分發軟件庫。相反,軟件發行版通過正式的集成測試提供了經過驗證的組合。
編譯器和源代碼優化支持可能是嵌入式系統性能和內存管理優化的關鍵因素。Arm Cortex-M等普及的嵌入式系統架構享有類似的普及編譯器和源代碼優化生態系統,并提供開源和商業工具選擇。開源工具鏈GNU編譯器集合(GCC)經受住了時間的考驗,在許多供應商的軟件開發工具包中經常被認為是事實上的標準。然而,IAR等商業工具供應商提供了額外的保證,并且通常經過安全認證,這降低了設備軟件安全認證的風險。一般來說,嵌入式開發人員將RTOS的選擇限制在支持最廣泛使用和檢查的編譯器及相關工具鏈的RTOS是一個關鍵的決策因素。
調試和問題解決工具的生態系統強度是RTOS具有生產級支持的主要指標。通常,半導體制造商提供調試器系統作為硬件開發板的組件。然而,在大多數情況下,這些軟件級調試器的速度、跟蹤和處理開銷可能會導致誤報和誤報。
IAR和SEGGER等商用調試器通過相關的工作站RTOS感知軟件工具提供出色的調試器支持,可加快RTOS問題的解決。商業工作站軟件,如與商業調試器配對的Percepio Tracealyzer,可以為最嚴峻的開發挑戰提供更深入的見解。
3.選擇RTOS的長期可行性考慮
最后但同樣重要的考慮因素是通過支撐結構的長期可行性、普遍使用和耐久性。這三個特性為物聯網建設者提供了他們選擇的RTOS在未來可用的保證,這在構建具有中長期使用壽命的產品時是關鍵。具有這些壽命的產品無疑需要維護,包括功能增強和不斷變化的安全挑戰。知道RTOS具有經過驗證的歷史可以降低產品交付和維護風險。
當工程問題解決具有挑戰性時,RTOS社區和商業支持提供了解決問題的途徑。社區支持和商業支持(包括提供長期支持)是相輔相成的。從一般目的和小眾角度來看,在嵌入式開發中,社區支持效果良好。
鑒于沒有與社區支持達成服務級別協議(SLA)以確保最終問題解決,響應時間可能會有很大差異,但通常會產生大量軼事反饋。商業支持通常有一個相關的SLA,但知識范圍可能受到更大的限制。當社區支持與商業支持相結合時,問題解決通常效果最佳。
RTOS的普遍使用是用戶基礎保持率的有力指標,這標志著RTOS的健康性和良好的設計。經過時間的考驗,合理的設計使不可避免但優雅的技術進步成為可能。盡管RTOS項目可能會提供用戶基數,但演示在生產系統中的普遍使用通常很有挑戰性,但通過發布和驗證的用例進行了演示。在整個RTOS歷史中對用例速度的全面檢查提供了RTOS在商業上被采用的情況。
將各種因素結合在一起
許可模型和源代碼修改約束會影響產品適應不斷變化的趨勢和技術的能力。開發人員工具生態系統支持直接影響代碼優化、調試和易用性,這些都會增加產品開發成本。長壽命和經驗證的使用通常強調社區和商業支持、工程知識的概率,以及RTOS如何適應不斷變化的技術環境。嵌入式開發人員下次在選擇RTOS時,應用這些關鍵考慮因素來提高選擇RTOS的信任度。