作為一家之言,想對廣大渴望學習嵌入式系統的學子提出幾點建議:
(1)嵌入式系統軟件硬件密切相關,一定要打好軟件硬件基礎。其實,只要找到正確的方法,加上努力,任何理工科學生,甚至非理工科學生,都能學好嵌入式系統。
(2)選擇一個芯片及硬件評估板(入門芯片最好是簡單一點,例如8位MCU)、選擇一本好書(最好有規范的例子)、找一位好老師(最好是有經驗
且熱心的)。硬件評估板的價格一定要在1000元以下,不要太貴,最好能有自己動手的空間。不花一分硬件錢,要想學好嵌入式系統不實際。因為,這是實踐性
很強的學科。好書,可以使你少走彎路,不會被誤導,要知道有的書是會使人進入學習誤區的。好老師也可以是做過一些實際項目的學長(一定要找做過幾個成功項
目的學長或老師做指導,否則,經驗不足也可能誤導),有教師指導,學習進程會加快。(人工智能學科里有個術語叫無教師指導學習模式與有教師指導學習模式,
無有教師指導學習模式比有教師指導學習模式復雜許多)。
(3)許多人怕硬件,其實嵌入式系統硬件比電子線路好學多了。只要深入理解MCU的硬件最小系統,對I/O口、串行通信、鍵盤、LED、
LCD、SPI、I2C、PWM、A/D(包括一些傳感器)、D/A等逐個實驗理解,逐步實踐。再通過自己做一個實際的小系統,底層硬件基礎就有了。各個
硬件模塊驅動程序的編寫是嵌入式系統的必備基礎。學習嵌入式系統的初期,這個過程是必須的。
(4)至于嵌入式實時操作系統RTOS,一定不要一開始就學,這樣會走很多彎路,也會使你對嵌入式系統感到畏懼。等你軟件硬件基礎打好了,再學
習就感到容易理解。實際上,眾多嵌入式應用,并不一定需要操作系統。也可以根據實際項目需要再學習。一定不要被一些嵌入式實時操作系統移植培訓班宣傳所誤
導,而忽視實際嵌入式系統軟件硬件基礎知識的學習。
(5)要避免片面地單純從“電子”或“計算機軟件”角度認識嵌入式系統,嵌入式系統與硬件緊密相關,是軟件與硬件的綜合體,沒有對硬件的理解就
不可能寫好嵌入式軟件,同樣沒有對軟件的理解也不可能設計好嵌入式硬件。因此,要逐步從MCU的最小系統開始,一點一點理解硬件原理及底層硬件驅動編程方
法。要通過規范的例子,理解軟件工程封裝、可復用等思想。通過規范編程,積累底層構件(Component),也就是一個一個模塊,但是要封裝得比較好,
可復用。
(6)注重實踐。這里我把實踐與實驗區別開來,實驗主要是他人的程序或驗證性的,目的是學習基礎知識。實踐是自己設計,有具體的“產品”目標。如果你能花500元左右自己做一個具有一定功能的小產品,就可以說接近入門了。
(7)關于入門芯片的選擇。一定不要選太復雜,不能超越學習過程。不要一下子學習幾種芯片,可以通過一個芯片入門并具有一個實踐經驗后,根據需
要選擇芯片。注意,選擇的是微控制器(MCU),而不是微處理器(MPU)。不同廠家生產的MCU穩定性差異巨大。微處理器已經不直接用于嵌入式系統的最
終產品設計,不要誤解。
(8)關于操作系統的選擇。可以等到你具有一定實踐后,選擇一個簡單容易理解原理的進行學習,不要一開始就學習幾種操作系統,理解了基本原理,實踐中確有實際需要再學習也不遲。人總是要不斷學習的。
(9)關于匯編與C語言的取舍。隨著MCU對C編譯的優化支持,對于匯編可以只了解幾個必須的語句,直接使用C語言編程。但必須通過第一個程序理解芯片初始化過程、中斷機制、程序存儲情況等區別于PC機程序的內容。
有關嵌入式系統的知識體系、可能的學習誤區,另文討論。
以上建議,僅供參考。