很多人在學習嵌入式的時候都會有很多疑惑,我是零基礎,可以學習嵌入式嗎,零基礎如何學嵌入式呢?我想我作為一個老前輩可以給你們做一些建議和一些學習方法。嵌入式入門他的門檻是稍微比較高的,但是不管學什么,必須堅持才是王道。
嵌入式學習該從什么上面開始入手呢?
1、c語言、數據結構 、計算機原理(包括匯編的)、編譯原理 、操作系統
首先C語言,這個是毋庸置疑的,不管是做嵌入式軟件還是硬件開發的人員,對C語言的掌握這個是必需的,特別是對于以后致力于嵌入式軟件開發的人,現在絕大部分都是用C語言,你說不掌握它可以嗎?至于如何學習C語言,我想這些基礎的知識每個人都有自己的方法,關鍵要去學習,看書也好,網上找些視頻看也好。很多人會問,C語言要學到怎么樣,我覺得這沒有標準的答案。我想至少你在明白了一些基礎的概念后,就該寫代碼了,動手才是最重要的,當你動手了,遇到問題了,再反過來學習,反過來查查課本,那時的收獲就不是你死看書能得到的。
其次,應該對操作系統有所了解,這對你對硬件和軟件的理解,絕對有很大的幫助。應該把系統的管理理解一下,比如進程、線程,系統如何來分配資源的,系統如何來管理硬件的,當然,不是看書就能把這些理解透,如果不是一時能理解,沒關系,多看看,結合以后的項目經驗,會有更好的理解的。
然后就是數據結構及一些電路方面的知識,這些都是你要掌握的,為什么要學電路方面的知識呢,我想應該知道,你是做計算機的,在做嵌入式項目的時候會有關于電路方面的東西,到時候你得需要會看電路圖這樣才能進行接下來的步驟。
所以先做以上的,別著急!要做好嵌入式工程師請遠離浮躁!雖科目眾多,不一定全學,可根據需要選修。主攻書籍:C語言,數據結構,這些是學嵌入式的基礎,當你覺得學的差不多的時候,你要去實踐做做一些題,看看自己掌握的怎么樣。
2、學習嵌入式系統,如linux或者wince下的編程,這些對以后做應用的編程很有幫助,當然,如果做手機的話,那可以學習MTK、塞班、Android等操作系統,Android是以后發展的趨勢,現在很熱門,Android也是基于linux系統封裝的,所以建議先學習下linux。
3、學習下單片機或者ARM或者MIPS,很多人說我沒有單片機的經驗,直接學ARM可以嗎?我覺得那完全沒有問題的,當然如果你學習過單片機,那最好不過了,以后學習ARM就更簡單了。學習單片機可以搞塊開發板,只提一點:先搞裸機。linux接觸越早越好,命令越熟越好,vim操作越眼花繚亂越好…
先搞裸機可以考慮51系列也未嘗不可,可買個板子,也可以直接用proteus仿真。了解下什么是IO、串口通信、中斷等,最好用模擬時序的方式用IO引腳寫個iic和spi的驅動。在51上不要花太多時間,新手一個月左右吧
最后如果你把以上的知識都有所了解后,就該去閱讀閱讀一些優秀的代碼,比如結合arm芯片手冊學習去學習下UBOOT的源代碼,了解下最小的系統開發,那對你整個嵌入式開發的非常有幫助的,可以的話,還可以學習下linux的源代碼,當然如果你直接閱讀2.6的代碼,我想你會很痛苦的,可以先看看linux 代碼早期的版本,比如0.12 的代碼等等,麻雀雖小,五臟俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程師。
上面是給你提供了一些學習方法步驟,至于你如何學習這些知識呢,就看你適合上面方法了,有人覺得看視頻就不錯,我可以推薦你嵌入式視頻教程,還有人覺得買書學也不錯,你就可以看看《嵌入式Linux應用程序開發標準教程》適合自己的才是最好的,所以看著上面這些步驟來學習,是不錯的選擇哦,我就是這么過來的。
相關推薦:嵌入式學習資料