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

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

搜索
查看: 80|回復(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覽 |閱讀模式
我是老溫,一名熱愛(ài)學(xué)習(xí)的嵌入式工程師) i) I+ U0 F$ O7 _- N& Q; M6 |( e# i
關(guān)注我,一起變得更加優(yōu)秀!四年前寫(xiě)的文章,重新分享一下。$ K$ |0 ?0 d; J8 ~
在分享我的學(xué)習(xí)過(guò)程之前,先交代一下我的工作經(jīng)歷和學(xué)習(xí)背景。
( S+ Z) k+ G: @0 S* c, r我是從2020年11月初開(kāi)始學(xué)習(xí)RT-Thread實(shí)時(shí)操作系統(tǒng)的,在學(xué)習(xí)RT-Thread之前,我接觸過(guò)uCOS和FreeRTOS,
  ~# h( a* Q4 ?; v: w+ n8 n  c- Q但這兩個(gè)在單片機(jī)上應(yīng)用的實(shí)時(shí)操作系統(tǒng),我都沒(méi)有仔細(xì)并系統(tǒng)化地進(jìn)行學(xué)習(xí),都只是局限于開(kāi)發(fā)板上運(yùn)行一下demo例程。) {9 ~0 U! u5 H5 a: k& x5 M1 E4 i
以前我在嵌入式開(kāi)發(fā)板公司工作的時(shí)候,曾經(jīng)系統(tǒng)化地學(xué)習(xí)過(guò)Linux驅(qū)動(dòng)程序,當(dāng)時(shí)是買(mǎi)韋東山老師的2440驅(qū)動(dòng)教程,6 c! X7 Z: Q9 ^, r% f+ W; z: v
不過(guò)很遺憾,一直沒(méi)有從事過(guò)Linux驅(qū)動(dòng)開(kāi)發(fā)相關(guān)的崗位,學(xué)過(guò)就丟到一邊了,但正是因?yàn)檫@段經(jīng)歷,讓我明白了建立抽象思維的重要性。
# [# o/ w/ B$ Y5 J- H我曾經(jīng)使用嵌入式Linux操作系統(tǒng),開(kāi)發(fā)過(guò)兩個(gè)應(yīng)用項(xiàng)目,以前為了協(xié)助生產(chǎn),也用操作系統(tǒng)做過(guò)一些桌面工具,% y* c' P: N% N
所以,對(duì)于使用操作系統(tǒng)開(kāi)發(fā),里面涉及到的一些概念,比如多線程,內(nèi)存管理,線程間同步與通信,等等,理解起來(lái)也相對(duì)容易。0 e5 j& E: B2 e) I
以上就是我學(xué)習(xí)RT-Thread之前的工作經(jīng)歷和學(xué)習(xí)背景。' ^! @; \" h  T8 ?
經(jīng)過(guò)差不多兩個(gè)月業(yè)余時(shí)間的學(xué)習(xí),我已經(jīng)把RT-Thread內(nèi)核應(yīng)用相關(guān)的知識(shí)系統(tǒng)化地學(xué)習(xí)了一遍,并且同時(shí)寫(xiě)了一些學(xué)習(xí)總結(jié)文檔,如下圖所示,. d8 s6 q4 V; @' f2 ?# J2 X$ \/ d6 B
并且在公眾號(hào)做成了 專輯 | RT-Thread學(xué)習(xí)筆記 ,公眾號(hào)回復(fù)【技術(shù)文檔】即可下載PDF。, e! \4 `3 k: |# r! A' ?) k( C  t
6 \, E. L, M# ^. X  p1 ]
先用思維導(dǎo)圖總結(jié)概括一下,學(xué)習(xí)方法不一定適用于每個(gè)人,但希望可以給你一些參考。
% M' L* n) o# A5 S* c  G& Y9 y7 m3 r
' C6 k% T% w' y. v% O明確利益目標(biāo)
# p8 Z. R4 p' h7 @* v參加工作后的學(xué)習(xí)或自我提升,其目的已經(jīng)不像在大學(xué)校園里面那樣單純,大學(xué)里面基本都是學(xué)院安排好的學(xué)習(xí)計(jì)劃,而作為學(xué)生,只需要按計(jì)劃執(zhí)行就可以了。
7 [! u4 L# r4 D可以說(shuō),很多大學(xué)生受限于社會(huì)經(jīng)歷,也不知道為啥要學(xué)習(xí)這門(mén)課程,他們只是知道這是學(xué)院要求的。, U, x/ Q$ a0 f9 ~/ y0 L
參加工作后,個(gè)人的學(xué)習(xí)和提升,都是有目的的,人性都是趨利的。  m1 r- C/ X4 z! d2 |2 d" g7 }3 y
你基本不可能做到不帶任何目的而投入大量的時(shí)間去學(xué)習(xí)一門(mén)技能,就算是因?yàn)榕d趣愛(ài)好而學(xué),那也是為了自己的內(nèi)心滿足感,. H9 g8 N  @% J5 i. h* a
“尋找內(nèi)心滿足感”也是一種目的。
# A0 j7 v6 @: u- Y* S而對(duì)于大多數(shù)職場(chǎng)打工者的自我學(xué)習(xí)提升,無(wú)非只有兩個(gè)目的:名和利。
3 S1 P+ m3 T8 v" `) ]所以,在學(xué)習(xí)RT-Thread操作系統(tǒng)之前(其實(shí)也不局限于RT-Thread,包括很多職場(chǎng)技能也是如此),要先搞清楚自己為什么要學(xué)這門(mén)技能,要有明確的利益目標(biāo)。  H  e  D5 Z9 H5 E* R; k( P% t; p
如果想不明白這個(gè)問(wèn)題,只是道聽(tīng)途說(shuō)地覺(jué)得RT-Thread或某項(xiàng)技能很火,也想跟風(fēng)學(xué)習(xí)一下,那還是不要貿(mào)然浪費(fèi)時(shí)間,因?yàn)槁䶮o(wú)目的的學(xué)習(xí),會(huì)很難堅(jiān)持下去。
; J8 v0 Q/ \6 t; l9 t& _9 M& W那么,我學(xué)習(xí)RT-Thread的利益目標(biāo)是什么?4 _8 t% r9 m$ W7 _0 x6 T0 _/ M
其實(shí)很簡(jiǎn)單,是為了公眾號(hào)有素材可寫(xiě),同時(shí)建立自己的技術(shù)背景和人設(shè),然后積極擁抱開(kāi)源社區(qū),認(rèn)識(shí)不同行業(yè)的技術(shù)大佬。
1 M9 b  @  X6 T; k. M通過(guò)這種學(xué)習(xí)總結(jié)+持續(xù)輸出的閉環(huán),可以讓自己技術(shù)得到提升的同時(shí),也讓自己鏈接更多優(yōu)秀的人才,如果自己能幫助更多的人,那就更加perfect了。
% V* U* B' h6 Z0 L4 n , Z) j; N' A$ o3 |' T5 x( Z( \. g0 ^
這種持續(xù)的學(xué)習(xí)總結(jié)輸出,也為我以后求職增加了籌碼,呈現(xiàn)給對(duì)方公司的,不再是一紙枯燥的簡(jiǎn)歷,可以是我的技術(shù)博客,公眾號(hào),GitHub,開(kāi)源作品,等等,這也是我的利益目標(biāo)之一。; r' K! |" m  M+ s4 S4 S
如果你還不知道如何搞清楚自己學(xué)習(xí)的利益目標(biāo),那就要先花時(shí)間好好想清楚了,而對(duì)于大多數(shù)職場(chǎng)打工人來(lái)說(shuō),學(xué)習(xí)技能最直接的目標(biāo),就是為了跳槽好找工作。' q& r7 {) x& _' \. ~( D5 S
可以把跳槽當(dāng)作利益目標(biāo)之一,但是別忘了,最好還是要通過(guò)展示手段,把你所學(xué)到的技能呈現(xiàn)到對(duì)方公司面前,而不是把技能都寫(xiě)在一紙簡(jiǎn)歷上面。4 c6 D, ]+ _9 X$ T) i
弄清基本概念
) Y0 A- ?; p: J. k文章里面的每一段話,是由字詞句三者組成的,就像我們初中高中學(xué)習(xí)閱讀理解的時(shí)候,分析一段話的含義,都是從字或詞開(kāi)始進(jìn)行分析(文言文翻譯簡(jiǎn)直是一段痛苦的經(jīng)歷)。
/ F& r1 O: i/ M5 r7 x$ m& G所以,要學(xué)習(xí)RT-Thread操作系統(tǒng),就需要先弄清楚操作系統(tǒng)的基本概念。
/ ~# I  t2 t4 H7 |8 ]這些基本概念,在操作系統(tǒng)里面基本上都是相通的,不管是實(shí)時(shí)操作系統(tǒng)還是多任務(wù)分時(shí)操作系統(tǒng)。
/ ~( p$ |2 `6 b8 c. L(在你看這段話的時(shí)候,腦海是不是也會(huì)有疑問(wèn),什么是多任務(wù)分時(shí)操作系統(tǒng)?)
/ w$ G3 ]1 S  p/ o6 x- [$ d為什么會(huì)看不懂一段話,無(wú)非就是組成這段話的詞語(yǔ)概念不理解,不妨看看下面一段話,里面紅框部分都涉及了各種概念,而這些概念如果你不懂的話,是看不懂這段話的。8 C! Q, C. j9 n* Q: C1 m- L
* I1 @9 X" f, \9 C
短短幾句話里面,就包含了很多操作系統(tǒng)的概念,什么是線程調(diào)度器?什么是搶占式?什么是最高優(yōu)先級(jí)?什么是中斷服務(wù)程序?等等。。。* T6 Y+ T9 L. H  E; d; X
而我能很容易看懂這幾句話,是因?yàn)槲矣辛艘郧暗膶W(xué)習(xí)經(jīng)歷作為鋪墊。& z4 [& m8 J* Q  v3 }
那么,在我們平時(shí)的學(xué)習(xí)中,如何搞懂這些基本概念呢?教大家一個(gè)比較實(shí)用的方法,就是在網(wǎng)上搜索的時(shí)候,在前面加上“如何通俗地理解xxx”,比如,“如何通俗地理解多線程”,網(wǎng)上就會(huì)有不少結(jié)合生活事例的參考答案。: e8 F, U  k2 X% [0 r  k

2 t* e- i- v& y# b現(xiàn)在終于知道為啥語(yǔ)文數(shù)學(xué)外語(yǔ)這些科目可以貫穿整個(gè)學(xué)業(yè)生涯了,學(xué)習(xí)語(yǔ)文可以鍛煉我們的閱讀理解能力,而數(shù)學(xué)可以讓我們建立邏輯推導(dǎo)能力,學(xué)習(xí)外語(yǔ),是為了在經(jīng)濟(jì)全球化的背景下,讓自己更好地和世界交流。) Q& a9 ?7 w3 H$ j
建立抽象思維1 V4 A6 R+ n9 h4 n: ~0 ]
為什么要建立抽象思維?人為什么能通過(guò)閱讀文字或觀看圖片和視頻來(lái)獲取知識(shí)?0 X0 U& F3 \/ K# A
原因就是,一個(gè)人在接收外界信息的時(shí)候,會(huì)在自己的大腦里面建立一個(gè)具體的事物影像,這個(gè)具體的事物影像在構(gòu)建的時(shí)候,會(huì)依賴于你自身的社會(huì)經(jīng)歷以及知識(shí)豐富程度。8 X2 M4 W& W4 U- `- [. ?
回到如何學(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)介和框架。8 l$ ~5 Q, {* n5 ^9 `
$ `! o' L+ \& Z& h1 e
千萬(wàn)不要一開(kāi)始就去看系統(tǒng)源碼,也不要馬上去運(yùn)行demo例程,在你的大腦建立RT-Thread這個(gè)影像框架之前,看這些源碼,無(wú)疑是想自己勸退自己。
3 b2 C9 y9 ?6 e' _8 ~6 S. S2 o+ [/ _) i為什么要先看簡(jiǎn)介和框架?: Y: Z5 K! D$ B$ Y
因?yàn)檫@個(gè)框架可以有助于我建立一個(gè)關(guān)于RT-Thread的大腦影像,往后不管我學(xué)習(xí)RT-Thread的哪一塊內(nèi)容,都是基于這個(gè)框架的,框架是用來(lái)告訴我們,里面的代碼以及模塊是如何進(jìn)行組織的,所以,框架很重要!0 c8 l: k6 _! O1 n: C; j3 c: n
細(xì)心的人就會(huì)發(fā)現(xiàn),即使是這個(gè)框架介紹,里面也涉及了很多基本概念,這樣又回到了“弄清基本概念”這個(gè)環(huán)節(jié)。所以,這是一個(gè)螺旋式的過(guò)程,不斷弄清概念,建立大腦影像,如此往復(fù)循環(huán)。& g6 N: i9 k& m7 f5 R, o* T# e
當(dāng)你要去看操作系統(tǒng)代碼的時(shí)候,面向?qū)ο蟮乃季S,肯定是必不可少的,這又回到了“什么是面向?qū)ο螅俊边@個(gè)問(wèn)題上了。; z7 z& s5 G4 J0 l
我相信,通過(guò)網(wǎng)絡(luò)搜索,你一定會(huì)基本明白什么是面向?qū)ο,接下?lái)就是C語(yǔ)言如何實(shí)現(xiàn)面向?qū)ο罅,具體可以查看以下文章。! f; q9 \6 i3 |3 e; y" F# p
嵌入式 C 語(yǔ)言面向?qū)ο缶幊?--- 總結(jié)0 ^" I' a4 C. [, P8 R6 t
基于狀態(tài)機(jī)和面向?qū)ο蟮乃枷,設(shè)計(jì)一個(gè)通用的按鍵檢測(cè)模塊。
' A9 }7 c, H. T* g如何建立抽象思維?這個(gè)問(wèn)題實(shí)在太難回答了。
5 Q5 `* A, L) o$ t抽象思維的建立,不是一朝一夕的事情,它需要周而復(fù)始地保持一種對(duì)世界好奇的學(xué)習(xí)心態(tài),而且很大程度取決于你的人生經(jīng)歷和知識(shí)體量,/ `* F( o% t- d2 i- f% W. G$ x) K
我能給出的建議就是,多閱讀經(jīng)典書(shū)籍,多觀察這個(gè)世界,多總結(jié)和思考,多于不同行業(yè)的朋友交流。' r0 V( o$ R; h6 Q- \) `
持續(xù)總結(jié)輸出
. p+ A. P5 u+ u0 `4 l) w: {' L為什么我現(xiàn)在那么喜歡寫(xiě)文章?為什么我一直建議各位持續(xù)總結(jié)輸出?
: R* j$ T! a: z: w0 a' k, K這是因?yàn)椋粋(gè)人的認(rèn)知象限里面,有以下四種狀態(tài):不知道自己不知道、知道自己不知道、不知道自己知道、知道自己知道。7 E7 Y" p, p1 I& T
關(guān)于這四種認(rèn)知狀態(tài)的說(shuō)明,在網(wǎng)絡(luò)上面有很多解釋,這里不做重復(fù)描述。
7 B! E! O( m7 y! v+ i8 r持續(xù)地通過(guò)技術(shù)文章進(jìn)行輸出,可以讓一個(gè)人理清自己的學(xué)習(xí)過(guò)程與學(xué)習(xí)狀態(tài),這種方式可以讓一個(gè)人搞清楚學(xué)習(xí)過(guò)程里面,哪些是自己知道的,哪些是自己不知道的。
7 l! c. I+ g4 P- S. G我相信,很多人在最初學(xué)習(xí)一個(gè)新知識(shí)點(diǎn)的時(shí)候,通常都是處于“不知道自己不知道”的狀態(tài),也就是不知道自己哪些地方不懂,自然就不會(huì)向別人提問(wèn)。( k$ |/ l, Z1 M9 @9 v5 C
“好記性不如爛筆頭”這個(gè)道理,我相信很多人都懂。我在2015年學(xué)習(xí)Linux驅(qū)動(dòng)的時(shí)候,就開(kāi)始用記事本零散地記錄自己的學(xué)習(xí)過(guò)程,那時(shí)候,還沒(méi)學(xué)會(huì)系統(tǒng)化地進(jìn)行技術(shù)文章組織和輸出。2 X$ \9 J( O3 ]) c
6 `* D: ]5 f* k( I- ^* u  w1 o
直到最近這兩年決定寫(xiě)公眾號(hào)和博客,才明白系統(tǒng)化知識(shí)的重要性,所以公眾號(hào)和博客的寫(xiě)作風(fēng)格,都是通過(guò)技術(shù)專輯的方式來(lái)呈現(xiàn),( Y  ^, M, d- S0 G
一方面是為了讓自己學(xué)習(xí)不會(huì)太片面,同時(shí)讓網(wǎng)絡(luò)上的知識(shí)碎片能盡可能集中一點(diǎn),方便以后自己查閱,如果能給你帶來(lái)一些幫助,那是對(duì)我莫大的鼓勵(lì)。0 }# m. O$ K# z6 E3 g7 W
這種持續(xù)的總結(jié)輸出,會(huì)給我?guī)?lái)一些正反饋?zhàn)饔茫屛艺J(rèn)識(shí)了很多優(yōu)秀的同行,同時(shí)也希望我的學(xué)習(xí)總結(jié),能給其他嵌入式的初學(xué)者帶來(lái)一些參考,
' z+ L( K9 n) j1 k$ D$ |4 L' N9 w以上就是我的學(xué)習(xí)方法論,關(guān)于我的從業(yè)經(jīng)歷和職場(chǎng)感悟,也可以在公眾號(hào)獲取我的個(gè)人微信,跟我一起互相交流,共同進(jìn)步。+ i* I. J+ X& G# v9 @# [; k
感謝閱讀!. K0 I3 Y; x) W( K7 [; ^
-END-
1 @  F5 Q7 r0 s9 f" @+ M/ v往期推薦:點(diǎn)擊圖片即可跳轉(zhuǎn)閱讀
& j8 T7 m7 F9 q7 H) F                                                       
* e: M" I  p9 U& d                                                               
; R0 n0 e: _+ ?3 P! J. a4 A9 I$ h) Q                                                                        & k! D# \2 c' t( f( x* h6 u
                                                                               
