學習嵌入式linux計劃

姓名:劉偉 學號:17103223402

【嵌牛導讀】

學習嵌入式linux是一個復雜而漫長的過程,把握好方向很重要,本文給我們闡述了需要學習的知識點,使我們學習過程少走彎路

【嵌牛鼻子】嵌入式linux學習計劃

【嵌牛提問】嵌入式linux學習的基本路線是什么?

【嵌牛正文】

俗話說萬事開頭難,剛開始的時候,你是否根本就不知如何開始,上網查資料被一堆堆新名詞搞的找不到北,去圖書館看書也是找不到方向?又是arm,又是linux,又是uboot頭都大了,不知道自己究竟從哪里開始?

下面就跟著我學習設計嵌入式工程師的修煉日記吧!

簡單說,從arm基礎知識到裸機編程,從uCOSII到linux,從linux基礎的命令到shell編程,從u-boot到文件系統,最后到現在的linux驅動程序。從簡單到復雜,從基礎到高級基本是按照這個來的。

1

第一階段:嵌入式硬件基礎以及裸機程序開發

1.知識點:

? (1) arm處理器基礎知識,工作模式,寄存器,中斷與異常,尋址方式,匯編指令集

? (2) 熟悉ADS集成開發環境為裸機程序開發做準備

? (3) 裸機程序開發:LED,串口,LCD,觸摸屏,NANDFLASH,IIC,IIS,DMA等

2.過程以及目的:

這一階段的學習主要是熟悉嵌入式的硬件,為以后的linux驅動打基礎。因為嵌入式主打處理器架構就是arm,所以針對arm來學習。首先學習基礎知識,然后通過在開發板上的練習來掌握。這一階段所用的資料主要有:

? ? (1) 《ARM嵌入式基礎教程》 這本書主要看arm基礎的知識。這本書是講arm7的,但是arm的基礎的指令集以及模型是一樣的。

? ? (2) 《嵌入式linux應用開發完全手冊》 這本書主要看介紹s3c2410接口模塊的部分,實驗裸機的時候需要硬件的知識。

3.所用時間:大約兩個月。

2

第二階段:linux基礎以及shell編程

1.知識點:

(1) linux基礎知識

(2) linux安裝與使用

(3) linux常用命令

(4) vi使用

(5) 簡單shell編程

2.過程以及目的:?

這一階段的學習主要是熟悉linux,會安裝linux,了解Linux的基礎知識,會簡單的操作。剛開始安裝linux還是在虛擬機上安裝比較好,安裝開發板推薦的Fedora9,按照開發板配套的說明一步一步的安裝,然后在上面練習各種命令。

這一階段主要要看《鳥哥的linux私房菜基礎學習篇》,這個書有電子版,也不用全看,主要是看前面對Linux基礎知識的描述,以及基本的命令。命令只是了解,那么多記也記不下來,以后用時再查閱。這一階段主要目的是對linux有一個整體的了解,最起碼要知道基礎的一些概念,還有會一些基本的操作。

3.時間:大約一個月。

3

第三階段:linux應用程序基礎開發

1.知識點:

? (1) GCC,GDB,Make 基礎

? (2) 文件,時間編程

? (3) 多進程,多線程程序設計

? (4) 進程間通信

2. 過程以及目的:

這一階段的學習主要是了解linux應用程序的編寫調試,也都是基礎知識,主要目的還是熟悉Linux。熟悉其中應用程序有關的一些概念,為以后打基礎。這一階段主要看了《嵌入式Linux應用程序開發標準教程》,這本書對linux上應用程序編寫講的很詳細,而且不是很難,那本最經典的《UNIX高級環境編程》講的比較深入,剛開始看有點難,萬事開頭難還是從簡單的開始。學習應用編程以后也不一定搞應用,從事嵌入式linux行業的人,這是必須的基本技能。

3. 時間:大約一個月

4

第四階段:uCOSII操作系統學習

1.知識點:

? (1)嵌入式實時操作系統的概念以及基礎知識

? (2)uCOSII操作系統源代碼閱讀

? (3)移植uCOSII

? (4)uCOSII操作系統應用編程

2.過程以及目的:

這一階段的學習主要是了解嵌入式實時操作系統的基礎,因為uCOSII是開源的,可以研究他的代碼。對操作系統的任務調度以及資源管理有直觀的認識。并且閱讀他的源碼能夠提高自己的編程能力,規范自己的編程習慣。雖然提供了uCOSII的移植版本,但是自己實際移植一次能夠有更深刻的認識。

這個操作系統比較簡單,所以應用程序的編寫就很重要,在上面實現幾個功能還是有助于對系統的理解。這一階段主要看的就是邵貝貝翻譯的uCOSII作者所著的《嵌入式實時操作系統uCOS-II》,里面對操作系統的源碼有詳細的分析。看透這本書后就會對uCOSII有一個深入的了解。這一階段的主要目的是了解操作系統的知識,比如任務調度,并發與競態。還有一個目的就是鍛煉自己的編程能力。因為如果看介紹操作系統原理的書會比較枯燥,我感覺閱讀一個操作系統的源碼比看一千本介紹原理的書來的實惠的多。

