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