嵌入式學習路線
現在學習嵌入式開發的朋友是越來越多,人多起來了總有一些朋友在學習思路總是出現一些問題,今天我作為一個資深的一瓶子不滿半瓶子晃蕩的嵌入式工程師,來給大家把我的嵌入式學習路線分享出來,希望學習過程中不要迷茫。
首先想要學習嵌入式要先了解嵌入式他到底是個什么樣的技術。
嵌入式系統(Embedded system),是一種“完全嵌入受控器件內部,為特定應用而設計的專用計算機系統”,根據英國電氣工程師協會( U.K. Institution of Electrical Engineer)的定義,嵌入式系統為控制、監視或輔助設備、機器或用于工廠運作的設備。與個人計算機這樣的通用計算機系統不同,嵌入式系統通常執行的是帶有特定要求的預先定義的任務。由于嵌入式系統只針對一項特殊的任務,設計人員能夠對它進行優化,減小尺寸降低成本。嵌入式系統通常進行大量生產,所以單個的成本節約,能夠隨著產量進行成百上千的放大。
接下來我們來看下關于嵌入式的一個學習路線
嵌入式IC
嵌入式,其實這個概念其實很簡單也很復雜,說起來很矛盾,但事實如此。簡單是說,嵌入式就是一個針對特定功能的計算機系統,系統可大可小,功能可定制。理解起來像ATM機器、手持PDA、機器人、無人機。但說復雜的是嵌入式領域太雜,不管具體怎么劃分的,從我工作至今所了解的。嵌入式硬件工程師、嵌入式軟件工程師、嵌入式系統工程師、嵌入式驅動工程師等等。
不管這些職位是否正確與合理,但市場上就是存在,為什么傳統行業的職位都要冠上“嵌入式”三個字?硬件工程師、軟件工程師、內核工程師、驅動工程師不好嗎?
個人理解許多職務加上嵌入式,大概是覺得既然是你是做嵌入式的,那必然這些領域都要熟悉,你嵌入式硬件工程師必然要會軟件編程了,你嵌入式軟件工程師必然會電路設計,最基本的原理圖必須能看懂吧。
電路原理圖
學習嵌入式能做什么?
峰回路轉,那么我先說一下學習嵌入式能干啥?先說人才市場,你可以做單片機開發基本的51、avr、stm32(雖說ARM-M核,但還是覺得單片機貼切),還可以做ARM開發、Linux C開發、Linux內核開發、Linux驅動開發等等,其中要細分還能分出更多。當然更多人認為后四個才是真正嵌入式。
既然嵌入式路子這么多,那么不幸的是,這些也是你要學的。
嵌入式工程師
要不要學習嵌入式?
要不要學?最重要的是“興趣”、“興趣”、“興趣”,重要的事情說三遍,想學嵌入式一定是要對這個感興趣,不然那就是無趣的,相反的話那就是一條探險之路,學完讓你擁有前所未有的成就感。如果奔著高薪offer的話,勸你換條路,畢竟后悔學的不在少數。因為嵌入式門檻高,薪水雖說不低,但對于你學習的知識。和其他行業不能比。如IOS、JAVA、PHP等等,這些都可以速成,4個月0基礎上崗不是太大問題。
二進制代碼
基本學習路線
首先C語言編程-》電路基礎-》高級C語言編程-》數字電路基礎-》匯編原理-》單片機C語言編程-》模擬電路基礎-》Linux 操作系統-》數據結構-》電路PCB設計-》Linux C程序設計-》ARM開發-》Linux C高級編程-》Linux內核開發-》Linux驅動開發。
以上是傳統學習方法,毫無疑問這是極其耗費時間的一個路子,本人也是這么過來的。但對于在職的人來說就有點尷尬了。那么下面這個路子是適合在職人員學習。
ubuntu操作系統
速成方法
首先你可能有一定的編程基礎了,或者了解這個行業。那么你花上一兩天把C語言看一遍,接著買一個開發板(看你未來發展方向選擇),一般開發板自帶歷程很多,那么就花一陣子時間把這個開發板玩透徹,可以在其基礎上制作一些有你想法的系統。然后在你電腦裝一個Linux操作系統,一般UBUNTU就可以。買一本Linux C高級編程的書。在Linux平臺練習。最后買一個ARM開發板,此時你已經了解Linux編程了,那么順便了解一下交叉編譯,把之前的程序放到ARM開發板里跑一跑。到這算是入門開始。剩下的就是邊干邊學。實踐出真知。
嵌入式開發板
一些領悟
其實學習嵌入式入門后的學習并不難,因為你會對他很感興趣。最重要的是實踐。正所謂,知而不行,是為不知;行而不知,可以致知。最后祝大家學習愉快!