電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 90|回復(fù): 0
收起左側(cè)

以 RT-Thread 為例,分享一下我的學(xué)習(xí)方法

[復(fù)制鏈接]

451

主題

451

帖子

666

積分

二級(jí)會(huì)員

Rank: 2

積分
666
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2024-8-29 17:50:00 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
我是老溫,一名熱愛學(xué)習(xí)的嵌入式工程師/ ]. h5 O# E$ O' i+ @, j& r
關(guān)注我,一起變得更加優(yōu)秀!四年前寫的文章,重新分享一下。. P' L3 d7 R: g( Y
在分享我的學(xué)習(xí)過程之前,先交代一下我的工作經(jīng)歷和學(xué)習(xí)背景。0 Q* W3 I  v$ x* P& N4 U7 b; g- g
我是從2020年11月初開始學(xué)習(xí)RT-Thread實(shí)時(shí)操作系統(tǒng)的,在學(xué)習(xí)RT-Thread之前,我接觸過uCOS和FreeRTOS,
% e; F6 Z9 X7 \/ Z但這兩個(gè)在單片機(jī)上應(yīng)用的實(shí)時(shí)操作系統(tǒng),我都沒有仔細(xì)并系統(tǒng)化地進(jìn)行學(xué)習(xí),都只是局限于開發(fā)板上運(yùn)行一下demo例程。
: W" Q% |/ n# Z( O* ^) f8 h7 ~+ f以前我在嵌入式開發(fā)板公司工作的時(shí)候,曾經(jīng)系統(tǒng)化地學(xué)習(xí)過Linux驅(qū)動(dòng)程序,當(dāng)時(shí)是買韋東山老師的2440驅(qū)動(dòng)教程,
) o/ D  @$ u8 j% E* s* a不過很遺憾,一直沒有從事過Linux驅(qū)動(dòng)開發(fā)相關(guān)的崗位,學(xué)過就丟到一邊了,但正是因?yàn)檫@段經(jīng)歷,讓我明白了建立抽象思維的重要性。
4 B3 C4 U! g/ U0 ?* ^我曾經(jīng)使用嵌入式Linux操作系統(tǒng),開發(fā)過兩個(gè)應(yīng)用項(xiàng)目,以前為了協(xié)助生產(chǎn),也用操作系統(tǒng)做過一些桌面工具,
; K% d% u/ P! X. @所以,對(duì)于使用操作系統(tǒng)開發(fā),里面涉及到的一些概念,比如多線程,內(nèi)存管理,線程間同步與通信,等等,理解起來(lái)也相對(duì)容易。# H7 e. ]/ I! F; y
以上就是我學(xué)習(xí)RT-Thread之前的工作經(jīng)歷和學(xué)習(xí)背景。; p* s) j! I! j+ V  C" U! O0 ]
經(jīng)過差不多兩個(gè)月業(yè)余時(shí)間的學(xué)習(xí),我已經(jīng)把RT-Thread內(nèi)核應(yīng)用相關(guān)的知識(shí)系統(tǒng)化地學(xué)習(xí)了一遍,并且同時(shí)寫了一些學(xué)習(xí)總結(jié)文檔,如下圖所示,: T" F+ L/ A% E. N; S) c
并且在公眾號(hào)做成了 專輯 | RT-Thread學(xué)習(xí)筆記 ,公眾號(hào)回復(fù)【技術(shù)文檔】即可下載PDF。: h6 r) X5 x: Z* p! X) S
+ p, i# v3 ]' H' R# d* R% D% m
先用思維導(dǎo)圖總結(jié)概括一下,學(xué)習(xí)方法不一定適用于每個(gè)人,但希望可以給你一些參考。
$ ]* z! L, M: o" r0 a7 Y# n9 X+ F. Z . @( ]% w* ~8 s0 F
明確利益目標(biāo)$ \" H# }+ S- {; \2 R" K7 V" i& V
參加工作后的學(xué)習(xí)或自我提升,其目的已經(jīng)不像在大學(xué)校園里面那樣單純,大學(xué)里面基本都是學(xué)院安排好的學(xué)習(xí)計(jì)劃,而作為學(xué)生,只需要按計(jì)劃執(zhí)行就可以了。/ L: ^; S0 S. Y9 n. z# r
可以說(shuō),很多大學(xué)生受限于社會(huì)經(jīng)歷,也不知道為啥要學(xué)習(xí)這門課程,他們只是知道這是學(xué)院要求的。
* z: s- m* p, `7 w- b6 F參加工作后,個(gè)人的學(xué)習(xí)和提升,都是有目的的,人性都是趨利的。
$ m/ _! e- o) ~- \你基本不可能做到不帶任何目的而投入大量的時(shí)間去學(xué)習(xí)一門技能,就算是因?yàn)榕d趣愛好而學(xué),那也是為了自己的內(nèi)心滿足感,
* ]- E1 K& @. o" n' m3 A$ k“尋找內(nèi)心滿足感”也是一種目的。
" B+ D+ v) U+ M5 \而對(duì)于大多數(shù)職場(chǎng)打工者的自我學(xué)習(xí)提升,無(wú)非只有兩個(gè)目的:名和利。/ i2 g4 @  M& h9 X7 I8 M2 j+ m
所以,在學(xué)習(xí)RT-Thread操作系統(tǒng)之前(其實(shí)也不局限于RT-Thread,包括很多職場(chǎng)技能也是如此),要先搞清楚自己為什么要學(xué)這門技能,要有明確的利益目標(biāo)。/ I6 g4 D$ |# O( R
如果想不明白這個(gè)問題,只是道聽途說(shuō)地覺得RT-Thread或某項(xiàng)技能很火,也想跟風(fēng)學(xué)習(xí)一下,那還是不要貿(mào)然浪費(fèi)時(shí)間,因?yàn)槁䶮o(wú)目的的學(xué)習(xí),會(huì)很難堅(jiān)持下去。& t" N2 [+ M; |- j+ [* p8 Z; l$ b
那么,我學(xué)習(xí)RT-Thread的利益目標(biāo)是什么?8 h+ q: I$ q  l" l; }+ w6 @2 W5 |
其實(shí)很簡(jiǎn)單,是為了公眾號(hào)有素材可寫,同時(shí)建立自己的技術(shù)背景和人設(shè),然后積極擁抱開源社區(qū),認(rèn)識(shí)不同行業(yè)的技術(shù)大佬。
) l+ X; P% ^3 ^" `7 V& y( c& E通過這種學(xué)習(xí)總結(jié)+持續(xù)輸出的閉環(huán),可以讓自己技術(shù)得到提升的同時(shí),也讓自己鏈接更多優(yōu)秀的人才,如果自己能幫助更多的人,那就更加perfect了。
3 f+ J- O% J% I4 ^ 0 g* n7 j2 A+ y4 G- M2 L- {! C) G
這種持續(xù)的學(xué)習(xí)總結(jié)輸出,也為我以后求職增加了籌碼,呈現(xiàn)給對(duì)方公司的,不再是一紙枯燥的簡(jiǎn)歷,可以是我的技術(shù)博客,公眾號(hào),GitHub,開源作品,等等,這也是我的利益目標(biāo)之一。  k& ^2 h5 N9 X" L! o
如果你還不知道如何搞清楚自己學(xué)習(xí)的利益目標(biāo),那就要先花時(shí)間好好想清楚了,而對(duì)于大多數(shù)職場(chǎng)打工人來(lái)說(shuō),學(xué)習(xí)技能最直接的目標(biāo),就是為了跳槽好找工作。, t0 w! t7 ?6 A3 n3 W3 }1 p
可以把跳槽當(dāng)作利益目標(biāo)之一,但是別忘了,最好還是要通過展示手段,把你所學(xué)到的技能呈現(xiàn)到對(duì)方公司面前,而不是把技能都寫在一紙簡(jiǎn)歷上面。; Y- j' R6 S' e- F! `/ _
弄清基本概念$ R, G" o0 z' K. d+ G
文章里面的每一段話,是由字詞句三者組成的,就像我們初中高中學(xué)習(xí)閱讀理解的時(shí)候,分析一段話的含義,都是從字或詞開始進(jìn)行分析(文言文翻譯簡(jiǎn)直是一段痛苦的經(jīng)歷)。
' S: c$ j9 l) Q- |1 N- Y所以,要學(xué)習(xí)RT-Thread操作系統(tǒng),就需要先弄清楚操作系統(tǒng)的基本概念。
; |" c5 N+ Q. t+ C7 p# T; s這些基本概念,在操作系統(tǒng)里面基本上都是相通的,不管是實(shí)時(shí)操作系統(tǒng)還是多任務(wù)分時(shí)操作系統(tǒng)。
6 }. z3 I& G: s! ^. S% f/ O" w(在你看這段話的時(shí)候,腦海是不是也會(huì)有疑問,什么是多任務(wù)分時(shí)操作系統(tǒng)?)6 N$ j3 L) Y0 ~0 x/ X4 ]
為什么會(huì)看不懂一段話,無(wú)非就是組成這段話的詞語(yǔ)概念不理解,不妨看看下面一段話,里面紅框部分都涉及了各種概念,而這些概念如果你不懂的話,是看不懂這段話的。
7 Q: G0 t: a# Q0 k. b' g8 {6 l0 N" ~
5 b( S# E* _  t/ Y4 E2 E: ^短短幾句話里面,就包含了很多操作系統(tǒng)的概念,什么是線程調(diào)度器?什么是搶占式?什么是最高優(yōu)先級(jí)?什么是中斷服務(wù)程序?等等。。。" M5 i9 J( C7 P5 u& n/ {  x
而我能很容易看懂這幾句話,是因?yàn)槲矣辛艘郧暗膶W(xué)習(xí)經(jīng)歷作為鋪墊。7 v. t" D" p, G1 v: e
那么,在我們平時(shí)的學(xué)習(xí)中,如何搞懂這些基本概念呢?教大家一個(gè)比較實(shí)用的方法,就是在網(wǎng)上搜索的時(shí)候,在前面加上“如何通俗地理解xxx”,比如,“如何通俗地理解多線程”,網(wǎng)上就會(huì)有不少結(jié)合生活事例的參考答案。  x# [# ?7 I2 Z8 P8 _4 [
* ^8 t3 I- B1 X! X% _7 z, _
現(xiàn)在終于知道為啥語(yǔ)文數(shù)學(xué)外語(yǔ)這些科目可以貫穿整個(gè)學(xué)業(yè)生涯了,學(xué)習(xí)語(yǔ)文可以鍛煉我們的閱讀理解能力,而數(shù)學(xué)可以讓我們建立邏輯推導(dǎo)能力,學(xué)習(xí)外語(yǔ),是為了在經(jīng)濟(jì)全球化的背景下,讓自己更好地和世界交流。
. ]+ D4 C# \+ `, @2 ?2 e- U建立抽象思維& l, x& W% R- s# O4 S( c7 `6 k4 R% y
為什么要建立抽象思維?人為什么能通過閱讀文字或觀看圖片和視頻來(lái)獲取知識(shí)?8 W1 R( H1 A( n+ F7 t9 Y' b0 O8 s: M
原因就是,一個(gè)人在接收外界信息的時(shí)候,會(huì)在自己的大腦里面建立一個(gè)具體的事物影像,這個(gè)具體的事物影像在構(gòu)建的時(shí)候,會(huì)依賴于你自身的社會(huì)經(jīng)歷以及知識(shí)豐富程度。7 B, ~; |. U' s0 Y% e
回到如何學(xué)習(xí)RT-Thread這個(gè)話題上面,我在學(xué)習(xí)RT-Thread的時(shí)候,首先參考的是其官網(wǎng)提供的學(xué)習(xí)資料,而這一大堆學(xué)習(xí)資料里面,我首先關(guān)注的,肯定是RT-Thread這個(gè)操作系統(tǒng)的簡(jiǎn)介和框架。- z$ T9 L  L" H8 ]: f
: R4 y; O7 n9 N* s4 H6 ^
千萬(wàn)不要一開始就去看系統(tǒng)源碼,也不要馬上去運(yùn)行demo例程,在你的大腦建立RT-Thread這個(gè)影像框架之前,看這些源碼,無(wú)疑是想自己勸退自己。1 e2 |  ~4 @- U- A
為什么要先看簡(jiǎn)介和框架?  W0 x# b" Z4 Y( q* I2 G; I! M' p  P, T
因?yàn)檫@個(gè)框架可以有助于我建立一個(gè)關(guān)于RT-Thread的大腦影像,往后不管我學(xué)習(xí)RT-Thread的哪一塊內(nèi)容,都是基于這個(gè)框架的,框架是用來(lái)告訴我們,里面的代碼以及模塊是如何進(jìn)行組織的,所以,框架很重要!
5 _5 A) F# p, S" f( v細(xì)心的人就會(huì)發(fā)現(xiàn),即使是這個(gè)框架介紹,里面也涉及了很多基本概念,這樣又回到了“弄清基本概念”這個(gè)環(huán)節(jié)。所以,這是一個(gè)螺旋式的過程,不斷弄清概念,建立大腦影像,如此往復(fù)循環(huán)。
3 G& H9 P3 P6 j3 v9 j# l當(dāng)你要去看操作系統(tǒng)代碼的時(shí)候,面向?qū)ο蟮乃季S,肯定是必不可少的,這又回到了“什么是面向?qū)ο?”這個(gè)問題上了。
: I& U+ l' x* W/ G# T我相信,通過網(wǎng)絡(luò)搜索,你一定會(huì)基本明白什么是面向?qū)ο,接下?lái)就是C語(yǔ)言如何實(shí)現(xiàn)面向?qū)ο罅,具體可以查看以下文章。8 X0 _( e  C) E3 Q( d" G# d6 a: p
嵌入式 C 語(yǔ)言面向?qū)ο缶幊?--- 總結(jié)
+ v+ A) r  H+ x/ C  I  G基于狀態(tài)機(jī)和面向?qū)ο蟮乃枷,設(shè)計(jì)一個(gè)通用的按鍵檢測(cè)模塊。
* T6 s2 b3 q0 e如何建立抽象思維?這個(gè)問題實(shí)在太難回答了。$ c3 }9 l7 y. u
抽象思維的建立,不是一朝一夕的事情,它需要周而復(fù)始地保持一種對(duì)世界好奇的學(xué)習(xí)心態(tài),而且很大程度取決于你的人生經(jīng)歷和知識(shí)體量,% }5 w) n# }* v
我能給出的建議就是,多閱讀經(jīng)典書籍,多觀察這個(gè)世界,多總結(jié)和思考,多于不同行業(yè)的朋友交流。
+ h' u, q, Q( ^2 W, Q. x持續(xù)總結(jié)輸出  }1 ?# K8 x1 ?5 s# N2 z
為什么我現(xiàn)在那么喜歡寫文章?為什么我一直建議各位持續(xù)總結(jié)輸出?  v: Z5 C9 J# Y6 b! ?, O
這是因?yàn)椋粋(gè)人的認(rèn)知象限里面,有以下四種狀態(tài):不知道自己不知道、知道自己不知道、不知道自己知道、知道自己知道。
3 \9 P8 I/ \# D' V+ ^" E! c1 C6 a關(guān)于這四種認(rèn)知狀態(tài)的說(shuō)明,在網(wǎng)絡(luò)上面有很多解釋,這里不做重復(fù)描述。
. K& C; E' S, l( |# |9 w; c6 Q持續(xù)地通過技術(shù)文章進(jìn)行輸出,可以讓一個(gè)人理清自己的學(xué)習(xí)過程與學(xué)習(xí)狀態(tài),這種方式可以讓一個(gè)人搞清楚學(xué)習(xí)過程里面,哪些是自己知道的,哪些是自己不知道的。- a/ Q0 L7 a9 i( [! M
我相信,很多人在最初學(xué)習(xí)一個(gè)新知識(shí)點(diǎn)的時(shí)候,通常都是處于“不知道自己不知道”的狀態(tài),也就是不知道自己哪些地方不懂,自然就不會(huì)向別人提問。6 G3 S4 D! j. }+ w% X* ]
“好記性不如爛筆頭”這個(gè)道理,我相信很多人都懂。我在2015年學(xué)習(xí)Linux驅(qū)動(dòng)的時(shí)候,就開始用記事本零散地記錄自己的學(xué)習(xí)過程,那時(shí)候,還沒學(xué)會(huì)系統(tǒng)化地進(jìn)行技術(shù)文章組織和輸出。
5 l2 Q  Q) {: s) B: R4 T$ V% E0 ?
; R8 T: O3 r: x5 r直到最近這兩年決定寫公眾號(hào)和博客,才明白系統(tǒng)化知識(shí)的重要性,所以公眾號(hào)和博客的寫作風(fēng)格,都是通過技術(shù)專輯的方式來(lái)呈現(xiàn),# r% R* E* D+ v; I' o3 _. x1 S& t
一方面是為了讓自己學(xué)習(xí)不會(huì)太片面,同時(shí)讓網(wǎng)絡(luò)上的知識(shí)碎片能盡可能集中一點(diǎn),方便以后自己查閱,如果能給你帶來(lái)一些幫助,那是對(duì)我莫大的鼓勵(lì)。# n; H6 C6 v3 ~' O: d6 _% Z; K5 h
這種持續(xù)的總結(jié)輸出,會(huì)給我?guī)?lái)一些正反饋?zhàn)饔,讓我認(rèn)識(shí)了很多優(yōu)秀的同行,同時(shí)也希望我的學(xué)習(xí)總結(jié),能給其他嵌入式的初學(xué)者帶來(lái)一些參考,
+ t$ n( r2 w, \  @; v1 _' M以上就是我的學(xué)習(xí)方法論,關(guān)于我的從業(yè)經(jīng)歷和職場(chǎng)感悟,也可以在公眾號(hào)獲取我的個(gè)人微信,跟我一起互相交流,共同進(jìn)步。8 d0 ]& z/ m. F$ J& @
感謝閱讀!4 R4 t. P: ~5 A; p8 E
-END-
/ L; D8 t5 s) M5 R# V往期推薦:點(diǎn)擊圖片即可跳轉(zhuǎn)閱讀
* a; P6 c  A8 S& M( {  R: q" d                                                        5 r2 {4 Q9 T. V& M2 |. }
                                                                1 Y& O, p9 p* k6 ]( x1 S+ A
                                                                       
: i$ _' l, Y6 Y: T+ k; C1 ^9 I2 e0 p) T                                                                               
* u- c4 p: _" |- b! \& ?( m ! b1 v: U3 |& j6 d
                                                                                1 \% ^2 S1 U; p  `
                                                                                        【5折福利】選型必看!這款RK3588開發(fā)板究竟有何魅力?8 |3 H; }$ n8 b7 U( V# I
                                                        ; Q: U# l3 A4 h/ |3 w
                                                                / V6 b( @: K  O9 M! g0 {1 [
                                                                       
) p3 Z% X# m2 C2 k# R+ g* l                                                                                * j+ V+ j/ {: {+ |1 l% r

) T" o; y8 {" t3 p' C                                                                               
- B& L$ p2 J0 m1 D8 [9 U                                                                                        這兩種 C 語(yǔ)言語(yǔ)法,建議別用,不然會(huì)被罵慘!2 X4 @& U; T" x) L, v
                                                               
9 v: J) `% \' e  S3 u9 c! l* e; s                                                                       
+ J! u3 \5 C- a4 T) i                                                                               
7 I% P/ P# \" D$ O  R" H 0 G5 c/ K) y, R% R% S) N4 _$ s
                                                                               
! B' ^2 S( a1 j. H7 E                                                                                        嵌入式 C 語(yǔ)言,那些“花里胡哨”的語(yǔ)法特性。0 K" b2 I0 o/ V* `5 ?
                                                                               
& I* j* N/ W. y# o& J2 V! k                                                                        9 j9 Q, y) u+ Z) X. r
                                                               
/ z; e2 Y. A, c1 b                                                        我是老溫,一名熱愛學(xué)習(xí)的嵌入式工程師; _& ]' e" p5 q# O  G  \  B
關(guān)注我,一起變得更加優(yōu)秀!

發(fā)表回復(fù)

本版積分規(guī)則

關(guān)閉

站長(zhǎng)推薦上一條 /1 下一條


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表