現(xiàn)在是使用標(biāo)準(zhǔn)RTOS API的時間了嗎?
與嵌入式MCU一起使用的RTOS的名單很長,其中大多數(shù)都有自己的專有功能以及獨(dú)特的API。有些API很好,有些則不太好。實(shí)際上,好的和不太好的RTOS API之間的差異相當(dāng)小——大多數(shù)RTOS API都有其專用的功能?;仡欉^去30多年,我開始意識到私有的RTOS API已經(jīng)并將繼續(xù)對嵌入式開發(fā)和我們的整個行業(yè)產(chǎn)生負(fù)面的影響。
首先,私有的RTOS API代表了應(yīng)用程序固件的鎖定,使用私有的RTOS API編寫的代碼必須修改才能移植到不同的RTOS。更糟糕的是,移植到另一個RTOS所需的修改可能令人生畏。一些RTOS供應(yīng)商添加了一個適應(yīng)層,試圖支持其他API。然而,這個解決方案并不理想,因?yàn)樗拖裨趫A孔中安裝一個方形釘子。更不用說額外適配層大大增加了RTOS的開銷和復(fù)雜性,它還可能導(dǎo)致錯誤。
無論如何,無法輕松遷移應(yīng)用程序代碼可能會嚴(yán)重限制產(chǎn)品的演變。例如,如果一個應(yīng)用程序依賴于RTOS XYZ,并且它不支持最新和最高性能的處理器,應(yīng)用程序要么需要修改其代碼庫以移植到另一個RTOS,要么等到RTOS XYZ添加支持,要么就放棄。同樣,將基于RTOS XYZ的應(yīng)用程序遷移到嵌入式Linux(另一個非常常見的情況)是困難的,因?yàn)榍度胧絃inux中的多線程是基于POSIX pthreads API的。標(biāo)準(zhǔn)的RTOS API將有助于消除鎖定,從而使嵌入式應(yīng)用程序更加便攜,并增強(qiáng)其未來的演變。
私有的RTOS API也需要經(jīng)過培訓(xùn)才能上手,大多數(shù)首次使用RTOS的開發(fā)人員必須花大量時間學(xué)習(xí)私有的RTOS API。即使是使用FreeRTOS或微軟的Azure RTOS (ThreadX)的嵌入式開發(fā)人員——兩者都是流行的嵌入式RTOS,每個都有自己的專有API,它們在開發(fā)人員總數(shù)中所占比例相當(dāng)小。這里的重點(diǎn)是,私有的RTOS API需要學(xué)習(xí),這花費(fèi)了公司的時間和金錢。行業(yè)標(biāo)準(zhǔn)的RTOS API將減少培訓(xùn),從而節(jié)省資金,并提高設(shè)備制造商產(chǎn)品上市時間。
另一個問題是,一些設(shè)備制造商的產(chǎn)品系列橫跨MCU和MPU處理器,通常具有不同的功能和價格特點(diǎn),他們基于MPU的產(chǎn)品經(jīng)常使用某種類型的嵌入式Linux。對于這些公司來說,由于私有的RTOS API,必須維護(hù)單獨(dú)的開發(fā)團(tuán)隊(duì)(和代碼庫)既困難又昂貴。使用標(biāo)準(zhǔn)的RTOS API,應(yīng)用程序代碼可以在基于MPU和MCU的項(xiàng)目之間實(shí)時共享,從而改善從編碼、測試到產(chǎn)品發(fā)布的整個開發(fā)過程。
標(biāo)準(zhǔn)RTOS API應(yīng)該是什么?
在我們更進(jìn)一步討論之前,我們應(yīng)該感謝ARM。他們多年前在嵌入式行業(yè)發(fā)現(xiàn)了這個問題,甚至試圖用CMSIS-RTOS API解決這個問題。不幸的是,CMSIS RTOS API最終是另一個專有的RTOS API。
回到標(biāo)準(zhǔn)的RTOS API應(yīng)該是什么這個問題,有趣的是,答案多年來一直擺在我們面前:標(biāo)準(zhǔn)的RTOS API應(yīng)該是行業(yè)標(biāo)準(zhǔn)POSIX pthread API,它已經(jīng)是每個嵌入式Linux發(fā)行版以及每個大學(xué)計(jì)算機(jī)科學(xué)課程的一部分。由于嵌入式Linux占嵌入式設(shè)計(jì)的70%,因此很容易認(rèn)為POSIX pthread API已經(jīng)是嵌入式系統(tǒng)中的RTOS API標(biāo)準(zhǔn),也是大多數(shù)開發(fā)人員已經(jīng)熟悉的標(biāo)準(zhǔn)。
此外,POSIX pthread API已經(jīng)在UNIX/Linux系統(tǒng)上測試了30多年。將硬實(shí)時功能與這個工業(yè)標(biāo)準(zhǔn)API融合,承諾嵌入式開發(fā)人員一個兩全其美的方案。我們的行業(yè)只需要各種RTOS提供商原生態(tài)的采用它。將嵌入式行業(yè)統(tǒng)一在POSIX pthread API標(biāo)準(zhǔn)上,將消除技術(shù)的鎖定,加速嵌入式產(chǎn)品演變。減少培訓(xùn),并立即實(shí)現(xiàn)MCU和MPU級設(shè)備之間的代碼共享和遷移——所有這些都將推動嵌入式行業(yè)向前邁出的重要一步。
作者:Bill Lamie
在商業(yè)RTOS領(lǐng)域工作了30多年——他先是創(chuàng)建了Accelerated Technology(被西門子收購),然后是Express Logic(被微軟收購)。Bill是Nucleus和ThreadX的唯一作者。Bill的最新努力是PX5,在那里你可以找到他的最新產(chǎn)品——PX5 RTOS!
麥克泰技術(shù)是PX5 RTOS 的代理商,學(xué)習(xí)和評估PX5 RTOS可了解:
http://www.bmrtech.com/Product/product_list/293.html
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。