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