【經驗總結】一位近10年的嵌入式開發老手,到底是如何快速學習和使用RT-Thread的?
RT-Thread絕對可以稱得上國內優秀且排名靠前的操作系統,在嵌入式IoT領域一直享有盛名。近些年,物聯網產業的大熱,更是直接將RT-Thread這款優秀的操作系統推入榮譽殿堂,越來越多的開發者涌入基于RT-Thread的開發大軍,而如何快速學習和使用RT-Thread將會是一個剛需難題。
本文以一個近10年的嵌入式開發老兵的視角,跟大家一起聊一聊這個話題,希望對大家有所幫助和啟發。
1 寫在前面
RT-Thread 是一個集實時操作系統(RTOS)內核、中間件組件和開發者社區于一體的技術平臺,由熊譜翔先生帶領并集合開源社區力量開發而成, 具備一個 IoT OS 平臺所需的所有關鍵組件,擁有一個國內最大的嵌入式開源社區,同時被廣泛應用于能源、車載、醫療、消費電子等多個行業,累積裝機量超過 20億 臺,成為國人自主開發、國內最成熟穩定和裝機量最大的開源 RTOS。
它的優秀,不單單體現在 **文字** 上,還體現在 **數字** 上,以下展示數據來源于,[RT-Thread官網](https://www.rt-thread.org/about.html):
如此優秀的操作系統軟件,你確認不來學習一下嗎?
# 2 聊聊情懷
熟悉我的朋友,大概都知道,我跟RT-Thread還是蠻有緣的,曾經我寫過一篇短文,介紹我與RT-Thread的故事,
該文很榮幸地登上了 2021年開發者大會專刊的故事會欄目,想必有些小伙伴在書刊上已經看過這篇文章了。
在2022年里,我開始深耕 RT-Thread技術社區,我的個人賬戶是 recan,期間,我非常積極回答線上小伙伴提的各種問題,我自己也基本保持每個月輸出至少2篇優秀技術原創文章。同年6月,我還擔任了RT-Thread全球開發者大會的線上直播講師,包括國內專場和海外專場,收獲了掌聲的同時,我也收獲了各種寶貴經歷,最幸運的是還收獲了RT-Thread創始人熊大親筆簽名的 **講師證書**。
憑借2022年的優秀表現,我被授予了 **2022年度RT-Thread技術社區優秀布道者** 的榮譽稱號,這真的是一個很激勵我前行的榮譽。我會以此為新的起點,在接下來的一年里,我會更加以無上的使命感去推廣RT-Thread,讓更加優秀的開發者加入到RT-Thread的開發陣營。
這是我的責任,也是我的義務,更是我的榮幸。作為布道者,我很樂意大家與我交流RT-Thread技術,歡迎大家戳 我主頁,我們一起聊聊!
# 3 老手支招
扯了這么多有的沒的,是時候放點大招了。
我從13年畢業出來,從事嵌入式行業接近10年了,從最終的嵌入式Linux,然后FreeRTOS,再到現在的RT-Thread,可以說每一項操作系統技術,我都有比較深的涉獵,也成功在工作項目中得到驗證,有幸做了一些成績,也很高興成為了公司里的TOP5%。
這兩年,我也頻繁地在技術自媒體上發聲,致力于打造 [架構師李肯](http://yyds.recan-li.cn) 這個技術IP,期間遇到了很多困難和阻礙,也一度想要放棄,但與此同時又收到了很多肯定和鼓勵。遵循內心的渴望,我還是希望能把這個IP繼續做下去,如果能幫助到更多的人,那就再好不過了。
就在我致力于打造 架構師李肯 這個技術IP的時候,我遇到了非常多嵌入式入行的朋友,其中不乏很多想加入RT-Thread開發者陣營的朋友,他們經常問到問到一個問題就是:**你是如何學習和使用RT-Thread的?**
說實話,每當我回答起這個問題,我總是左想想右想想,然后給出幾個不成文的建議。所以,我想趁著這次機會,好好梳理一下,我是如何學習和使用RT-Thread的。
下面,我將以一個嵌入式經驗老手的角度,從幾個問題角度,給出一些切實可行的建議和方法,但是需要補充說明的就是,本文提交的方法并不一定適合所有開發者,請大家酌情甄別。**擇其善者而從之,其不善者而改之!**
3.1 關于學習基礎的問題
這個問題羅列在第一位,是因為我遇到太多這樣的朋友了。
一上來就問,我是零基礎小白,能轉行學嵌入式嗎?我這樣啥都不懂的,能學好RT-Thread嗎?
在這里,我再次表達一下我的觀點,學習基礎不是重點,也不是難點;稍微有些電子電路基礎,加一些C語言編程經驗的,基本就可以應付嵌入式的入門了。
另一方面,很重要的一點,那就是興趣。這個東西有些虛,但是直接決定了當你遇到困難的時候,你是否能堅持得下去。畢竟,嵌入式這個玩意,說好玩也挺好玩的,說枯燥也是挺枯燥的,整天對著一堆設備,bug一籌莫展的時候,頭發就開始往下掉了。
當然,回到RT-Thread學習這邊,如果你有主修過操作系統原理、計算機基礎等相關專業課程,那么理解起RT-Thread會更容易寫。
3.2 關于學習方向的問題
大體上,嵌入式軟件其實分為兩大方向:應用開發和底層驅動開發。
**應用開發**:偏向于業務邏輯開發,需要掌握的是系統API的使用細節,而對實現細節可能不那么講究,但是如果能更懂底層細節,往往能夠寫出更加優秀的應用代碼。
**底層驅動開發**:這個工作是要跟硬件設備以及操作系統強交互的,需要掌握一定的硬件知識,同時對系統的驅動框架也要了然于胸,否則做嵌入式驅動開發會非常吃力。當然,與工作難度相對應的是,工資往往也會更高一些。
我把這個問題單獨拎出來說,主要目的就是讓大家明白,應用開發和驅動開發是兩個截然不同的開發方向,對開發者的能力要求也不一樣,提醒大家入門的時候一定要做好選擇。
對于基于RT-Thread的開發也是應用,應用開發和驅動開發的能力矩陣要求是不一樣的;一般做底層驅動開發的轉應用開發會相對容易些,而反向則比較難。所以大家一開始的選擇很重要。
3.3 關于官方文檔的問題
總的來說,RT-Thread的官方文檔已經是非常完備的,它有一個專門的網站,大家可以戳 這里。
基本上,在這里你都可以找到相關的參考資料,包括內核是怎么設計的、應用接口怎么調用、驅動框架是怎么樣的、有哪些開發工具可以參考;基本上你上去找一找這些問題都可以找到答案。
另外一點比較重要的是,文檔是全中文模式,這對于國內的開發者來說,是一個比較好的體驗,這也很大程度地降低了開發者的理解難度,提升開發者學習和了解RT-Thread的積極性。
3.4 關于解答問題的問題
關于提交你開發過程中遇到的問題,我首推 [RT-Thread的官方技術社區](https://club.rt-thread.org/index.html),在這里有很多優秀的開發者聚集在一塊,其中不乏很多 [業內的技術專家](https://club.rt-thread.org/ask/experts.html),基本上你在這里發表你的問題,應該很快就能得到小伙伴的響應。
整個技術社區還是比較活躍的,我個人也活躍在社區中,也經常給社區的問題答疑,也歡迎大家在社區找我提問。
不過,需要說明的是,有些時候并不是說問題一定能夠得到解決,但是可能別人的一個點評討論,一下子就把你解決問題的思路打開了,問題也就迎刃而解了。
在這里,我想介紹一下,[如何高效地提問題](https://club.rt-thread.org/ask/question/1d7133828aad889b.html),這是很多初階開發者都需要學習的。
3.5 關于開發板的問題
這個問題也是很多小伙伴問到的一個問題,非常關心開發板的購買。
學習RT-Thread有一個比較好的地方就是,它可以不依賴于開發板環境就能上手。
在官方提供的代碼倉庫中,我們可以在BSP目錄下找到類似 **QEMU-** 開頭的BSP,這些BSP就是基于QEMU技術模擬出來的一個開發環境,有了它,你就可以直接在PC電腦上調試RT-Thread了,這不但大大提升了RT-Thread編程驗證思路的速度,同時也降低了學習RT-Thread的硬件門檻。
感興趣的小伙伴,可以戳這里了解一下 這種開發模式。
3.6 關于良師益友的問題
俗話說:“一個人走得更快,而一群人將走得更遠。”
在學習RT-Thread的道路上,我希望大家能找到志同道合的伙伴,一起升級打怪,一起進階成長;遇到問題的時候,大家一起討論,一起研究問題的根源;可能一個不經意的想法,就幫你解決了一個折騰幾天的難題。這就是良師益友的重要性。
那么,如何去尋找自己的良師益友呢?個人覺得可以從技術論壇、技術博客、技術公號中去尋找答案,盡量多關注你同領域的優秀博主,他們會有很多的同行交流群,試著去融入他們,制造幾乎與他們產生交集,慢慢混熟了,技術上的良師益友也就順理成章了。
如果你還沒有找到自己的良師益友,歡迎找我來撩,或許我能成為你的良師益友也說不定。
3.7 關于項目實戰的問題
紙上得來終覺淺,絕知此事要躬行!
在學習RT-Thread的道路上,更應該如此。看一百遍教程,讀一百遍demo代碼,都不及自己動手敲一遍代碼,然后在實際的開發環境(開發板或QEMU模擬環境)中跑一跑,調一調;這樣既能鍛煉動手能力,又能加深學習內容的掌握。
很多人開始疑問,我的正常工作內容還未涉及RT-Thread相關的開發,我該如何找到類似的實戰項目呢?
這個,你就要留意各路業余大賽了,比如電子發燒友論壇,比如官方的RT-Thread技術論壇,他們都會不定期地舉辦一些設計大賽,大賽中會比較明確地要求使用RT-Thread操作系統。
那么對于這種大賽,你就可以踴躍地報名參加,不但可以收獲開發板,還有實踐一個實戰項目,更有可能還能收獲一堆志同道合的技術朋友,何樂而不為呢?
3.8 關于學習進階的問題
學習RT-Thread的高階狀態,我認為是參與開源社區的建設,一個小小問題的回答,甚至于一個小小的問題點贊,都能夠很好地把這種技術開源的精神傳承下去。
如果你是更積極的開發小伙伴,哪怕技術不是那么精湛,你也可以嘗試提交一次PR,向官方倉庫提交你的優秀代碼,讓更多的人知道你這么優秀。
優秀的開發者總是有一樣的開發習慣,跟優秀的社區建設者一起【工作】,這本身就是一件很令人成長的事情,可以嘗試加入我們吧。
----
總結一下:
上面提及的各點,其實遠不是具體的可操作細節,我可能稱之為 **方法論** 的東西,掌握了方法論的東西,無論你學習哪個開源項目都是一樣的理兒。所以呢,關于具體的技術細節學習,歡迎大家找我來聊。
審核編輯黃宇
-
操作系統
+關注
關注
37文章
6822瀏覽量
123331 -
嵌入式開發
+關注
關注
18文章
1030瀏覽量
47578 -
開發板
+關注
關注
25文章
5050瀏覽量
97456 -
RT-Thread
+關注
關注
31文章
1289瀏覽量
40125
發布評論請先 登錄
相關推薦
評論