作者:Jacob Beningo
在嵌入式系統(tǒng)行業(yè)的開(kāi)發(fā)人員和經(jīng)理中流傳著一個(gè)謠言,即所有RTOS都是平等的。開(kāi)發(fā)團(tuán)隊(duì)僅僅選擇RTOS的情況并不少見(jiàn),因?yàn)樗麄兊?a target="_blank">微控制器供應(yīng)商支持RTOS,而不是仔細(xì)檢查RTOS提供的功能和特性。檢查RTOS的特性、API、功能和陷阱經(jīng)常被忽視,甚至有時(shí)會(huì)損害應(yīng)用程序的需求。您可能從未意識(shí)到的撓癢癢問(wèn)題:“所有實(shí)時(shí)操作系統(tǒng)都是等效的嗎?
對(duì)等效的需求
基本上有三種方法可以了解如何構(gòu)建嵌入式軟件。首先,開(kāi)發(fā)人員在沒(méi)有RTOS或操作系統(tǒng)的情況下構(gòu)建系統(tǒng)裸機(jī)。這些通常適用于沒(méi)有很多功能或不關(guān)心重用、可移植性或可擴(kuò)展性的小型嵌入式系統(tǒng)。接下來(lái),一些團(tuán)隊(duì)有一個(gè)需要可伸縮性和可重用性的系統(tǒng),但可能沒(méi)有可移植性。這些團(tuán)隊(duì)將選擇一個(gè)實(shí)時(shí)操作系統(tǒng)來(lái)使用,并圍繞實(shí)時(shí)操作系統(tǒng)構(gòu)建整個(gè)應(yīng)用程序,使實(shí)時(shí)操作系統(tǒng)成為系統(tǒng)的基礎(chǔ)。
構(gòu)建系統(tǒng)的最后一種方法,也是驅(qū)動(dòng)對(duì)等效的需求或愿望的方法,是復(fù)雜的現(xiàn)代系統(tǒng),并提供廣泛的功能。在許多情況下,應(yīng)用程序需要擴(kuò)展、可重用和可移植。在這些情況下,團(tuán)隊(duì)不能只選擇一個(gè)RTOS并圍繞它構(gòu)建他們的應(yīng)用程序。相反,他們需要一個(gè)RTOS抽象層,將其應(yīng)用程序代碼與RTOS分離,以選擇提供應(yīng)用程序所需服務(wù)和功能的任何RTOS或操作系統(tǒng)。圖 1 顯示了具有 RTOS 抽象層的分層軟件架構(gòu)示例。
圖 1 – 現(xiàn)代系統(tǒng)將嵌入式應(yīng)用程序與 RTOS 分離,以提高重用、可移植性、可擴(kuò)展性和測(cè)試。(圖片來(lái)源:嵌入式軟件設(shè)計(jì)[1])
RTOS抽象層消除了對(duì)任何RTOS或操作系統(tǒng)的依賴,從而實(shí)現(xiàn)了更好的單元測(cè)試和超目標(biāo)運(yùn)行應(yīng)用程序仿真的能力!當(dāng)然,出現(xiàn)的問(wèn)題是,當(dāng)團(tuán)隊(duì)創(chuàng)建RTOS抽象層時(shí),他們拼命地試圖建議所有RTOS都提供等效的功能,當(dāng)通用化時(shí),就變成了“所有RTOS都是等效的”。
實(shí)時(shí)操作系統(tǒng)等效現(xiàn)實(shí)
不幸的是,或者幸運(yùn)的是,對(duì)于嵌入式軟件架構(gòu)師和團(tuán)隊(duì)來(lái)說(shuō),并非所有RTOS都是平等的。每個(gè)RTOS都可以提供一組標(biāo)準(zhǔn)功能,但即使這些功能也已實(shí)現(xiàn)并提供廣泛的差異。例如,從當(dāng)前可用的一百多個(gè) RTOS 中選擇三個(gè)并檢查其 API 集。您會(huì)發(fā)現(xiàn)相似但差異很大的 API。
如果您花一些時(shí)間運(yùn)行性能測(cè)量,您會(huì)發(fā)現(xiàn)每個(gè)RTOS都提供不同級(jí)別的實(shí)時(shí)性能和確定性。編譯每個(gè),您會(huì)發(fā)現(xiàn)不同的內(nèi)存要求。如果您深入研究實(shí)時(shí)操作系統(tǒng),您甚至可能會(huì)發(fā)現(xiàn)可能破壞實(shí)時(shí)操作系統(tǒng)的錯(cuò)誤或條件!有些在管理安全性方面寫(xiě)得很好,而另一些則完全忽略了安全性是一個(gè)考慮因素。
當(dāng)我第一次接觸實(shí)時(shí)操作系統(tǒng)時(shí),我討厭它們。我的雇主當(dāng)時(shí)提供給我的RTOS有缺陷,不一致,我花在與RTOS斗爭(zhēng)上的時(shí)間比編寫(xiě)生產(chǎn)代碼的時(shí)間還要多。事實(shí)證明,“RTOS”并不是我們所認(rèn)為的實(shí)時(shí)操作系統(tǒng)!相反,它是一個(gè)編寫(xiě)不佳的協(xié)作調(diào)度程序,包括一些RTOS功能,如信號(hào)量和隊(duì)列。
結(jié)論
歸根結(jié)底,團(tuán)隊(duì)可能希望所有實(shí)時(shí)操作系統(tǒng)都是等效的,但事實(shí)仍然是每個(gè)實(shí)時(shí)操作系統(tǒng)都是獨(dú)一無(wú)二的。每個(gè)都提供具有不同內(nèi)存占用、響應(yīng)時(shí)間、API、安全性和安全功能的操作系統(tǒng)。RTOS 抽象層可以幫助嵌入式應(yīng)用與標(biāo)準(zhǔn)功能分離。不過(guò),要充分利用 RTOS,可能需要直接調(diào)用 RTOS 或創(chuàng)建抽象擴(kuò)展來(lái)管理應(yīng)用程序依賴關(guān)系。因此,下次當(dāng)您想只使用微控制器供應(yīng)商提供的RTOS運(yùn)行時(shí),請(qǐng)花一些時(shí)間來(lái)評(píng)估和驗(yàn)證RTOS是否滿足您的需求,因?yàn)槊總€(gè)RTOS都是不同的,盡管它們看起來(lái)可能是等效的。
編輯:黃飛
-
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3610瀏覽量
129603 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6859瀏覽量
123502 -
API
+關(guān)注
關(guān)注
2文章
1507瀏覽量
62217 -
RTOS
+關(guān)注
關(guān)注
22文章
817瀏覽量
119766
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論