一:做任何事情都有一個循序漸進的過程,學習嵌入式linux也一樣。在有了一定的嵌入式開發基礎后,學習嵌入式linux開發比較適合的切入點是從嵌入式linux應用程序開發開始,即暫時先不去關心嵌入式硬件平臺,不去關心linux的底層驅動,先把精力集中在現有的嵌入式linux平臺上進行嵌入式linux應用程序設計開發。學習嵌入式linux開發絕不是看看書就可以學好的,需要多實踐,編程調試;因為嵌入式開發不同于普通的基于PC機或服務器的應用程序開發,嵌入式開發的應用程序是要燒寫到嵌入式板卡或開發板上運行的,所以首先你要給自己購買一塊開發板,現在普遍流行的嵌入式開發板都是基于三星的ARM9 CPUS3C2440,性價比極高,在這里我推薦使用飛凌公司FL-2440 高性價比ARM9學習開發板,開發板資源豐富,穩定,同時配有大量的實驗源碼,視頻教程和實驗指導書。有了開發板后,先后開始學習嵌入式linux開發環境搭建、嵌入式linux開發模型、linux內核移植和文件系統、嵌入式linux應用程序移植、嵌入式linux多進程,多線程應用程序設計、嵌入式linux網絡編程,如果對嵌入式數據庫或圖形軟件開發有興趣的,可以進一步學習嵌入式linux數據庫開發或基于QT的嵌入式linux圖形應用軟件設計。每學一章節都要通過相關實驗來來驗證你從書上學到的東西,同時提高自己編寫代碼,調試程序的能力。這個過程根據不同學員的基礎不同,大概要花上1 ~ 2個月時間。學完這些課程后,你就有了再現有的嵌入式linux平臺上進行應用程式設計開發的能力,到一些嵌入式軟件公司去,能夠勝任在現有的嵌入式linux平臺上進行上層的應用程序開發工作。但是目前你還不能進行嵌入式linux系統和驅動的開發,也就是說,你現在只能在一個已經構建好的嵌入式linux平臺上進行應用程序開發,而自己還沒有能力根據實際需要去重新構建一個嵌入式linux平臺。要讓自己有能力根據實際需要重新構建一個嵌入式linux軟硬件平臺,這時候就需要進行下一階段的學習了,即嵌入式linux系統和驅動開發。二、嵌入式Linux系統和驅動開發 有了嵌入式linux平臺上開發應用程序的基礎,你已經對linux的功能、linux對應用程序提供的接口和系統調用有了一定的了解:知道如何利用linux提供的功能來進行應用程序開發,知道如何來使用設備驅動來進行應用程序設計,有了這些知識后,你就可以更深入的去學習Linux系統原理和基于Linux驅動的開發,Linux內核的裁剪,文件系統構,bootloader等等底層的知識了。想要更深入學習嵌入式Linux系統和驅動開發,要學的內容非常多包括計算機軟件、硬件、操作系統知識。這時候你可以參照以下的學習思路:因為嵌入式Linux系統和驅動的開發,和底層硬件聯系非常緊密,所以首先我們從學習了解嵌入式硬件開始,包括:ARM體系架構、S3C2440微處理器接口設計、時鐘系統、LCD屏接口、存儲控制器及系統的存儲空間分配、NAND FLASH接口和NOR FLASH接口等。對嵌入式系統硬件有了一定的了解后,接下來就可以開始學習bootloader了,理解bootloader的概念,功能,和原理,重點掌握U-BOOT的使用和移植 。 接下來就開始學習嵌入式linux內核機制,分析嵌入式Linux源碼組成、內核的模塊機制、內核進程管理、內存管理機制、linux的中斷系統、Linux內核的移植等。有了內核的基礎,就可以學習嵌入式Linux設備驅動開發了,重點掌握字符設備驅動開發,LCD屏設備驅動開發、觸摸屏設備驅動開發、USB設備驅動開發,網卡設備驅動開發。學完這些知識點并通過相關實驗驗證后,嵌入式Linux系統和驅動的開發就算掌握了差不多了,能夠勝任絕大部分基于linux平臺的驅動開發工作了。學完這些知識點,根據學員的不同情況,一般需要花三個月到半年時間。通過這一階段的學習,你在嵌入式Linux開發領域已經算是有了一定的功底,已經不再被人稱為菜鳥了,已經進入嵌入式linux開發高手行列了。三、更上一層樓 深入理解了嵌入式內核和驅動開發,這時候寫個什么驅動對你已經沒有什么問題了,開發過程中一些基本問題都難不倒你了。這是你可能想優化一下系統的性能,比如實時性,提高系統的啟動速度,或者優化系統的內存管理機制,要達到修改內核核心機制的境界,你就需要去深入去研讀linux內核源碼了,參考《linux源碼深度分析》、《linux情景分析等》等linux源碼分析的書籍,深入理解linux各部分的實現機制和原理,以及可能存在的問題, 對嵌入式系統感興趣或想學習嵌入式的朋友可以加Q交流
|