相信很多初學者都有這樣的疑問:我想學嵌入式,但是應該怎樣起步呢?俗話說的好,一個好的計劃往往能讓你取得更高的效率。因此,我作為過來人,就說一說我的學習流程。當然,只能供大家一個參考,沒有最好的學習方法,只有更好的學習方法。當然,我也很希望我這篇博文能夠協助到一些初學者,讓他們也給自己定下一個適合自己的學習方法。。
嵌入式學習流程圖
聲明:
在進行該學習計劃前我已預設你也基本掌握了C語言,已入門單片機,對數字電路和類比電路都有一定瞭解並且能看懂電路圖
Linux基礎學習:
學習目的:通過該階段學習,主要學會如何安裝Linux,終端使用,VI使用,學會配置Linux系統的網路,掌握常用命令,學會shell編程,瞭解Linux的檔案組織圖,對Linux工作原理有一定瞭解
參考書目:《鳥哥的私房菜-Linux基礎篇》相關內容
使用工具:Vm6.5 Fedora10.0
Linux c編程
學習目的:通過該階段的學習,主要學會在Linux字元介面下用gcc進行編程及如何使用gdb進行程式調試,學會Linux c的檔案操作,進線程編程,網路編程及Makefile檔案的編寫
參考書目:《Linux c語言編程一站式學習》《Linux c編程指南》
《How to write Makefile》
參考視頻:天嵌開發板配套光碟片之中嵌視頻1-20課
國嵌視頻:第2階段(Linux應用程式設計)
使用工具:編譯工具-gcc,調試工具-gdb,編程工具-vi
ARM硬體編程:
通過該階段的學習知道如何使用Keil4進行2440的裸機編程,瞭解ARM的體繫結構及彙編
參考書目:《ARM嵌入式體繫結構與編程》《s3c2440 datasheet》
《嵌入式Linux應用開發完全手冊》第二篇
參考視頻:韋東山視頻1-8課
使用工具:Jlink s3c2440開發板
使用軟體:Keil4 SERRG
嵌入式環境搭建:
通過該階段的學習主要是知道如何在linux下安裝軟體包,如何搭建Samba,Ftp,Nfs伺服器,如何安裝arm-linux-gcc這個編譯軟體。Windows和linux如何通過samba伺服器共用檔案以及Linux和Linux之間如何通過nfs共用檔案
參考書目:《鳥哥的私房菜-Linux基礎篇》相關內容,
系統移植:
通過該階段學習能夠初步理解什麼是bootloader,什麼是核心,什麼是檔案系統並且能移植一個系統在2440開發板上成功運行,第一步移植內容為bootloader(u-boot)移植,第二步移植內容為核心移植,第三步移植內容為檔案系統移植。
參考書目:《嵌入式Linux應用開發完全手冊》第三篇
天嵌配套光碟片之《天嵌科技出品-Linux移植》
參考視頻:《嵌入式Linux應用開發完全手冊》配套視頻9-11課
使用軟體:arm-linux-gcc
驅動開發:
通過該階段的學習大家能初步瞭解Linux驅動開發的步驟,瞭解Linux驅動程式的基本架構並且能成功移植幾個最常用驅動程式
參考書目:《嵌入式Linux應用開發完全手冊》第四篇,《Linux裝置驅動程式》
參考視頻:《嵌入式Linux應用開發完全手冊》配套視頻第12課,國嵌視頻
備忘:由於本人未曾涉及應用程式開發和深入研究過核心,最後兩部分學習內容不做計劃
入門嵌入式必學課程:
軟體類(驅動方向):高等數學,線性代數,電路分析基礎,類比電路,數字電路,單片機原理及應用,電腦群組成原理,C語言,資料結構,作業系統,電腦網路原理。
硬體類(畫板方向):高等數學,線性代數,電路分析基礎,類比電路,數字電路,電磁場與電磁波,高頻電路,電磁相容與PCB設計,高速數字電路設計,電腦群組成原理,單片機原理及應用。
推薦書籍:
軟體類(驅動方向):《ARM體繫結構與編程》,《鳥哥的私房菜-Linux基礎篇》,《嵌入式Linux應用開發完全手冊》,《Linux裝置驅動程式》,《深入理解linux核心》
硬體類:《protel99se多層電路板設計與製作》,《電磁相容與PCB設計》,《高速數字電路設計》