嵌入式系統(tǒng)的知識體系、學(xué)習(xí)誤區(qū)及學(xué)習(xí)建議
3 基礎(chǔ)階段的學(xué)習(xí)建議
基于以上討論,下面對廣大渴望學(xué)習(xí)嵌入式系統(tǒng)的學(xué)子提出幾點基礎(chǔ)階段的學(xué)習(xí)建議:
①嵌入式系統(tǒng)軟件硬件密切相關(guān),一定要打好軟硬件基礎(chǔ)。其實,只要找到正確的方法,加上努力,任何理工科學(xué)生,甚至非理工科學(xué)生,都能學(xué)好嵌入式系統(tǒng)。
②選擇一個芯片及硬件評估板(入門芯片最好簡單一點,例如8位MCU)、選擇一本好書(最好有規(guī)范的例子)、找一位好老師(最好是有經(jīng)驗且熱心的)。硬件評估板的價格一定要在1000元以下,不要太貴,最好能有自己動手的空間。不花一分硬件錢想要學(xué)好嵌入式系統(tǒng)不實際,因為這是實踐性很強的學(xué)科。好書,可以讓人少走彎路,不被誤導(dǎo)。好老師也可以是做過一些實際項目的學(xué)長(一定要找做過幾個成功項目的學(xué)長或老師做指導(dǎo),否則經(jīng)驗不足也可能誤導(dǎo)),有教師指導(dǎo),學(xué)習(xí)進程會加快(人工智能學(xué)科里有個術(shù)語叫無教師指導(dǎo)學(xué)習(xí)模式與有教師指導(dǎo)學(xué)習(xí)模式,無教師指導(dǎo)學(xué)習(xí)模式比有教師指導(dǎo)學(xué)習(xí)模式復(fù)雜許多。
③許多人怕硬件,其實嵌入式系統(tǒng)硬件比電子線路好學(xué)多了。只要深入理解:MCU的硬件最小系統(tǒng),對I/O口、串行通信、鍵盤、LED、LCD、SPI、 I2C、PWM、A/D(包括一些傳感器)、D/A等逐個實驗理解,逐步實踐,再通過動手做一個實際的小系統(tǒng),底層硬件基礎(chǔ)就有了。各個硬件模塊驅(qū)動程序的編寫是嵌入式系統(tǒng)的必備基礎(chǔ)。學(xué)習(xí)嵌入式系統(tǒng)的初期,這個過程是必須的。
④至于嵌入式實時操作系統(tǒng)RTOS,一定不要一開始就學(xué),這樣會走很多彎路,也會使你對嵌入式系統(tǒng)感到畏懼。等你軟件硬件基礎(chǔ)打好了,再學(xué)習(xí)就感到容易理解。實際上,許多嵌入式應(yīng)用并不需要操作系統(tǒng)。也可以根據(jù)實際項目需要,再學(xué)習(xí)特定的RTOS。不要被一些嵌入式實時操作系統(tǒng)培訓(xùn)班的宣傳所誤導(dǎo),而忽視實際嵌入式系統(tǒng)軟硬件基礎(chǔ)知識的學(xué)習(xí)。
⑤要避免片面地單純從“電子”或“計算機軟件”角度認識嵌入式系統(tǒng)。前面說過,嵌入式系統(tǒng)是軟件與硬件的綜合體。因此,要逐步從MCU的最小系統(tǒng)開始,一點一點理解硬件原理及底層硬件驅(qū)動編程方法。要通過規(guī)范的例子,理解軟件工程封裝、可復(fù)用等思想。通過規(guī)范編程,積累底層構(gòu)件(component),也就是一個一個模塊;但是要封裝得比較好,可復(fù)用。
⑥注重實驗與實踐。這里說的實驗主要指通過重復(fù)來驗證他人的工作,目的是學(xué)習(xí)基礎(chǔ)知識,這個過程一定要經(jīng)歷。實踐是自己設(shè)計,有具體的“產(chǎn)品”目標。如果花500元左右,自己做一個具有一定功能的小產(chǎn)品,且能穩(wěn)定運行1年以上,就可以說接近入門了。
⑦關(guān)于入門芯片的選擇。不要選太復(fù)雜的微控制器作為入門芯片,不能超越學(xué)習(xí)過程。不要一下子學(xué)習(xí)幾種芯片??梢酝ㄟ^一個芯片入門,并具有一個實踐經(jīng)驗后,根據(jù)實際需要選擇芯片開發(fā)實際產(chǎn)品。注意,不要把微處理器(MPU與微控制器(MCU)概念相混淆,微處理器只是微控制器的內(nèi)核。
⑧關(guān)于嵌入式操作系統(tǒng)的選擇。可以等到具有一定實踐基礎(chǔ)后,選擇一個簡單、容易理解原理的嵌入式操作系統(tǒng)進行學(xué)習(xí)。不要一開始就學(xué)習(xí)幾種操作系統(tǒng),理解了基本原理,實踐中確有實際需要再學(xué)習(xí)也不遲。人總是要不斷學(xué)習(xí)的。
⑨關(guān)于匯編語言與C語言的取舍。隨著:MCU對C編譯的優(yōu)化支持,對于匯編語言可以只了解幾個必要的語句,而直接使用C語言編程。但必須通過第一個程序理解芯片初始化過程、中斷機制、程序存儲情況等,區(qū)別于PC機程序的內(nèi)容。另外,為了測試的需要,最好掌握一門PC機編程語言。
⑩要明確自己的學(xué)習(xí)目的,并注意學(xué)習(xí)方法。要明確學(xué)習(xí)目的是打基礎(chǔ),還是為了適應(yīng)工作需要而進行的短訓(xùn)。學(xué)習(xí)方法方面,要根據(jù)學(xué)習(xí)目的選擇合適的學(xué)習(xí)途徑,注意理論學(xué)習(xí)與實踐、通用知識與芯片相關(guān)知識、硬件知識與軟件知識的平衡,要在理解軟件工程基本原理基礎(chǔ)上理解硬件構(gòu)件與軟件構(gòu)件等基本概念。
以上建議,僅供初學(xué)者參考。當(dāng)然,以上只是基礎(chǔ)階段的學(xué)習(xí)建議。要成為良好的嵌入式系統(tǒng)設(shè)計師,還需要在實際項目中鍛煉,并不斷學(xué)習(xí)與積累經(jīng)驗。
評論