嵌入式技術學習路線

         嵌入式技術是各類電子產品的核心技術,也是工業4.0、遠程醫療、3D打印等新興產業的核心技術,具備廣闊的發展前景。不少計算機、電子信息類專業的學生都想把嵌入式開發做爲本身的職業目標,可是由於嵌入式涉及的知識太多,太雜,太廣,不少嵌入式初學者陷入嵌入式知識的海洋中,東學一點,西學一點,找不到學習的方向。 做爲過來人,給你們談談正確的嵌入式學習路線,供各位嵌入式初學者參考,但願對你們有所幫助。

嵌入式工程師須要掌握的內容很是普遍,主要包括嵌入式軟件、嵌入式硬件、以及相關行業、產品的專業知識。做爲嵌入式初學者,咱們不可能,也沒有那麼多精力把全部的知識到搞的很精通,咱們要學會抓住重點,學會取捨,達到一通百通,事半功倍的學習效果。算法

首先嵌入式技術主要分爲嵌入式軟件和嵌入式硬件2大方向。 編程

嵌入式硬件方向 網絡

嵌入式硬件工程師主要工做職責是爲產品設計硬件電路原理圖,設計硬件PCB板,選擇合適的元器件,焊接調試硬件電路板,保證硬件電路板的可靠性、穩定性和抗干擾能力。由於如今集成電路發展迅速,大部分集成電路廠商都會提供參考電路,因此硬件電路原理圖的設計相對來講比較簡單,硬件工程師工做的含金量主要體如今產品的可靠性和穩定性設計、以及電磁兼容設計,這纔是硬件設計工程師的含金量所在。 一個資深的嵌入式硬件工程師年薪都在10萬~ 30萬之間。 數據結構

要成爲一個資深的嵌入式工程師至關難,一方面要有很是紮實的理論知識,同時也要有至關的那種大型的、高頻CPU、多層PCB板的設計經驗。嵌入式硬件工程師要學的課程主要有模擬電路設計、數字電路設計、電磁波理論等。熟悉經常使用的放大電路、濾波電路、電源電路設計和分析。 多線程

嵌入式軟件方向 編程語言

嵌入式軟件工程師的職責主要是根據產品的功能需求設計好軟件,讓硬件工做起來。嵌入式電子產品硬件部分,大部分都是相同的,核心的都是由CPU、RAM和FLASH 幾大部分組成,而軟件就千差萬別了。產品的具體功能都是由軟件來實現的,通常來說一個產品的實現,軟件設計的工做量是硬件設計的4~5倍。因此通常狀況下,一個公司的軟件工程師數量是硬件硬件工程師的4~5倍,嵌入式軟件工程師需求比硬件工程師大不少,同時跟硬件工程師相比,嵌入式軟件工程師學起來相對容易些,因此這裏我重點和你們談一下嵌入式軟件工程的學習路線。學習

嵌入式軟件工程師學習路線 優化

一、打好嵌入式軟件編程的基礎 spa

這一階段重點打好嵌入式軟件編程的基礎,包括學習Linux系統的基本應用,Linux的經常使用命令、C語言編程基礎、經常使用的數據結構。操作系統

特別是C語言中對指針的理解和應用。這一階段的主要目的是學習編程語言、開發環境、和培養本身的編程思惟,爲進一步學習嵌入式開發打下良好的基礎。 這一階段推薦的嵌入式學習書籍以下:《C程序設計語言》,《C語言核心技術》,《數據結構與算法分析--C語言描述》,《C和指針》,《C陷阱與缺陷》,《C++ Primer》 

wpsAF07.tmp

二、學習ARM體系結構編程 

這一階段纔是真正的嵌入式編程,首先咱們要選擇一款嵌入式CPU和一款嵌入式開發平臺,目前ARM 嵌入式CPU應用最普遍,這一階段重點是學習嵌入式CPU的裸機編程,熟悉中斷、定時器、串口、NAND FLASH、網絡控制器、LCD屏、觸摸屏等經常使用嵌入式外圍設備的硬件工做原理以及如何使用C語言來編程、控制這些硬件。這一階段除了要學習對硬件編程以外,還須要學習嵌入式硬件的知識,可是對於嵌入式軟件工程師來說,重點是學習硬件的工做原理,在掌握硬件工做原理的基礎上,對硬件進行編程控制。這和硬件工程師學習的側重點有所不一樣。這一階段對應的學校的課程主要包括模擬電路、數字電路、微機原理和單片機這一階段重點是要看CPU的芯片手冊,大部分的參考書也是對芯片手冊的翻譯。推薦的參考書籍以下:《ARM嵌入式系統開發--

軟件設計與優化》,《ARM處理器開發詳解 基於ARM Cortex-A8處理器的開發設計

wpsAF08.tmp

三、學習嵌入式系統的構建 

這一階段主要學習帶有操做系統的嵌入式系統的構建,包括系統的啓動流程、Bootloader的工做流程、UBOOT的編譯、裁剪與移植、嵌入式Linux內核的裁剪、移植與編譯,嵌入式根文件系統的定製、BootLoader、內核和根文件系統的燒寫。 這一階段的主要目的是掌握帶有操做系統的嵌入式系統的構建和燒寫過程,以及對嵌入式系統軟件的整體構成有個總體認識,爲咱們接下來學習嵌入式應用和驅動開發打下堅實的基礎。 這一階段推薦的書籍以下:《構建嵌入式Linux核心軟件系統實戰

wpsAF09.tmp
四、學習嵌入式Linux應用程序開發 

這一階段主要學習上層的嵌入式Linux應用程序開發,包括基於Linux多進程、多線程、網絡、文件與目錄和QT編程。掌握嵌入式Linux環境下應用程序開發技術。這一階段推薦的書籍有: 《UNIX環境高級編程》, 《Unix網絡編程》,《Qt Creator快速入門》, 《精通Qt4編程》

wpsAF0A.tmp

wpsAF1A.tmp
五、學習嵌入式Linux驅動程序開發 

這一階段主要學習底層嵌入式Linux設備驅動程序開發設計,包括經常使用的字符設備驅動、塊設備驅動、LCD設備驅動、觸摸屏設備驅動以及驅動程序開發中的核心技術。這一階段推薦的參考書籍有:《Linux設備驅動程序》,《Linux設備驅動開發詳解》 

wpsAF1B.tmp

六、完成一個綜合項目 

嵌入式技術關鍵在於理論和實踐的結合,要可以學以至用,完成了以上的全部階段的知識點學習後,到底有沒有學會,會不會用,能不能應用所學知識來解決實際開發中的問題,咱們須要來完成一個綜合的嵌入式實訓項目,例如: 基於嵌入式Linux平臺實現的飛行器基於嵌入式Linux平臺實現的智能機器人等,這些項目都綜合應用了嵌入式開發當中的應用,驅動和QT開發技術

以上就是我建議的比較系統的嵌入式學習路線。系統學習並能靈活應用以上知識後,嵌入式基本上就算入門了,具有企業項目的嵌入式研發能力了,這時候去應聘企業的嵌入式研發工程師崗位就不會有什麼問題了。