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