嵌入式技術學習路線分享

說明

之前,嵌入式學習迷茫之際,在技術網站看到了一些文章,覺得可能會有幫助,故整理了三篇。


1、技術大牛分享嵌入式技術學習路線

原文:http://bbs.elecfans.com/jishu_613843_1_1.html

嵌入式技術是各種電子產品的核心技術,也是工業4.0、遠程醫療、3D打印等新興產業的核心技術,具有廣闊的發展前景。很多計算機、電子信息類專業的學生都想把嵌入式開發作爲自己的職業目標,但是因爲嵌入式涉及的知識太多,太雜,太廣,很多嵌入式初學者陷入嵌入式知識的海洋中,東學一點,西學一點,找不到學習的方向。 我從事嵌入式開發工作有10年,嵌入式教學工作有6年,作爲過來人,給大家談談正確的嵌入式學習路線,供各位嵌入式初學者參考,希望對大家有所幫助。

嵌入式工程師需要掌握的內容非常廣泛,主要包括嵌入式軟件、嵌入式硬件、以及相關行業、產品的專業知識。作爲嵌入式初學者,我們不可能,也沒有那麼多精力把所有的知識到搞的很精通,我要學會抓住重點,學會取捨,達到一通百通,事半功倍的學習效果。

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

嵌入式硬件方向

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

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

嵌入式軟件方向

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

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

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

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

特別是C語言中對指針的理解和應用。這一階段的主要目的是學習編程語言、開發環境、和培養自己的編程思維,爲進一步學習嵌入式開發打下良好的基礎。

2、學習ARM體系結構編程

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

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

這一階段主要學習上層的嵌入式Linux應用程序開發,包括基於Linux多進程、多線程、網絡、文件與目錄和QT編程。掌握嵌入式Linux環境下應用程序開發技術。

5、學習嵌入式Linux驅動程序開發

這一階段主要學習底層嵌入式Linux設備驅動程序開發設計,包括常用的字符設備驅動、塊設備驅動、LCD設備驅動、觸摸屏設備驅動以及驅動程序開發中的核心技術。
6、完成一個綜合項目

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

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


2、嵌入式、單片機學習書籍推薦

原文:http://bbs.elecfans.com/jishu_606691_1_1.html

Linux基礎
   1、《Linux與Unix Shell 編程指南》
   C語言基礎
   1、《C Primer Plus,5th Edition》【美】Stephen Prata著
   2、《The C Pro**ming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)著
   3、《Advanced Pro**ming in the UNIX Environment,2nd Edition》(APUE)
   4、《嵌入式Linux應用程序開發詳解》
   Linux內核
   1、《深入理解Linux內核》(第三版)
   2、《Linux內核源代碼情景分析》毛德操 胡希明著
   研發方向
   1、《UNIX Network Pro**ming》(UNP)
   2、《TCP/IP詳解》
   3、《Linux內核編程》
   4、《Linux設備驅動開發》(LDD) 
   5、《Linux高級程序設計》 楊宗德著
   硬件基礎
   1、《ARM體系結構與編程》杜春雷著
   2、S3C2410 Datasheet
   英語基礎
   1、《計算機與通信專業英語》
   系統教程
   1、《嵌入式系統――體系結構、編程與設計》
   2、《嵌入式系統――採用公開源代碼和StrongARM/Xscale處理器》毛德操 胡希明著
   3、《Building Embedded Linux Systems》   
   4、《嵌入式ARM系統原理與實例開發》 楊宗德著
   理論基礎
   1、《算法導論》
   2、《數據結構(C語言版)》
   3、《計算機組織與體系結構?性能分析》
   4、《深入理解計算機系統》【美】Randal E. Bryant David O”Hallaron著
   5、《操作系統:精髓與設計原理》
   6、《編譯原理》
   7、《數據通信與計算機網絡》
   8、《數據壓縮原理與應用》
   C語言書籍推薦
   1. The C pro**ming language 《C程序設計語言》
   2. Pointers on C 《C和指針》
   3. C traps and pitfalls 《C陷阱與缺陷》
   4. Expert C Lanuage 《專家C編程》
   5. Writing Clean Code —–Microsoft Techiniques for Developing Bug-free C Pro**s
   《編程精粹–Microsoft 編寫優質無錯C程序祕訣》
   6. Pro**ming Embedded Systems in C and C++ 《嵌入式系統編程》
   7.《C語言嵌入式系統編程修煉》
   8.《高質量C++/C編程指南》林銳
   儘可能多的編碼,要學好C,不能只注重C本身。算法,架構方式等都很重要。
如果有條件也可以參加一些實力的技術培訓機構


3、嵌入式系統工程師的十個不要

原文:http://bbs.elecfans.com/jishu_613878_1_1.html

1、不要第一句話就說:給個代碼吧!你應該想想爲什麼。當你自己想出來再參考別人的提示,你就知道自己和別人思路的差異。

2、初學者請不要看太多的書,那會誤人子弟的。先找一本好書系統的學習,很多人用了很久都是隻對部分功能熟悉而已,不繫統還是不夠的。

3、看幫助提示,不要因爲很難,而自己又是初學者所以就不看;幫助永遠是最好的參考手冊,雖然幫助的文字有時候很難看懂,或不夠直觀。

4、不要被一些專用詞彙所迷惑,最根本的是先了解最基礎的知識。

5、不要放過任何一個看上去很簡單的小問題—他們往往並不那麼簡單,或者可以引伸出很多知識點;不會舉一反三你就永遠學不會。

6、不要知道一點東西就以爲懂了,這並不能說明你會用,會用是需要實踐經驗和時間積累的。

7、不要放棄,入門並不難,難的是長期堅持實踐和不遺餘力的學習和實踐。

8、不要只看書,看再多的書是學不會用的,要多實踐,多動手。

9、不要老把時髦的技術掛在嘴邊, 把時髦的技術掛在嘴邊,還不如把基本的技術記在心裏。

10、在任何時刻都不要認爲自己手中的書已經足夠了。

發佈了43 篇原創文章 · 獲贊 19 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章