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