博客專欄

EEPW首頁(yè) > 博客 > 現(xiàn)在是使用標(biāo)準(zhǔn)RTOS API的時(shí)間了嗎?

現(xiàn)在是使用標(biāo)準(zhǔn)RTOS API的時(shí)間了嗎?

發(fā)布人:13261589816 時(shí)間:2023-06-26 來(lái)源:工程師 發(fā)布文章

與嵌入式MCU一起使用的RTOS的名單很長(zhǎng),其中大多數(shù)都有自己的專有功能以及獨(dú)特的API。有些API很好,有些則不太好。實(shí)際上,好的和不太好的RTOS API之間的差異相當(dāng)小——大多數(shù)RTOS API都有其專用的功能。回顧過(guò)去30多年,我開始意識(shí)到私有的RTOS API已經(jīng)并將繼續(xù)對(duì)嵌入式開發(fā)和我們的整個(gè)行業(yè)產(chǎn)生負(fù)面的影響。

 

首先,私有的RTOS API代表了應(yīng)用程序固件的鎖定,使用私有的RTOS API編寫的代碼必須修改才能移植到不同的RTOS。更糟糕的是,移植到另一個(gè)RTOS所需的修改可能令人生畏。一些RTOS供應(yīng)商添加了一個(gè)適應(yīng)層,試圖支持其他API。然而,這個(gè)解決方案并不理想,因?yàn)樗拖裨趫A孔中安裝一個(gè)方形釘子。更不用說(shuō)額外適配層大大增加了RTOS的開銷和復(fù)雜性,它還可能導(dǎo)致錯(cuò)誤。

 

無(wú)論如何,無(wú)法輕松遷移應(yīng)用程序代碼可能會(huì)嚴(yán)重限制產(chǎn)品的演變。例如,如果一個(gè)應(yīng)用程序依賴于RTOS XYZ,并且它不支持最新和最高性能的處理器,應(yīng)用程序要么需要修改其代碼庫(kù)以移植到另一個(gè)RTOS,要么等到RTOS XYZ添加支持,要么就放棄。同樣,將基于RTOS XYZ的應(yīng)用程序遷移到嵌入式Linux(另一個(gè)非常常見的情況)是困難的,因?yàn)榍度胧絃inux中的多線程是基于POSIX pthreads API的。標(biāo)準(zhǔn)的RTOS API將有助于消除鎖定,從而使嵌入式應(yīng)用程序更加便攜,并增強(qiáng)其未來(lái)的演變。

 

私有的RTOS API也需要經(jīng)過(guò)培訓(xùn)才能上手,大多數(shù)首次使用RTOS的開發(fā)人員必須花大量時(shí)間學(xué)習(xí)私有的RTOS API。即使是使用FreeRTOS或微軟的Azure RTOS (ThreadX)的嵌入式開發(fā)人員——兩者都是流行的嵌入式RTOS,每個(gè)都有自己的專有API,它們?cè)陂_發(fā)人員總數(shù)中所占比例相當(dāng)小。這里的重點(diǎn)是,私有的RTOS API需要學(xué)習(xí),這花費(fèi)了公司的時(shí)間和金錢。行業(yè)標(biāo)準(zhǔn)的RTOS API將減少培訓(xùn),從而節(jié)省資金,并提高設(shè)備制造商產(chǎn)品上市時(shí)間。

 

另一個(gè)問(wèn)題是,一些設(shè)備制造商的產(chǎn)品系列橫跨MCU和MPU處理器,通常具有不同的功能和價(jià)格特點(diǎn),他們基于MPU的產(chǎn)品經(jīng)常使用某種類型的嵌入式Linux。對(duì)于這些公司來(lái)說(shuō),由于私有的RTOS API,必須維護(hù)單獨(dú)的開發(fā)團(tuán)隊(duì)(和代碼庫(kù))既困難又昂貴。使用標(biāo)準(zhǔn)的RTOS API,應(yīng)用程序代碼可以在基于MPU和MCU的項(xiàng)目之間實(shí)時(shí)共享,從而改善從編碼、測(cè)試到產(chǎn)品發(fā)布的整個(gè)開發(fā)過(guò)程。


標(biāo)準(zhǔn)RTOS API應(yīng)該是什么?

在我們更進(jìn)一步討論之前,我們應(yīng)該感謝ARM。他們多年前在嵌入式行業(yè)發(fā)現(xiàn)了這個(gè)問(wèn)題,甚至試圖用CMSIS-RTOS API解決這個(gè)問(wèn)題。不幸的是,CMSIS RTOS API最終是另一個(gè)專有的RTOS API。

 

回到標(biāo)準(zhǔn)的RTOS API應(yīng)該是什么這個(gè)問(wèn)題,有趣的是,答案多年來(lái)一直擺在我們面前:標(biāo)準(zhǔn)的RTOS API應(yīng)該是行業(yè)標(biāo)準(zhǔn)POSIX pthread API,它已經(jīng)是每個(gè)嵌入式Linux發(fā)行版以及每個(gè)大學(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)上測(cè)試了30多年。將硬實(shí)時(shí)功能與這個(gè)工業(yè)標(biāo)準(zhǔn)API融合,承諾嵌入式開發(fā)人員一個(gè)兩全其美的方案。我們的行業(yè)只需要各種RTOS提供商原生態(tài)的采用它。將嵌入式行業(yè)統(tǒng)一在POSIX pthread API標(biāo)準(zhǔn)上,將消除技術(shù)的鎖定,加速嵌入式產(chǎn)品演變。減少培訓(xùn),并立即實(shí)現(xiàn)MCU和MPU級(jí)設(shè)備之間的代碼共享和遷移——所有這些都將推動(dòng)嵌入式行業(yè)向前邁出的重要一步。

作者:Bill Lamie

在商業(yè)RTOS領(lǐng)域工作了30多年——他先是創(chuàng)建了Accelerated Technology(被西門子收購(gòu)),然后是Express Logic(被微軟收購(gòu))。Bill是Nucleus和ThreadX的唯一作者。Bill的最新努力是PX5,在那里你可以找到他的最新產(chǎn)品——PX5 RTOS!

麥克泰技術(shù)是PX5 RTOS 的代理商,學(xué)習(xí)和評(píng)估PX5 RTOS可了解:

http://www.bmrtech.com/Product/product_list/293.html



*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: RTOS

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