1. 程式人生 > >嵌入式linux學習路程

嵌入式linux學習路程

文章目錄

個人簡介

       博主撰寫這篇文章的時候乃一名大四摳腳學生,在一所聯辦職業學校上學,期間學過51,STM32,MSP430,也簡單的學過FPGA,PLC(學校開的課程趁此期間學習的)也用這些微控制器做了些小作品,不斷的學習歷程也讓我接觸到了更多的知識,於是乎微控制器不再滿足我對技術的追求,大三暑假決定入坑嵌入式,期間原地打轉,摸爬滾打也總結出了自己的學習路線並堅持著,在此篇文章與大家分享一下。

閒侃學習路

       入坑學習嵌入式的大概分兩路人,一路是學計算機的本來搞得軟體,卻對嵌入式產生了濃厚的興趣,所以入坑了;還有一路人就是像我一樣,本來是搞微控制器的,因不斷追求,入坑了嵌入式。入坑了嵌入式不久就會卡住,為什麼呢?無非是搞計算機的不懂硬體,搞硬體的無法理解計算機專業的東西,搞得上不去下不來的感覺。其實我個人覺得,嵌入式方向分的很細,比如說,搞計算機的完全可以不用理會核心驅動和BootLoader開發,只需要去搞頂層應用程式即可,搞硬體的也沒必要糾結頂層軟體怎麼設計,學會BootLoader定製,核心環境部署,驅動開發即可,在自己的基礎上去努力學習,如果還要學習更多的知識就需要慢慢積累,一點一點學習了。在學習路上,也許你會碰到有很多人說,搞什麼BootLoader,廠商做好了,搞什麼驅動,移植廠家做好的就行了。我不建議以這種思想去學習嵌入式,為什麼呢?原因很簡單,廠家提供的BootLoader是誰做的,廠家提供的驅動又是誰做的,肯定是人啊!既然是人做的,我們就有學習的必要,那些人為什麼不能是我們呢?我們搞微控制器的,本來就對底層程式碼有著濃厚的興趣,學習BootLoader開發,驅動開發,與我們當初學的微控制器和專業密切相關,所以如果你原來是搞微控制器的,就不要聽一些人說什麼別人做好了之類的話,什麼別人都做好了,要你幹什麼?相反的,如果你是學計算機的,不理解暫存器如何配置,不理解驅動如何開發,看不懂電路圖,那自然而然的就順應了廠商都給你做好了這句話。所以我還是覺得,當初搞微控制器的應該繼續搞底層開發,搞計算機的應該接著搞軟體。當然自己能力大,也可以都學習,都是可以的,根據自己情況定為好自己的學習方向是很重要的。

學習嵌入式的建議

       我這裡講的建議,是基於微控制器的進階之路,如果你是搞計算機的,那麼請私信我,或者繞道。在Windows下開發微控制器程式用的都是IDE整合開發環境像keil啦,IAR啦 emIDE啦,這些軟體幫你做好了編譯連結很多細節的部分,而把環境搬到Linux系統下,就要自己搭建GCC編譯環境,GDB除錯環境,還要自己搭建交叉編譯環境等等!而linux系統下的軟體還有程式對版本依賴很強,換個不同版本的linux可能又會有很多外掛要裝,中間會出現各種問題。所以我建議學習嵌入式linux系統時,儘量使用提供給你開發板的依賴系統版本。
       基礎知識打牢固,一點一點學習,Makefile基本語法,必須要會簡單的專案管理,這裡推薦查閱《GNU Make》或者《跟我一起學Makefile》,還有shell命令,也要掌握基本常用的, 會編寫簡單的shell指令碼程式設計。
       學習linux裝置驅動的朋友,我推薦宋寶華的《linux裝置驅動開發詳解》,其餘的用到什麼就去網上找就行了。

嵌入式linux的學習框架

       這裡我的學習路線是這樣的,如果學習頂層應用的朋友,學習完系統可以學習OpenCV或者openwrt之類的這些我在這裡不討論。關於底層的學習框架,我已經畫的很明顯了,所以基礎打好,一點一點來,一定能攻破難關,加油吧!朋友

討論群聊:群聊連結    群號:667039215