3.時間:大約一個月

5

第五階段:bootloader學習

1.知識點:

? (1)bootloader基礎知識

? (2)u-boot基礎與命令

? (3)u-boot移植

2.過程以及目的:

bootloader是一個linux嵌入式系統的不可缺少的部分。這一階段的學習主要是了解bootloader的作用,以及通用bootloader---u-boot的知識,剛開始學會用u-boot的各種命令。然后分析u-boot的啟動流程和Makefile以及u-boot加載內核過程。然后按照別人的步驟一步一步的移植內核,多做幾遍以熟悉這個過程。然后在熟悉整個u-boot的基礎上,獨自完成u-boot的移植,并添加自己修改。這一階段主要參考資料就是光盤自帶的u-boot移植參考手冊和一些網絡上的文章。個人感覺u-boot移植這方面的網絡資源相當的豐富。

3.時間:大約一個月

6

第六階段:文件系統學習

1.知識點:

? (1)linux文件系統的種類與作用

? (2)熟悉busybox的使用,以及linux系統啟動過程

? (3)構建自己的根文件系統

2.過程以及目的:

文件系統也是一個linux嵌入式系統不可缺少的部分,這一階段的學習主要是熟悉根文件系統的作用以及基礎知識,并且自己構建自己的根文件系統。這一階段所看的書有《構建嵌入式linux系統》,這本書詳細講解了嵌入式linux的所有元素,包括文件系統。這里主要看文件系統這塊。我還參考了網上的一些文章。這里首先要熟悉基本的一些Linux文件系統,然后學習busybox的使用以及linux的啟動過程,最后參考別人的一步一步來構建自己的文件系統。

3.時間:大約半個月

7

第七階段:嵌入式圖形界面GUI

1.知識點:

? (1)嵌入式圖形界面GUI的種類與特點

? (2)minigui 基礎知識

? (3)minigui 移植與程序編寫

2.過程以及目的:

嵌入式圖形界面GUI作為嵌入式上層系統的東西也是需要了解的,這里我只學習了minigui,因為QT是需要C++的知識,而我沒有學過C++,所以只看了minigui的相關知識。這個階段的目的主要是熟悉一下嵌入式圖形接界面的開發流程,因為以后也不打算搞應用。

只是熟悉一下嵌入式組成的一些方面。這里只要將minigui移植到板子上能跑hello程序就可以了。其他的也不用深入了解。通過移植minigui對linux上運行的軟件以及函數庫,程序運行原理,編譯器都會有一個新的認識。

3 時間:大約半個月

8

第八階段:linux驅動程序基礎知識

1.知識點:

(1)看完《LINUX設備驅動程序》除了網絡驅動程序,tty驅動程序,塊驅動程序這幾章不看,其他的都要看完。

(2)實驗書中所有例程,要仔細分析結果,理解相關知識點。

(3)就算是例子,程序編程習慣一定要統一,文檔一定要規范。

2.過程以及目的

這一階段的目的就是為了linux驅動打基礎,《LINUX設備驅動程序》(第三版)也就是大家所說的ldd3,是最經典的一本講linux驅動的書,一定要看而且多看幾遍。第一次看很難看進去,感覺講的晦澀難懂。但是多看幾遍就會由豁然開朗的感覺。看完了書,然后就是實驗書中的例子。

3.時間:大約兩個月

9

第九階段:linux驅動實戰

1. 知識點:

? (1)通過led驅動理解雜項字符設備的注冊與實現,并掌握MINI2440的IO操作過程。

? (2)通過button驅動程序掌握基本的中斷實現方法。

? (3)掌握PWM驅動程序。

? (4)通過觸摸屏驅動程序掌握input設備模型的實現。

? (5)掌握ADC驅動程序的設計

? (6)掌握看門狗,rtc驅動程序的設計

? (7)通過LCD驅動程序分析platform設備模型的實現。

2.過程以及目的:

這一階段的學習主要是掌握實際的簡單的驅動程序的實現與ldd3中的差別,并且分析一些linux子系統。通過這一階段的學習,能夠對linux驅動程序有更深入的認識。并且鍛煉自己閱讀海量代碼的能力。這一階段主要工作就是看代碼,實驗,看代碼,實驗,通過現象學習知識。

3. 時間:大約一個月

10

第十階段:深入理解linux內核與USB子系統的研究

?前九個階段完成了,自己感覺嵌入式Linux應該應該算是入門了。搞驅動的人對內核應該有一定的了解,所以《深入理解Linux內核》還是必須的。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,908評論 6 541
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,324評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,018評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,675評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,417評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,783評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,779評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,960評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,522評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,267評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,471評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,009評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,698評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,099評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,386評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,204評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,436評論 2 378

推薦閱讀更多精彩內容