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