學習嵌入式就業(yè)前景廣泛,你可以做手機、PDA、MP3、MP4、遙控玩具、psp、相機、家電控制(洗衣機、電飯煲等)、汽車導航儀,只要跟電子控制相關的。此外,嵌入式這個行業(yè)也利于個人創(chuàng)業(yè),這也是為什么越來越多的人參加 嵌入式培訓 的原因。
如何學習嵌入式?相信是困擾所有嵌入式初學者的難題,下面課程是嵌入式學習必學的:C語言; C++;操作系統(tǒng);計算機組成原理; linux編程; 51單片機;arm;硬件編程語言(FPGA);模擬電路&數(shù)字電路。
1、c\c++語言,這是計算機行業(yè)的必修課,必須找扎實實學好,可以安裝turbo c編譯器為開發(fā)環(huán)境,聯(lián)系C語言編程; 安裝vc++6.0學習C++編程。
2、操作系統(tǒng),先在電腦上安裝一個vmwarework station,然后在vmware work station里安裝一個linux(redhat企業(yè)版)虛擬機。學習一下操作系統(tǒng)的基本原理,熟悉linux環(huán)境下的開發(fā)環(huán)境,然后你就可以照著《自己動手寫操作系統(tǒng)》寫個操作系統(tǒng)試試。
3、計算機組成原理,熟悉計算機的基本原理,看看一個計算機的基本組成及軟件在里面是如何跑的。
4、《unix/linux編程實踐教程》可以說是linux編程的必修課,很不錯的一本書,初學嵌入式的朋友可以看看。
5、單片機,其實就是一臺電腦,像現(xiàn)在的汽車控制、led控制、屏幕亮光程度控制,它都可以實現(xiàn),自己買塊開發(fā)板弄一下,你能學到很多的別人學不到的。
6、arm,現(xiàn)在最流行的微機,說白了就是32位的單片機,還可以跑操作系統(tǒng)哦,自己想辦法移植一個操作系統(tǒng)上去吧
7、硬件編程語言(FPGA),芯片到底是怎么做成的,學習這門課,你就知道了(推薦閱讀:如何學習FPGA)
8、模擬電路&數(shù)字電路,硬件的基礎,如果可以的話,學習下protel,自己做個硬件pcb板試試。
計算機這行都是偏向于實踐的課程,所以要注重動手能力,學習嵌入式這基本課程的時候,你可以按照這樣的順序來學習:
1:C語言、計算機組成原理、模擬電路&數(shù)字電路
2:匯編語言、單片機、操作系統(tǒng)、C++
3:硬件編程語言、arm
嵌入式開發(fā)大抵分四個方向,硬件、驅動、內核、應用,如果是希望向嵌入式軟件方向發(fā)展的話,目前最常見的是
嵌入式Linux+ARM方向,關于這個方向,大概分3個階段:
1、嵌入式linux上層應用,包括QT的GUI開發(fā)
2、嵌入式linux系統(tǒng)開發(fā)
3、嵌入式linux驅動開發(fā) 嵌入式目前主要面向的幾個操作系統(tǒng)是,LINUX,WINCE、VxWorks等等Linux是開源免費的,而且其源代碼是開放的,更加適合我們學習嵌入式。
自學的話你可以嘗試以下路線:
(1)C語言是所有編程語言中的強者,單片機、DSP、類似ARM的種種芯片的編程都可以用C語言搞定),因此必須非常熟練的掌握。推薦書籍:譚浩強的很不錯,《TheC Programming Language》這本經典的教材是老外寫的,也有中譯版本。
(2)操作系統(tǒng)原理,是必需的,如果你是計算機專業(yè)畢業(yè)那也就無所謂了,如果是非計算機專業(yè)的就必須找一本比較淺顯的計算機原理書籍看一看,把啥叫“進程”“線程”“系統(tǒng)調度”等等基本問題搞清楚。
(3)Linux操作系統(tǒng)就是用C語言編寫的,所以你也應該先學習下Linux方面的編程,只有你會應用了,才能近一步去了解其內核的精髓。推薦書籍:《UNIX環(huán)境高級編程》(第2版)
(4)了解ARM的架構,原理,以及其匯編指令,我們在嵌入式開發(fā)中,一般很少去寫匯編,但是最起碼的要求是能夠看懂arm匯編。
(5)系統(tǒng)移植的時候,就需要你從最下層的bootloader開始,然后內核移植,文件系統(tǒng)移植等。而移植這部分對硬件的依賴是非常大的,其配置步驟也相對復雜,也沒有太多詳細資料。
(6)驅動開發(fā)linux驅動程序設計既是個極富有挑戰(zhàn)性的領域,又是一個博大精深的內容。linux驅動程序設計本質是屬于linux內核編程范疇的,因而是對linux內核和內核編程是有要求的。在學習前你要想了解linux內核的組成,因為每一部分要詳細研究的話足夠可以擴展成一本厚書。