這周我們帶著大家來了解一下,如何從一個菜鳥成為個合格的嵌入式軟件工程師?;浨段靼睬度胧脚嘤柪蠋熃o大家總結了以下6條經驗。
1、打好嵌入式軟件編程的基礎
這一階段重點打好嵌入式軟件編程的基礎,包括常用的數據結構,特別是C語言中對指針的理解和應用。這一階段的主要目的是學習編程語言、開發環境、和培養自己的編程思維,為進一步學習嵌入式開發打下良好的基礎。
2、學習ARM體系結構編程
這一階段才是真正的嵌入式編程,首先我們要選擇一款嵌入式CPU和一款嵌入式開發平臺,目前ARM 嵌入式CPU應用廣泛,這一階段重點是學習嵌入式CPU的裸機編程:
* 熟悉中斷
* 定時器
* 串口
* NAND FLASH
* 網絡控制器
* LCD屏、觸摸屏
* I2C 設備
* SPI 設備
等常用嵌入式外圍設備的硬件工作原理,以及如何使用C語言來編程、控制這些硬件。這一階段除了要學習對硬件編程之外,還需要學習嵌入式硬件的知識,但是對于嵌入式軟件工程師來講,重點是學習硬件的工作原理,在掌握硬件工作原理的基礎上,對硬件進行編程控制。這和硬件工程師學習的側重點有所不同。
這一階段對應的學校的課程主要包括模擬電路、數字電路、微機原理和單片機。這一階段重點是要看CPU的芯片手冊,大部分的參考書也是對芯片手冊的翻譯。
3、學習嵌入式系統的構建
這一階段主要學習帶有操作系統的嵌入式系統的構建,包括系統的啟動流程:
* Bootloader的工作流程
* UBOOT的編譯
* 裁剪與移植,嵌入式Linux內核的裁剪、移植與編譯
* 嵌入式根文件系統的定制
* BootLoader、內核和根文件系統的燒寫
這一階段的主要目的是掌握帶有操作系統的嵌入式系統的構建和燒寫過程,以及對嵌入式系統軟件的總體構成有個整體認識,為我們接下來學習嵌入式應用和驅動開發打下堅實的基礎。
4、學習嵌入式Linux應用程序開發
這一階段主要學習上層的嵌入式Linux應用程序開發,包括:
* 基于Linux多進程
* 多線程網絡
* 文件與目錄
掌握嵌入式Linux環境下應用程序開發技術。
5、學習嵌入式Linux驅動程序開發
這一階段主要學習底層嵌入式Linux設備驅動程序開發設計,包括:
* 常用的字符設備驅動
* 塊設備驅動
* LCD設備驅動
* 觸摸屏設備驅動以及驅動程序開發中的核心技術。
6、完成一個綜合項目
嵌入式技術關鍵在于理論和實踐的結合,嵌入式軟件工程師要能夠學以致用,完成了以上的所有階段的知識點學習后,到底有沒有學會,會不會用,能不能應用所學知識來解決實際開發中的問題,我們需要來完成一個綜合的嵌入式實訓項目,例如: 基于嵌入式Linux平臺實現的飛行器、 基于嵌入式Linux平臺實現的智能機器人等,這些項目都綜合應用了嵌入式開發當中的應用,驅動和QT開發技術。
想要成為一個的嵌入式軟件工程師并非一早一夕的事,也是通過長期的學習積累得。其實,目前這種的嵌入式開發工程師非常少,這也是很多企業重金尋求的人才?;浨段靼睬度胧脚嘤柪蠋煾嬲]大家,面對相對復雜的嵌入式系統的研發過程,在學習的過程中需要更多關注完整的知識體系結構的建立。特別是對于原理性知識的掌握程度則相對普通的軟件開發人員提出了更高的要求。因此在學習的過程中,要知其然,更要知其所以然。