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