關(guān)注公眾號(hào),回復(fù)“入門資料”獲取單片機(jī)入門到高級(jí)開掛教程
?開發(fā)板帶你入門,我們帶你飛
文 | 無際(微信:2777492857)
全文約2344字,閱讀大約需要?10?分鐘
雷猴啊,我是無際。 ? ? ?
今天來聊聊嵌入式RTOS,正好最近頻繁用到了Freertos,對(duì)于自己寫過架構(gòu)的人來說,用起來毫無壓力。
? ? ? ? ?? ?
老規(guī)矩,咱們不整虛的,直接上干貨,爭(zhēng)取讓剛?cè)腴T的小白也能聽懂,讓老司機(jī)也能有所收獲。
? ? ? ? ?? ?
哪款RTOS在商業(yè)應(yīng)用最廣泛?就像問“到2025年,哪個(gè)牌子的方便面賣得最好?”一樣,充滿了變數(shù)。
? ? ? ? ?? ?
下面,咱們一起抽絲剝繭,看看能不能找到點(diǎn)兒線索。
? ? ? ? ?? ?
1.?啥是RTOS?以咱們家里洗衣機(jī)功能舉例!
? ? ? ? ?? ?
先給剛?cè)腴T的小伙伴們科普一下,RTOS,全稱Real-Time Operating System,實(shí)時(shí)操作系統(tǒng)。別看名字高大上,其實(shí)對(duì)于編程功底扎實(shí)的來說,并沒那么遙不可及。
? ? ? ? ?? ?
舉個(gè)例子,你家洗衣機(jī),是不是能定時(shí)洗衣服,還能根據(jù)不同的衣物選擇不同的洗滌模式?這就是RTOS的功勞。它能保證洗衣機(jī)在規(guī)定的時(shí)間內(nèi)完成洗滌任務(wù),不會(huì)因?yàn)槟愣喾帕藥准路汀傲T工”。
? ? ? ? ?? ?
簡(jiǎn)單來說,RTOS就是一個(gè)專門為“實(shí)時(shí)”任務(wù)設(shè)計(jì)的操作系統(tǒng)。這里的“實(shí)時(shí)”可不是指“馬上”,而是指“在規(guī)定的時(shí)間內(nèi)”。這就像你老板讓你明天早上9點(diǎn)前交報(bào)告,你熬夜通宵也得在9點(diǎn)前交,這就是“實(shí)時(shí)”的要求。? ??
? ? ? ? ?? ?
2.?RTOS江湖:群雄逐鹿,誰(shuí)主沉浮?
嵌入式RTOS的江湖,各路高手云集,相當(dāng)熱鬧,競(jìng)爭(zhēng)激烈。咱們先來看看目前市場(chǎng)上的幾位“大佬”:

? ? ? ? ?? ?
?FreeRTOS:?這位可是個(gè)“網(wǎng)紅”,背靠亞馬遜這棵大樹,開源、免費(fèi)、易上手,深受廣大開發(fā)者的喜愛。就像手機(jī)界的Android,靠著開放的生態(tài)系統(tǒng),占據(jù)了很大的市場(chǎng)份額。
? ? ? ? ?? ?
?ThreadX:?這位可是個(gè)“實(shí)力派”,由微軟(以前是Express Logic)出品,性能強(qiáng)勁,穩(wěn)定性高,很多高端設(shè)備都用它。不過,人家是收費(fèi)的,而且價(jià)格不菲。就像手機(jī)界的iOS,雖然封閉,但體驗(yàn)一流。
? ? ? ? ?? ?
?Zephyr:?這位是“新貴”,由Linux基金會(huì)牽頭,也是開源的,而且非常注重安全性。在物聯(lián)網(wǎng)時(shí)代,安全性越來越重要,Zephyr的前景被很多人看好。
? ? ? ? ?? ?
?RT-Thread:?這位是“國(guó)產(chǎn)之光”,來自咱們中國(guó)的團(tuán)隊(duì),開源、免費(fèi),而且社區(qū)非?;钴S。這幾年發(fā)展勢(shì)頭很猛,很多國(guó)內(nèi)的廠商都在用。
? ? ? ? ?? ?
?VxWorks & QNX:?這兩位是“老炮兒”,歷史悠久,技術(shù)成熟,在航空航天、工業(yè)控制等領(lǐng)域有很高的地位。不過,人家也是收費(fèi)的,而且價(jià)格…你懂的。
? ? ? ? ?? ?

