獻給執(zhí)著的嵌入式初學者
實踐當然是最鍛煉人的方式,但是我想在校生很少有這樣的機會,別說本科生,碩士生也未必有條件。所以我想學習嵌入式要從個人的知識背景和現(xiàn)實條件出發(fā)。訂立合適的階段目標,在允許的條件下多動手多思考。
一般情況下對于硬件設備是比較短缺的。但是可以從軟件方面和嵌入式系統(tǒng)開發(fā)模式上下功夫,提醒大家一點,嵌入式系統(tǒng)開發(fā)設計的內(nèi)容知識很多,所以大家不要亂,在了解嵌入式系統(tǒng)開發(fā)的體系結構后,一步一步的下手,最容易上手的是linux下的C,比如ucos(有開放源代碼),雖然可能無法在硬件上仿真,但也不必著急。wince,palmos上手都很容易。無論對于初學者還是自以為是高手的人來說,編程水平(這可不受硬件條件限制)絕對是沒有止境的,有了較高的編程水平(嵌入式主要是C,當然OO的幾種語言c++,java是發(fā)展趨勢),等到有機會的時候及時的補充硬件知識,會很快的成為高手。
還有,一定記住,學習嵌入式,”要想辦法,不要找理由“。當年在dos下用tc編程時的條件,現(xiàn)在回想起來建筑就是奇跡。
我推薦一條發(fā)展道路吧,僅供參考,
1、C開發(fā)經(jīng)驗
條件:linux(這都有吧)
方法:隨便,主要是掌握ansiC編程(不包括gtk,qt等圖形可視化開發(fā))
2、網(wǎng)絡、操作系統(tǒng)、體系結構
條件:linux,各種書,算法、例程。
方法:通過C編程實現(xiàn)簡單的網(wǎng)絡等知識的算法和過程。
3、嵌入式系統(tǒng)概念
條件:各個嵌入式網(wǎng)站,討論組,書籍
方法:少提問(尤其是等著天上掉餡餅,這主要是防止增長惰性,也解決不了實際問題),多思考。
4、嵌入式開發(fā)實踐
條件:各種嵌入式系統(tǒng)開發(fā)工具的demo版(或者D版,如果有的話),包括編譯器,仿真器??梢哉腋呤謧円?,也可以下載。
方法:這里有兩個分支,一個是基于mcu/dsp的嵌入式系統(tǒng)開發(fā),一個是象palmos,wince,ucos等rtos下的應用軟件開發(fā)。對硬件感興趣,想成為真正高手的由第一個分支入手,以后進入第二個分支;如果十分厭煩硬件,只想停留在軟件開發(fā)上的,可以只由第二個分支入手,以后就和pc上的開發(fā)沒有什么本質(zhì)上的區(qū)別了,找份不錯的工作應該沒問題,可以不用進行下面的步驟了,感興趣可以參考第6條。
5、硬件開發(fā)
條件:各種嵌入式芯片、存儲器等電路器件,protel99等電路設計軟件,電路板制作。
方法:這時候該有開發(fā)條件了,最起碼是51系列,這個比較方便。電路的設計內(nèi)容較多,不過看起來嚇人,實際上比軟件要簡單的多。只要下功夫,實踐會告訴你一切。
6、硬件工程/軟件工程/項目管理
條件: 各個芯片詳細資料和使用經(jīng)驗,軟件工程知識,項目管理知識,培訓,大型項目參與經(jīng)驗
方法:已經(jīng)是高手了,但是學無止境,沾沾自喜于已有的知識是致命的。那個下一步。。。,你該是管理者了。
補充幾點.
要想成為高手中的高手,最好從鉆研如下領域修:
1,分析一種RTOS的源代碼--UCOS最容易;
2,分析一種通訊協(xié)議棧的實現(xiàn)方式--TCP/IP最實用;
3,精通一種DSP的開發(fā)集成環(huán)境--TI CCS2.1最優(yōu)秀,精華在其內(nèi)帶的RTOS;
4,精通一種單片機的開發(fā)集成環(huán)境--keil C最經(jīng)典;
5,精通一種MCU的開發(fā)集成環(huán)境--ADS 1.2最流行;
要想成為大師級人物再從如下領域開始修:
1,精通一種系統(tǒng)建模語言和工具--Telelogic tau SDL/UML suit最經(jīng)典;
2,精通一種算法仿真工具--Matlab simulink 最便宜;
要想檢驗一下自己是否到達了至尊級人物,可以做如下的事:
動手搭建一套紅外或者藍牙通訊原型系統(tǒng),模擬前端可以用現(xiàn)成的,基帶用DSP,主控用個32BMCU,DSP和協(xié)議軟件自己寫。當然不可能做全,做個子集就可以了。
如果能到這個地步,打住吧,該改行去做市場了。做個一、二年市場,你不自己去創(chuàng)個業(yè)就太浪費了
評論