嵌入式的學習從入門開始,就不是那么容易。這不僅要求學員有毅力和好的學習態度,還要具備學習的方法,否則不僅會迷失方向,降低學習效率,還可能打擊到自己的自信心。作為過來人,小編給大家談談正確的嵌入式學習路線,供各位嵌入式初學者參考,希望對大家有所幫助。
嵌入式軟件工程師的職責主要是根據產品的功能需求設計好軟件,讓硬件工作起來。嵌入式電子產品硬件部分,大部分都是相同的,核心的都是由CPU、RAM和FLASH 幾大部分組成,而軟件就千差萬別了。產品的具體功能都是由軟件來實現的,一般來講一個產品的實現,軟件設計的工作量是硬件設計的4~5倍。所以一般情況下,一個公司的軟件工程師數量是硬件硬件工程師的4~5倍,嵌入式軟件工程師需求比硬件工程師大很多,同時跟硬件工程師相比,嵌入式軟件工程師學起來相對容易些。
軟件工程師嵌入式學習路線
先打好嵌入式軟件編程的基礎,這一階段重點打好嵌入式軟件編程的基礎,包括學習Linux系統的基本應用,Linux的常用命令、C語言編程基礎、常用的數據結構。特別是C語言中對指針的理解和應用。這一階段的主要目的是學習編程語言、開發環境、和培養自己的編程思維,為進一步學習嵌入式開發打下良好的基礎。
學習ARM體系結構編程,這一階段才是真正的嵌入式編程,首先我們要選擇一款嵌入式CPU和一款嵌入式開發平臺,目前ARM 嵌入式CPU應用廣泛,這一階段重點是學習嵌入式CPU的裸機編程,熟悉中斷、定時器、串口、NAND FLASH、網絡控制器、LCD屏、觸摸屏等常用嵌入式外圍設備的硬件工作原理,以及如何使用C語言來編程、控制這些硬件。這一階段除了要學習對硬件編程之外,還需要學習嵌入式硬件的知識,但是對于嵌入式軟件工程師來講,重點是學習硬件的工作原理,在掌握硬件工作原理的基礎上,對硬件進行編程控制。這和硬件工程師學習的側重點有所不同。這一階段對應的學校的課程主要包括模擬電路、數字電路、微機原理和單片機。這一階段重點是要看CPU的芯片手冊,大部分的參考書也是對芯片手冊的翻譯。
學習嵌入式系統的構建,這一階段主要學習帶有操作系統的嵌入式系統的構建,包括系統的啟動流程、Bootloader的工作流程、UBOOT的編譯、裁剪與移植、嵌入式Linux內核的裁剪、移植與編譯,嵌入式根文件系統的定制、BootLoader、內核和根文件系統的燒寫。 這一階段的主要目的是掌握帶有操作系統的嵌入式系統的構建和燒寫過程,以及對嵌入式系統軟件的總體構成有個整體認識,為我們接下來學習嵌入式應用和驅動開發打下堅實的基礎。
學習嵌入式Linux應用程序開發,這一階段主要學習上層的嵌入式Linux應用程序開發,包括基于Linux多進程、多線程、網絡、文件與目錄和QT編程。掌握嵌入式Linux環境下應用程序開發技術。
學習嵌入式Linux驅動程序開發,這一階段主要學習底層嵌入式Linux設備驅動程序開發設計,包括常用的字符設備驅動、塊設備驅動、LCD設備驅動、觸摸屏設備驅動以及驅動程序開發中的核心技術。
嵌入式技術關鍵在于理論和實踐的結合,要能夠學以致用,完成了以上的所有階段的知識點學習后,到底有沒有學會,會不會用,能不能應用所學知識來解決實際開發中的問題,我們需要來完成一個綜合的嵌入式實訓項目,例如: 基于嵌入式Linux平臺實現的飛行器、 基于嵌入式Linux平臺實現的智能機器人等,這些項目都綜合應用了嵌入式開發當中的應用,驅動和QT開發技術。
嵌入式程序員主要從事軟件開發,但是這不是一個簡單的工程,這而是需要具有多年的工作經驗與項目實操的,由于這樣的人才稀缺,市場上的供應不足,便體現出了他的價值。另一方面,嵌入式為互聯網行業服務,互聯網是名副其實的高薪行業,隨著互聯網與經濟發展深入融合,各行各業集體向互聯網轉型,使得嵌入式技術和使用價值更為廣泛,嵌入式程序員更受歡迎了。找到正確的嵌入式學習路線,來粵嵌跟老師和同學們一起探討,共同提高。