3.?2025年預(yù)測(cè):誰(shuí)能笑到最后?
好了,介紹完幾位“大佬”,咱們來預(yù)測(cè)一下,到2025年,誰(shuí)能成為商業(yè)應(yīng)用最廣泛的RTOS?
? ? ? ? ?? ?
先說結(jié)論:我認(rèn)為,F(xiàn)reeRTOS和ThreadX將繼續(xù)領(lǐng)跑,Zephyr和RT-Thread將快速崛起,VxWorks和QNX將繼續(xù)在高端領(lǐng)域占據(jù)一席之地。
? ? ? ? ?? ?
為啥這么說呢?咱們來分析一下:
? ? ? ? ?? ?
3.1?開源是大勢(shì)所趨:?
如今的軟件行業(yè),開源已經(jīng)成為主流。開源的RTOS可以免費(fèi)使用,而且社區(qū)支持強(qiáng)大,開發(fā)者可以根據(jù)自己的需求進(jìn)行定制,這大大降低了開發(fā)成本和門檻。FreeRTOS和Zephyr就是典型的例子。
? ? ? ? ?? ?
3.2?物聯(lián)網(wǎng)(IoT)的推動(dòng):?
物聯(lián)網(wǎng)時(shí)代,越來越多的設(shè)備需要聯(lián)網(wǎng),這給RTOS帶來了巨大的市場(chǎng)。而物聯(lián)網(wǎng)設(shè)備對(duì)RTOS的要求,除了實(shí)時(shí)性,還有低功耗、小體積、安全性等。FreeRTOS的輕量級(jí)特性,Zephyr的安全特性,都非常適合物聯(lián)網(wǎng)應(yīng)用。
? ? ? ? ?? ?
3.3?AIoT的興起:
?AIoT,也就是人工智能物聯(lián)網(wǎng),是未來的發(fā)展方向。AIoT設(shè)備需要更強(qiáng)大的計(jì)算能力和更復(fù)雜的軟件系統(tǒng)。ThreadX憑借其高性能和穩(wěn)定性,將在AIoT領(lǐng)域發(fā)揮重要作用。
? ? ? ? ?? ?
3.4?國(guó)產(chǎn)化的需求:?
在中國(guó),越來越多的廠商開始使用國(guó)產(chǎn)的RTOS,比如RT-Thread。這不僅是出于成本的考慮,也是出于安全的考慮。隨著中國(guó)科技的不斷發(fā)展,國(guó)產(chǎn)RTOS的市場(chǎng)份額將不斷擴(kuò)大。
? ? ? ? ?? ?
3.5?安全性的挑戰(zhàn):?
隨著越來越多的設(shè)備接入網(wǎng)絡(luò),以及網(wǎng)絡(luò)攻擊日益頻繁,安全性將會(huì)成為RTOS的重要選擇因素。因此,Zephyr 這類重視安全的 RTOS 潛力巨大。? ??
? ? ? ? ?? ?
3.6?芯片廠商的選擇:?
芯片廠商預(yù)裝哪款RTOS,會(huì)極大影響RTOS的市場(chǎng)占有率。比如,如果ST、NXP等主流芯片廠商都預(yù)裝FreeRTOS,那么FreeRTOS的普及率就會(huì)大大提高。
? ? ? ? ?? ?
3.7?商業(yè)模式的轉(zhuǎn)變:?
即使是收費(fèi)的RTOS,也在不斷調(diào)整商業(yè)模式。比如,ThreadX現(xiàn)在提供了針對(duì)特定芯片的免費(fèi)版本,這也會(huì)影響它的市場(chǎng)份額。
? ? ? ? ?? ?
4.?給初學(xué)者的建議:別糾結(jié),先上手!
說了這么多,可能有些小伙伴還是會(huì)糾結(jié):我到底該學(xué)哪個(gè)RTOS呢?
? ? ? ? ?? ?
其實(shí),對(duì)于初學(xué)者來說,沒必要太糾結(jié)。我的建議是:先選一個(gè)上手再說!
? ? ? ? ?? ?
為啥呢?因?yàn)镽TOS的原理都是相通的,你學(xué)會(huì)了一個(gè),再去學(xué)其他的就會(huì)容易很多。就像你學(xué)會(huì)了開車,再去學(xué)開卡車,也不會(huì)太難,對(duì)吧?
? ? ? ? ?? ?
我自己最近在研究一個(gè)新的雙核MCU,里面就用了FreeRTOS,但是我并沒有針對(duì)性去學(xué)過,看到一些API和功能組件,基本都能理解,因?yàn)楹妥约阂郧皩戇^的架構(gòu),思維很相似。
? ? ? ? ?? ?
也有任務(wù)管理(創(chuàng)建、調(diào)度)、定時(shí)器、隊(duì)列算法之類的功能。? ??
? ? ? ? ?? ?
這個(gè)架構(gòu),我在2018年還錄過一套教程,錄著玩的,如果最近在學(xué)RTOS,可以先把我這個(gè)教程過一遍,打好功底,再進(jìn)階到RTOS,非常絲滑。

