溫馨提示
本文大約5000字,讀完大約需要10分鐘,速讀大約需要5分鐘。
如果你喜歡本文,請分享到朋友圈,想要獲得更多信息,請關(guān)注我。
【經(jīng)驗總結(jié)】一位近10年嵌入式開發(fā)老手,到底是如何快速學(xué)習(xí)和使用RT-Thread的?
“RT-Thread絕對可以稱得上國內(nèi)優(yōu)秀且排名靠前的操作系統(tǒng),在嵌入式IoT領(lǐng)域一直享有盛名。近些年,物聯(lián)網(wǎng)產(chǎn)業(yè)的大熱,更是直接將RT-Thread這款優(yōu)秀的操作系統(tǒng)推入榮譽(yù)殿堂,越來越多的開發(fā)者涌入基于RT-Thread的開發(fā)大軍,而如何快速學(xué)習(xí)和使用RT-Thread將會是一個剛需難題。
本文以一個近10年的嵌入式開發(fā)老兵的視角,跟大家一起聊一聊這個話題,希望對大家有所幫助和啟發(fā)。
”
1 寫在前面
RT-Thread 是一個集實時操作系統(tǒng)(RTOS)內(nèi)核、中間件組件和開發(fā)者社區(qū)于一體的技術(shù)平臺,由熊譜翔先生帶領(lǐng)并集合開源社區(qū)力量開發(fā)而成, 具備一個 IoT OS 平臺所需的所有關(guān)鍵組件,擁有一個國內(nèi)最大的嵌入式開源社區(qū),同時被廣泛應(yīng)用于能源、車載、醫(yī)療、消費(fèi)電子等多個行業(yè),累積裝機(jī)量超過 20億 臺,成為國人自主開發(fā)、國內(nèi)最成熟穩(wěn)定和裝機(jī)量最大的開源 RTOS。
它的優(yōu)秀,不單單體現(xiàn)在文字上,還體現(xiàn)在數(shù)字上,以下展示數(shù)據(jù)來源于,RT-Thread官網(wǎng):
如此優(yōu)秀的操作系統(tǒng)軟件,你確認(rèn)不來學(xué)習(xí)一下嗎?
2 聊聊情懷
熟悉我的朋友,大概都知道,我跟RT-Thread還是蠻有緣的,曾經(jīng)我寫過一篇短文,介紹我與RT-Thread的故事,
“【我與RT-Thread的故事】我想和你深發(fā)展
”
該文很榮幸地登上了 2021年開發(fā)者大會??墓适聲谀浚氡赜行┬』锇樵跁弦呀?jīng)看過這篇文章了。
在2022年里,我開始深耕 RT-Thread技術(shù)社區(qū),我的個人賬戶是 recan,期間,我非常積極回答線上小伙伴提的各種問題,我自己也基本保持每個月輸出至少2篇優(yōu)秀技術(shù)原創(chuàng)文章。同年6月,我還擔(dān)任了RT-Thread全球開發(fā)者大會的線上直播講師,包括國內(nèi)專場和海外專場,收獲了掌聲的同時,我也收獲了各種寶貴經(jīng)歷,最幸運(yùn)的是還收獲了RT-Thread創(chuàng)始人熊大親筆簽名的講師證書。
憑借2022年的優(yōu)秀表現(xiàn),我被授予了2022年度RT-Thread技術(shù)社區(qū)優(yōu)秀布道者的榮譽(yù)稱號,這真的是一個很激勵我前行的榮譽(yù)。我會以此為新的起點,在接下來的一年里,我會更加以無上的使命感去推廣RT-Thread,讓更加優(yōu)秀的開發(fā)者加入到RT-Thread的開發(fā)陣營。
這是我的責(zé)任,也是我的義務(wù),更是我的榮幸。作為布道者,我很樂意大家與我交流RT-Thread技術(shù),歡迎大家戳 我主頁,我們一起聊聊!
3 老手支招
扯了這么多有的沒的,是時候放點大招了。
我從13年畢業(yè)出來,從事嵌入式行業(yè)接近10年了,從最終的嵌入式Linux,然后FreeRTOS,再到現(xiàn)在的RT-Thread,可以說每一項操作系統(tǒng)技術(shù),我都有比較深的涉獵,也成功在工作項目中得到驗證,有幸做了一些成績,也很高興成為了公司里的TOP5%。
這兩年,我也頻繁地在技術(shù)自媒體上發(fā)聲,致力于打造 架構(gòu)師李肯 這個技術(shù)IP,期間遇到了很多困難和阻礙,也一度想要放棄,但與此同時又收到了很多肯定和鼓勵。遵循內(nèi)心的渴望,我還是希望能把這個IP繼續(xù)做下去,如果能幫助到更多的人,那就再好不過了。
就在我致力于打造 架構(gòu)師李肯](http://yyds.recan-li.cn) 這個技術(shù)IP的時候,我遇到了非常多嵌入式入行的朋友,其中不乏很多想加入RT-Thread開發(fā)者陣營的朋友,他們經(jīng)常問到問到一個問題就是:你是如何學(xué)習(xí)和使用RT-Thread的?
說實話,每當(dāng)我回答起這個問題,我總是左想想右想想,然后給出幾個不成文的建議。所以,我想趁著這次機(jī)會,好好梳理一下,我是如何學(xué)習(xí)和使用RT-Thread的。
下面,我將以一個嵌入式經(jīng)驗老手的角度,從幾個問題角度,給出一些切實可行的建議和方法,但是需要補(bǔ)充說明的就是,本文提交的方法并不一定適合所有開發(fā)者,請大家酌情甄別。擇其善者而從之,其不善者而改之!
3.1 關(guān)于學(xué)習(xí)基礎(chǔ)的問題
這個問題羅列在第一位,是因為我遇到太多這樣的朋友了。
一上來就問,我是零基礎(chǔ)小白,能轉(zhuǎn)行學(xué)嵌入式嗎?我這樣啥都不懂的,能學(xué)好RT-Thread嗎?
在這里,我再次表達(dá)一下我的觀點,學(xué)習(xí)基礎(chǔ)不是重點,也不是難點;稍微有些電子電路基礎(chǔ),加一些C語言編程經(jīng)驗的,基本就可以應(yīng)付嵌入式的入門了。
另一方面,很重要的一點,那就是興趣。這個東西有些虛,但是直接決定了當(dāng)你遇到困難的時候,你是否能堅持得下去。畢竟,嵌入式這個玩意,說好玩也挺好玩的,說枯燥也是挺枯燥的,整天對著一堆設(shè)備,bug一籌莫展的時候,頭發(fā)就開始往下掉了。
當(dāng)然,回到RT-Thread學(xué)習(xí)這邊,如果你有主修過操作系統(tǒng)原理、計算機(jī)基礎(chǔ)等相關(guān)專業(yè)課程,那么理解起RT-Thread會更容易寫。
3.2 關(guān)于學(xué)習(xí)方向的問題
大體上,嵌入式軟件其實分為兩大方向:應(yīng)用開發(fā)和底層驅(qū)動開發(fā)。
應(yīng)用開發(fā):偏向于業(yè)務(wù)邏輯開發(fā),需要掌握的是系統(tǒng)API的使用細(xì)節(jié),而對實現(xiàn)細(xì)節(jié)可能不那么講究,但是如果能更懂底層細(xì)節(jié),往往能夠?qū)懗龈觾?yōu)秀的應(yīng)用代碼。
底層驅(qū)動開發(fā):這個工作是要跟硬件設(shè)備以及操作系統(tǒng)強(qiáng)交互的,需要掌握一定的硬件知識,同時對系統(tǒng)的驅(qū)動框架也要了然于胸,否則做嵌入式驅(qū)動開發(fā)會非常吃力。當(dāng)然,與工作難度相對應(yīng)的是,工資往往也會更高一些。
我把這個問題單獨拎出來說,主要目的就是讓大家明白,應(yīng)用開發(fā)和驅(qū)動開發(fā)是兩個截然不同的開發(fā)方向,對開發(fā)者的能力要求也不一樣,提醒大家入門的時候一定要做好選擇。
對于基于RT-Thread的開發(fā)也是應(yīng)用,應(yīng)用開發(fā)和驅(qū)動開發(fā)的能力矩陣要求是不一樣的;一般做底層驅(qū)動開發(fā)的轉(zhuǎn)應(yīng)用開發(fā)會相對容易些,而反向則比較難。所以大家一開始的選擇很重要。
3.3 關(guān)于官方文檔的問題
總的來說,RT-Thread的官方文檔已經(jīng)是非常完備的,它有一個專門的網(wǎng)站,大家可以戳 這里。
基本上,在這里你都可以找到相關(guān)的參考資料,包括內(nèi)核是怎么設(shè)計的、應(yīng)用接口怎么調(diào)用、驅(qū)動框架是怎么樣的、有哪些開發(fā)工具可以參考;基本上你上去找一找這些問題都可以找到答案。
另外一點比較重要的是,文檔是全中文模式,這對于國內(nèi)的開發(fā)者來說,是一個比較好的體驗,這也很大程度地降低了開發(fā)者的理解難度,提升開發(fā)者學(xué)習(xí)和了解RT-Thread的積極性。
3.4 關(guān)于解答問題的問題
關(guān)于提交你開發(fā)過程中遇到的問題,我首推 RT-Thread的官方技術(shù)社區(qū),在這里有很多優(yōu)秀的開發(fā)者聚集在一塊,其中不乏很多 業(yè)內(nèi)的技術(shù)專家,基本上你在這里發(fā)表你的問題,應(yīng)該很快就能得到小伙伴的響應(yīng)。
整個技術(shù)社區(qū)還是比較活躍的,我個人也活躍在社區(qū)中,也經(jīng)常給社區(qū)的問題答疑,也歡迎大家在社區(qū)找我提問。
不過,需要說明的是,有些時候并不是說問題一定能夠得到解決,但是可能別人的一個點評討論,一下子就把你解決問題的思路打開了,問題也就迎刃而解了。
在這里,我想介紹一下,如何高效地提問題,這是很多初階開發(fā)者都需要學(xué)習(xí)的。
3.5 關(guān)于開發(fā)板的問題
這個問題也是很多小伙伴問到的一個問題,非常關(guān)心開發(fā)板的購買。
學(xué)習(xí)RT-Thread有一個比較好的地方就是,它可以不依賴于開發(fā)板環(huán)境就能上手。
在官方提供的代碼倉庫中,我們可以在BSP目錄下找到類似QEMU-開頭的BSP,這些BSP就是基于QEMU技術(shù)模擬出來的一個開發(fā)環(huán)境,有了它,你就可以直接在PC電腦上調(diào)試RT-Thread了,這不但大大提升了RT-Thread編程驗證思路的速度,同時也降低了學(xué)習(xí)RT-Thread的硬件門檻。
感興趣的小伙伴,可以戳這里了解一下 這種開發(fā)模式。
3.6 關(guān)于良師益友的問題
俗話說:“一個人走得更快,而一群人將走得更遠(yuǎn)?!?/p>
在學(xué)習(xí)RT-Thread的道路上,我希望大家能找到志同道合的伙伴,一起升級打怪,一起進(jìn)階成長;遇到問題的時候,大家一起討論,一起研究問題的根源;可能一個不經(jīng)意的想法,就幫你解決了一個折騰幾天的難題。這就是良師益友的重要性。
那么,如何去尋找自己的良師益友呢?個人覺得可以從技術(shù)論壇、技術(shù)博客、技術(shù)公號中去尋找答案,盡量多關(guān)注你同領(lǐng)域的優(yōu)秀博主,他們會有很多的同行交流群,試著去融入他們,制造幾乎與他們產(chǎn)生交集,慢慢混熟了,技術(shù)上的良師益友也就順理成章了。
如果你還沒有找到自己的良師益友,歡迎找我來撩,或許我能成為你的良師益友也說不定。
3.7 關(guān)于項目實戰(zhàn)的問題
紙上得來終覺淺,絕知此事要躬行!
在學(xué)習(xí)RT-Thread的道路上,更應(yīng)該如此??匆话俦?a href="http://m.1cnz.cn/v/" target="_blank">教程,讀一百遍demo代碼,都不及自己動手敲一遍代碼,然后在實際的開發(fā)環(huán)境(開發(fā)板或QEMU模擬環(huán)境)中跑一跑,調(diào)一調(diào);這樣既能鍛煉動手能力,又能加深學(xué)習(xí)內(nèi)容的掌握。
很多人開始疑問,我的正常工作內(nèi)容還未涉及RT-Thread相關(guān)的開發(fā),我該如何找到類似的實戰(zhàn)項目呢?
這個,你就要留意各路業(yè)余大賽了,比如電子發(fā)燒友論壇,比如官方的RT-Thread技術(shù)論壇,他們都會不定期地舉辦一些設(shè)計大賽,大賽中會比較明確地要求使用RT-Thread操作系統(tǒng)。
那么對于這種大賽,你就可以踴躍地報名參加,不但可以收獲開發(fā)板,還有實踐一個實戰(zhàn)項目,更有可能還能收獲一堆志同道合的技術(shù)朋友,何樂而不為呢?
3.8 關(guān)于學(xué)習(xí)進(jìn)階的問題
學(xué)習(xí)RT-Thread的高階狀態(tài),我認(rèn)為是參與開源社區(qū)的建設(shè),一個小小問題的回答,甚至于一個小小的問題點贊,都能夠很好地把這種技術(shù)開源的精神傳承下去。
如果你是更積極的開發(fā)小伙伴,哪怕技術(shù)不是那么精湛,你也可以嘗試提交一次PR,向官方倉庫提交你的優(yōu)秀代碼,讓更多的人知道你這么優(yōu)秀。
優(yōu)秀的開發(fā)者總是有一樣的開發(fā)習(xí)慣,跟優(yōu)秀的社區(qū)建設(shè)者一起【工作】,這本身就是一件很令人成長的事情,可以嘗試加入我們吧。
總結(jié)一下:
上面提及的各點,其實遠(yuǎn)不是具體的可操作細(xì)節(jié),我可能稱之為方法論的東西,掌握了方法論的東西,無論你學(xué)習(xí)哪個開源項目都是一樣的理兒。所以呢,關(guān)于具體的技術(shù)細(xì)節(jié)學(xué)習(xí),歡迎大家找我來聊。
4 友情推薦
作為RT-Thread的忠實粉絲,我時刻關(guān)注著RT-Thread的消息,根據(jù)可靠消息,一本由RT-Thread官方開發(fā)人員撰寫的、堪稱最權(quán)威的RT-Thread的教科書,《RT-Thread設(shè)備驅(qū)動開發(fā)指南》橫空出世。
它的出現(xiàn),直接轟炸了我的各種嵌入式技術(shù)群,非常多的小伙伴都想第一時間一睹它的風(fēng)采。
在這里,我以RT-Thread開發(fā)者的身份正式向大家推薦這一本巨作。
近年來國內(nèi)芯片產(chǎn)業(yè)和物聯(lián)網(wǎng)產(chǎn)業(yè)的快速崛起,行業(yè)發(fā)展迫切需要更多人才,尤其需要掌握嵌入式操作系統(tǒng)等底層技術(shù)的人才。隨著RT-Thread被更廣泛地應(yīng)用于行業(yè)中,開發(fā)者對嵌入式驅(qū)動開發(fā)的需求越來越強(qiáng)烈,他們迫切地希望有一本可以指導(dǎo)他們在RT-Thread上開發(fā)驅(qū)動的指南。
為了解決開發(fā)者的燃眉之急,《RT-Thread設(shè)備驅(qū)動開發(fā)指南》來了!希望幫助RT-Thread的開發(fā)者掌握驅(qū)動開發(fā)的知識點,讓開發(fā)者能夠更簡單、更方便地開發(fā)驅(qū)動,加速產(chǎn)品上市,讓RT-Thread賦能更多行業(yè),真正做到“積識成睿,慧澤百川”。
- 讀者對象
“”
- 熟悉RT-Thread并想在其上開發(fā)設(shè)備驅(qū)動的人員
- 嵌入式軟硬件工程師、電子工程師、物聯(lián)網(wǎng)開發(fā)工程師
- 高等院校的計算機(jī)、電子、自動化、通信相關(guān)專業(yè)師生
- 其他對嵌入式操作系統(tǒng)感興趣的人員
- 如何閱讀本書
“本書要求讀者具備RT-Thread基礎(chǔ)知識,因此建議大家先學(xué)習(xí)《嵌入式實時操作系統(tǒng):RT-Thread設(shè)計與實現(xiàn)》,再學(xué)習(xí)本書內(nèi)容。使用過RT-Thread上的設(shè)備框架的讀者的閱讀體驗會更佳。本書的每章都有配套示例代碼,這些代碼大多是僅供理解上下文參考的,不能真正運(yùn)行,建議讀者對照具體bsp目錄下已有的驅(qū)動,并結(jié)合本書進(jìn)行學(xué)習(xí)。
本書內(nèi)容分為三篇:基礎(chǔ)篇、進(jìn)階篇與高級篇。
基礎(chǔ)篇(第1~11章)第1章概述RT-Thread與設(shè)備框架;第2~11章介紹一些常用的設(shè)備驅(qū)動框架,包括PIN、I2C、SPI等,適合剛接觸驅(qū)動開發(fā)的讀者閱讀。
進(jìn)階篇(第12~20章)介紹稍復(fù)雜一些的外設(shè)驅(qū)動,如SDIO、觸摸、顯示、傳感器、加解密設(shè)備等。
高級篇(第21~27章)介紹一些復(fù)雜的驅(qū)動,如網(wǎng)絡(luò)、音頻、USBD(H)、CAN等,開發(fā)此類設(shè)備驅(qū)動要求開發(fā)者比較熟悉相應(yīng)的外設(shè)協(xié)議。
本書更像是一本工具書,讀者不需要一章一章地從頭讀到尾,讀完前面幾章內(nèi)容,熟悉了驅(qū)動開發(fā)的基本流程之后,就可以根據(jù)自己的需要,選擇對應(yīng)的章節(jié)學(xué)習(xí)。
”
- 配套軟件
“本書是基于RT-Thread 4.1.0 編寫的,讀者在跟隨本書學(xué)習(xí)驅(qū)動開發(fā)的時候,也需要選擇對應(yīng)的源碼版本。
”
-
RT-Thread
+關(guān)注
關(guān)注
31文章
1304瀏覽量
40296
原文標(biāo)題:10年的嵌入式開發(fā)老手,到底是如何快速學(xué)習(xí)和使用RT-Thread的?
文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論