$ V' Q0 D; x' ?- q* W5 [
+ A" x5 ?8 J* @/ S                                                                                9 Y  r9 Z. e$ k% p) R" T1 ~+ W
                                                                                        【5折福利】選型必看!這款RK3588開(kāi)發(fā)板究竟有何魅力?
; G* D1 ]7 l0 J. W3 j7 D5 X  [                                                        8 [& b) h/ k6 _- X2 f$ D9 x
                                                                1 E- @' x& H4 H4 u  j  x
                                                                       
1 D# i. K+ H  h                                                                                8 F, V, o" p0 L! a- z$ ]
* y8 V1 z) K& b4 Q1 `; B
                                                                               
' s& |" l& k7 h9 j& V6 O4 [# I1 y                                                                                        這兩種 C 語(yǔ)言語(yǔ)法,建議別用,不然會(huì)被罵慘!7 d6 C4 ?! e' r* z6 o& Y
                                                                ' Q6 l: Z; q$ A% ]9 z% ^
                                                                       
# P$ I7 T( b9 T, I$ D/ G9 e                                                                               
3 [6 a- ?2 c; N* }
4 s. S6 L. S8 S' x! \                                                                               
$ U4 o/ @) |# t                                                                                        嵌入式 C 語(yǔ)言,那些“花里胡哨”的語(yǔ)法特性。
7 G1 c/ R: V& A7 N                                                                                / H# b3 |7 m7 b; x
                                                                        * R8 w( C7 N- @, S3 g) u
                                                                $ f& Y" A& A  v  J$ F4 Z( X
                                                        我是老溫,一名熱愛(ài)學(xué)習(xí)的嵌入式工程師
! m& m/ |% n  Y* c5 o* Y關(guān)注我,一起變得更加優(yōu)秀!

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

本版積分規(guī)則

關(guān)閉

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


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