? ? ? ? ?? ?
這個(gè)架構(gòu)我們以前做產(chǎn)品也一直在用,大多數(shù)產(chǎn)品也夠用了,所以我做項(xiàng)目很少會(huì)用RTOS,我們無際單片機(jī)特訓(xùn)營(yíng)很多小哥也用在工作上,開發(fā)效率直接起飛。

? ? ? ? ?? ?
如果你是學(xué)生,或者剛開始工作,像上手RTOS,我建議你先學(xué)FreeRTOS。因?yàn)樗情_源免費(fèi)的,而且資料很多,社區(qū)也很活躍,遇到問題很容易找到答案。? ??
? ? ? ? ?? ?
如果你已經(jīng)有一定的工作經(jīng)驗(yàn),想往高端領(lǐng)域發(fā)展,我建議你學(xué)ThreadX或者VxWorks。這些RTOS雖然收費(fèi),但性能和穩(wěn)定性都更好,而且在一些高端領(lǐng)域有廣泛的應(yīng)用。
? ? ? ? ?? ?
如果你對(duì)物聯(lián)網(wǎng)感興趣,我建議你學(xué)Zephyr。它在安全性方面做得很好,而且是Linux基金會(huì)的項(xiàng)目,前景非常光明。
? ? ? ? ?? ?
如果你想支持國(guó)產(chǎn),我建議你學(xué)RT-Thread。它是咱們中國(guó)人自己的RTOS,而且發(fā)展勢(shì)頭很猛,未來可期。
? ? ? ? ?? ?
5.?寫在最后:擁抱變化,持續(xù)學(xué)習(xí)
嵌入式RTOS的世界,變化很快。
? ? ? ? ?? ?
今天流行的,明天可能就被淘汰了。所以,作為一名嵌入式工程師,最重要的是保持學(xué)習(xí)的熱情,不斷學(xué)習(xí)新的技術(shù)。
? ? ? ? ?? ?
記住,沒有最好的RTOS,只有最適合你的RTOS。選擇哪個(gè)RTOS,取決于你的項(xiàng)目需求、你的個(gè)人喜好、以及你的職業(yè)發(fā)展規(guī)劃。
? ? ? ? ?? ?
希望這篇文章能給你帶來一些啟發(fā)。如果你有任何問題,或者不同的看法,歡迎在評(píng)論區(qū)留言,咱們一起交流!
? ? ? ? ?? ?
end

下面是更多無際原創(chuàng)的個(gè)人成長(zhǎng)經(jīng)歷、行業(yè)經(jīng)驗(yàn)、技術(shù)干貨。
1.電子工程師是怎樣的成長(zhǎng)之路?10年5000字總結(jié)
2.如何快速看懂別人的代碼和思維
3.單片機(jī)開發(fā)項(xiàng)目全局變量太多怎么管理?
4.C語(yǔ)言開發(fā)單片機(jī)為什么大多數(shù)都采用全局變量的形式?
5.單片機(jī)怎么實(shí)現(xiàn)模塊化編程?實(shí)用程度讓人發(fā)指!
6.c語(yǔ)言回調(diào)函數(shù)的使用及實(shí)際作用詳解
7.手把手教你c語(yǔ)言隊(duì)列實(shí)現(xiàn)代碼,通俗易懂超詳細(xì)!
8.c語(yǔ)言指針用法詳解,通俗易懂超詳細(xì)!