嵌入式開發(fā)入門經(jīng)驗
你好,我是一名嵌入式開發(fā)愛好者.近來總是看到很多初學(xué)者(多數(shù)是在校大學(xué)生)由于沒有條件,想學(xué)習(xí)卻不知道如何下手。
本人絕對能體會到學(xué)習(xí)的艱辛,而且視任何對知識技術(shù)有強烈追求的人(不管目前水平高低)為同路人,所以整理短文一篇寫出一些學(xué)習(xí)感受,替所有渴望知識的人企盼高手指點學(xué)習(xí)之路,分享經(jīng)驗。
愛因斯坦說過,”我是站在巨人的肩膀上“
實踐當(dāng)然是最鍛煉人的方式,但是我想在校生很少有這樣的機會,別說本科生,碩士生也未必有條件。所以我想學(xué)習(xí)嵌入式要從個人的知識背景和現(xiàn)實條件出發(fā)。訂立合適的階段目標(biāo),在允許的條件下多動手多思考。
一般情況下對于硬件設(shè)備是比較短缺的。但是可以從軟件方面和嵌入式系統(tǒng)開發(fā)模式上下功夫,提醒大家一點,嵌入式系統(tǒng)開發(fā)設(shè)計的內(nèi)容知識很多,所以大家不要亂,在了解嵌入式系統(tǒng)開發(fā)的體系結(jié)構(gòu)后,一步一步的下手,最容易上手的是linux下的C,比如ucos(有開放源代碼),雖然可能無法在硬件上仿真,但也不必著急。wince,palmos上手都很容易。無論對于初學(xué)者還是自以為是高手的人來說,編程水平(這可不受硬件條件限制)絕對是沒有止境的,有了較高的編程水平(嵌入式主要是C,當(dāng)然OO的幾種語言c++,java是發(fā)展趨勢),等到有機會的時候及時的補充硬件知識,會很快的成為高手。
還有,一定記住,學(xué)習(xí)嵌入式,”要想辦法,不要找理由“。當(dāng)年在dos下用tc編程時的條件,現(xiàn)在回想起來建筑就是奇跡。
我推薦一條學(xué)習(xí)之路吧,僅供參考,
1、C開發(fā)經(jīng)驗
條件:linux(這都有吧)
方法:隨便,主要是掌握ansiC編程(不包括gtk,qt等圖形可視化開發(fā))
2、網(wǎng)絡(luò)、操作系統(tǒng)、體系結(jié)構(gòu)
條件:linux,各種書,算法、例程。
方法:通過C編程實現(xiàn)簡單的網(wǎng)絡(luò)等知識的算法和過程。
3、嵌入式系統(tǒng)概念
條件:各個嵌入式網(wǎng)站,討論組,書籍
方法:少提問(尤其是等著天上掉餡餅,這主要是防止增長惰性,也解決不了實際問題),多思考。
4、嵌入式開發(fā)實踐
條件:各種嵌入式系統(tǒng)開發(fā)工具的demo版(或者D版,如果有的話),包括編譯器,仿真器??梢哉腋呤謧円部梢韵螺d。
方法:這里有兩個分支,一個是基于mcu/dsp的嵌入式系統(tǒng)開發(fā),一個是象palmos,wince,ucos等rtos下的應(yīng)用軟件開發(fā)。對硬件感興趣,想成為真正高手的由第一個分支入手,以后進入第二個分支;如果十分厭煩硬件,只想停留在軟件開發(fā)上的,可以只由第二個分支入手,以后就和pc上的開發(fā)沒有什么本質(zhì)上的區(qū)別了,找份不錯的工作應(yīng)該沒問題,可以不用進行下面的步驟了,感興趣可以參考第6條。
5、硬件開發(fā)
條件:各種嵌入式芯片、存儲器等電路器件,protel99等電路設(shè)計軟件,電路板制作。
方法:這時候該有開發(fā)條件了,最起碼是51系列,這個比較方便。電路的設(shè)計內(nèi)容較多,不過看起來嚇人,實際上比軟件要簡單的多。只要下功夫,實踐會告訴你一切。
6、硬件工程/軟件工程/項目管理
條件: 各個芯片詳細(xì)資料和使用經(jīng)驗,軟件工程知識,項目管理知識,培訓(xùn),大型項目參與經(jīng)驗
方法:已經(jīng)是高手了,但是學(xué)無止境,沾沾自喜于已有的知識是致命的。那個下一步。。。,你該是管理者了。