嵌入式技術是各種電子產品的核心技術,也是工業4.0、遠端醫療、3d列印等新興產業的核心技術,具有廣闊的發展前景。很多計算機、電子資訊類專業的學生都想把嵌入式開發作為自己的職業目標,但是因為嵌入式涉及的知識太多,太雜,太廣,很多嵌入式初學者陷入嵌入式知識的海洋中,東學一點,西學一點,找不到學習的方向。 作為過來人,給大家談談正確的嵌入式學習路線,供各位嵌入式初學者參考,希望對大家有所幫助。
嵌入式工程師需要掌握的內容非常廣泛,主要包括嵌入式軟體、嵌入式硬體、以及相關行業、產品的專業知識。作為嵌入式初學者,我們不可能,也沒有那麼多精力把所有的知識到搞的很精通,我們要學會抓住重點,學會取捨,達到一通百通,事半功倍的學習效果。
嵌入式硬體工程師主要工作職責是為產品設計硬體電路原理圖,設計硬體pcb板,選擇合適的元器件,焊接除錯硬體電路板,保證硬體電路板的可靠性、穩定性和抗干擾能力。因為現在積體電路發展迅速,大部分積體電路廠商都會提供參考電路,所以硬體電路原理圖的設計相對來說比較簡單,硬體工程師工作的含金量主要體現在產品的可靠性和穩定性設計、以及電磁相容設計,這才是硬體設計工程師的含金量所在。 乙個資深的嵌入式硬體工程師年薪都在10萬~ 30萬之間。
要成為乙個資深的嵌入式工程師相當難,一方面要有非常紮實的理論知識,同時也要有相當的那種大型的、高頻cpu、多層pcb板的設計經驗。嵌入式硬體工程師要學的課程主要有模擬電路設計、數位電路設計、電磁波理論等。熟悉常用的放大電路、濾波電路、電源電路設計和分析。
嵌入式軟體工程師的職責主要是根據產品的功能需求設計好軟體,讓硬體工作起來。嵌入式電子產品硬體部分,大部分都是相同的,核心的都是由cpu、ram和flash 幾大部分組成,而軟體就千差萬別了。產品的具體功能都是由軟體來實現的,一般來講乙個產品的實現,軟體設計的工作量是硬體設計的4~5倍。所以一般情況下,乙個公司的軟體工程師數量是硬體硬體工程師的4~5倍,嵌入式軟體工程師需求比硬體工程師大很多,同時跟硬體工程師相比,嵌入式軟體工程師學起來相對容易些,所以這裡我重點和大家談一下嵌入式軟體工程的學習路線。
1、打好嵌入式軟體程式設計的基礎
這一階段重點打好嵌入式軟體程式設計的基礎,包括學習linux系統的基本應用,linux的常用命令、c語言程式設計基礎、常用的資料結構。
特別是c語言中對指標的理解和應用。這一階段的主要目的是學習程式語言、開發環境、和培養自己的程式設計思維,為進一步學習嵌入式開發打下良好的基礎。 這一階段推薦的嵌入式學習書籍如下:《c程式語言》,《c語言核心技術》,《資料結構與演算法分析--c語言描述》,《c和指標》,《c陷阱與缺陷》,《c++ primer》
2、學習arm體系結構程式設計
這一階段才是真正的嵌入式程式設計,首先我們要選擇一款嵌入式cpu和一款嵌入式開發平台,目前arm 嵌入式cpu應用最廣泛,這一階段重點是學習嵌入式cpu的裸機程式設計,熟悉中斷、定時器、串列埠、nand flash、網路控制器、lcd屏、觸控螢幕等常用嵌入式外圍裝置的硬體工作原理,以及如何使用c語言來程式設計、控制這些硬體。這一階段除了要學習對硬體程式設計之外,還需要學習嵌入式硬體的知識,但是對於嵌入式軟體工程師來講,重點是學習硬體的工作原理,在掌握硬體工作原理的基礎上,對硬體進行程式設計控制。這和硬體工程師學習的側重點有所不同。這一階段對應的學校的課程主要包括模擬電路、數位電路、微機原理和微控制器。這一階段重點是要看cpu的晶元手冊,大部分的參考書也是對晶元手冊的翻譯。推薦的參考書籍如下:《arm嵌入式系統開發--
軟體設計與優化》,《arm處理器開發詳解 基於arm cortex-a8處理器的開發設計》
3、學習嵌入式系統的構建
這一階段主要學習帶有作業系統的嵌入式系統的構建,包括系統的啟動流程、bootloader的工作流程、uboot的編譯、裁剪與移植、嵌入式linux核心的裁剪、移植與編譯,嵌入式根檔案系統的定製、bootloader、核心和根檔案系統的燒寫。 這一階段的主要目的是掌握帶有作業系統的嵌入式系統的構建和燒寫過程,以及對嵌入式系統軟體的總體構成有個整體認識,為我們接下來學習嵌入式應用和驅動開發打下堅實的基礎。 這一階段推薦的書籍如下:《構建嵌入式linux核心軟體系統實戰》
4、學習嵌入式linux應用程式開發
這一階段主要學習上層的嵌入式linux應用程式開發,包括基於linux多程序、多執行緒、網路、檔案與目錄和qt程式設計。掌握嵌入式linux環境下應用程式開發技術。這一階段推薦的書籍有: 《unix環境高階程式設計》, 《unix網路程式設計》,《qt creator快速入門》, 《精通qt4程式設計》
5、學習嵌入式linux驅動程式開發
這一階段主要學習底層嵌入式linux裝置驅動程式開發設計,包括常用的字元裝置驅動、塊裝置驅動、lcd裝置驅動、觸控螢幕裝置驅動以及驅動程式開發中的核心技術。這一階段推薦的參考書籍有:《linux裝置驅動程式》,《linux裝置驅動開發詳解》
6、完成乙個綜合專案
嵌入式技術關鍵在於理論和實踐的結合,要能夠學以致用,完成了以上的所有階段的知識點學習後,到底有沒有學會,會不會用,能不能應用所學知識來解決實際開發中的問題,我們需要來完成乙個綜合的嵌入式實訓專案,例如: 基於嵌入式linux平台實現的飛行器、 基於嵌入式linux平台實現的智慧型機械人等,這些專案都綜合應用了嵌入式開發當中的應用,驅動和qt開發技術。
以上就是我建議的比較系統的嵌入式學習路線。系統學習並能靈活應用以上知識後,嵌入式基本上就算入門了,具備企業專案的嵌入式研發能力了,這時候去應聘企業的嵌入式研發工程師崗位就不會有什麼問題了。
嵌入式學習路線
1 學習 linux系統安裝 常用命令 應用程式安裝。2 學習 linux 下的 c 程式設計 這本書必學 unix 環境高階程式設計 網路程式設計 rechard stevens 寫的,c 高手大都學習過 c 和指標 c 缺陷與陷阱 高質量c c 程式設計指南 c 專家程式設計 the c pro...
嵌入式學習路線
5.總結 嵌入式技術是各種電子產品的核心技術,也是工業4.0 遠端醫療 3d列印等新興產業的核心技術,具有廣闊的發展前景。很多計算機 電子資訊類專業的學生都想把嵌入式開發作為自己的職業目標,但是因為嵌入式涉及的知識太多,太雜,太廣,很多嵌入式初學者陷入嵌入式知識的海洋中,東學一點,西學一點,找不到學...
嵌入式學習路線 目標
底層驅動的話 linux裝置驅動開發詳解 宋寶華 arm體系結構與程式設計 要是應用的話 unix高階環境程式設計 寒假看了 linux shell程式設計 linux作業系統 對linux有了進一步的理解 最近在看 李雲 的 專業嵌入式軟體開發 李雲的csdn blog 嵌入式linux上的c語言...