嵌入式開發(fā)既包含軟件的知識,同時也涉及到硬件,內(nèi)容實在太多太雜了。不少初學(xué)者很容易就找不到學(xué)習(xí)的方向。 下面廣州開發(fā)嵌入式培訓(xùn)為大家分析下軟件工程師需要做些什么工作,以及正確的嵌入式學(xué)習(xí)路線是怎樣的。
嵌入式軟件工程師的職責(zé)主要是根據(jù)產(chǎn)品的功能需求設(shè)計好軟件,讓硬件工作起來。嵌入式電子產(chǎn)品硬件部分,大部分都是相同的,核心的都是由CPU、RAM和FLASH 幾大部分組成,而軟件就千差萬別了。產(chǎn)品的具體功能都是由軟件來實現(xiàn)的,一般來講一個產(chǎn)品的實現(xiàn),軟件設(shè)計的工作量是硬件設(shè)計的4~5倍。所以一般情況下,一個公司的軟件工程師數(shù)量是硬件硬件工程師的4~5倍,嵌入式軟件工程師需求比硬件工程師大很多,同時跟硬件工程師相比,嵌入式軟件工程師學(xué)起來相對容易些。
開發(fā)嵌入式培訓(xùn)之嵌入式軟件工程師學(xué)習(xí)路線:
先打好嵌入式軟件編程的基礎(chǔ),這一階段重點打好嵌入式軟件編程的基礎(chǔ),包括學(xué)習(xí)Linux系統(tǒng)的基本應(yīng)用,Linux的常用命令、C語言編程基礎(chǔ)、常用的數(shù)據(jù)結(jié)構(gòu)。特別是C語言中對指針的理解和應(yīng)用。這一階段的主要目的是學(xué)習(xí)編程語言、開發(fā)環(huán)境、和培養(yǎng)自己的編程思維,為進一步學(xué)習(xí)嵌入式開發(fā)打下良好的基礎(chǔ)。
學(xué)習(xí)ARM體系結(jié)構(gòu)編程,這一階段才是真正的嵌入式編程,首先我們要選擇一款嵌入式CPU和一款嵌入式開發(fā)平臺,目前ARM 嵌入式CPU應(yīng)用廣泛,這一階段重點是學(xué)習(xí)嵌入式CPU的裸機編程,熟悉中斷、定時器、串口、NAND FLASH、網(wǎng)絡(luò)控制器、LCD屏、觸摸屏等常用嵌入式外圍設(shè)備的硬件工作原理,以及如何使用C語言來編程、控制這些硬件。這一階段除了要學(xué)習(xí)對硬件編程之外,還需要學(xué)習(xí)嵌入式硬件的知識,但是對于嵌入式軟件工程師來講,重點是學(xué)習(xí)硬件的工作原理,在掌握硬件工作原理的基礎(chǔ)上,對硬件進行編程控制。這和硬件工程師學(xué)習(xí)的側(cè)重點有所不同。這一階段對應(yīng)的學(xué)校的課程主要包括模擬電路、數(shù)字電路、微機原理和單片機。這一階段重點是要看CPU的芯片手冊,大部分的參考書也是對芯片手冊的翻譯。
學(xué)習(xí)嵌入式系統(tǒng)的構(gòu)建,這一階段主要學(xué)習(xí)帶有操作系統(tǒng)的嵌入式系統(tǒng)的構(gòu)建,包括系統(tǒng)的啟動流程、Bootloader的工作流程、UBOOT的編譯、裁剪與移植、嵌入式Linux內(nèi)核的裁剪、移植與編譯,嵌入式根文件系統(tǒng)的定制、BootLoader、內(nèi)核和根文件系統(tǒng)的燒寫。 這一階段的主要目的是掌握帶有操作系統(tǒng)的嵌入式系統(tǒng)的構(gòu)建和燒寫過程,以及對嵌入式系統(tǒng)軟件的總體構(gòu)成有個整體認(rèn)識,為我們接下來學(xué)習(xí)嵌入式應(yīng)用和驅(qū)動開發(fā)打下堅實的基礎(chǔ)。
學(xué)習(xí)嵌入式Linux應(yīng)用程序開發(fā),這一階段主要學(xué)習(xí)上層的嵌入式Linux應(yīng)用程序開發(fā),包括基于Linux多進程、多線程、網(wǎng)絡(luò)、文件與目錄和QT編程。掌握嵌入式Linux環(huán)境下應(yīng)用程序開發(fā)技術(shù)。
學(xué)習(xí)嵌入式Linux驅(qū)動程序開發(fā),這一階段主要學(xué)習(xí)底層嵌入式Linux設(shè)備驅(qū)動程序開發(fā)設(shè)計,包括常用的字符設(shè)備驅(qū)動、塊設(shè)備驅(qū)動、LCD設(shè)備驅(qū)動、觸摸屏設(shè)備驅(qū)動以及驅(qū)動程序開發(fā)中的核心技術(shù)。
嵌入式技術(shù)關(guān)鍵在于理論和實踐的結(jié)合,要能夠?qū)W以致用,完成了以上的所有階段的知識點學(xué)習(xí)后,到底有沒有學(xué)會,會不會用,能不能應(yīng)用所學(xué)知識來解決實際開發(fā)中的問題,我們需要來完成一個綜合的嵌入式實訓(xùn)項目,例如: 基于嵌入式Linux平臺實現(xiàn)的飛行器、 基于嵌入式Linux平臺實現(xiàn)的智能機器人等,這些項目都綜合應(yīng)用了嵌入式開發(fā)當(dāng)中的應(yīng)用,驅(qū)動和QT開發(fā)技術(shù)。
如果你對嵌入式軟件開發(fā)感興趣,想往嵌入式發(fā)展的,不妨找個正規(guī)的培訓(xùn)機構(gòu)去系統(tǒng)的學(xué)習(xí)一下,達內(nèi)廣州開發(fā)嵌入式培訓(xùn)班已經(jīng)開始招生,歡迎大家來咨詢和了解。