 嵌入式(shi)軟件工程師學習路線圖
							時(shi)間:2020-06-01      來源:未知
							嵌入式(shi)軟件工程師學習路線圖
							時(shi)間:2020-06-01      來源:未知 
							人們去學習嵌入式的話,最后也是想成為嵌入式軟件工程師的,這對于學習嵌入式學員來說還是有些難度的,所以這回小編就給大家介紹下嵌入式軟件工程師學習路線圖吧。
嵌入式軟件方向
	
嵌(qian)(qian)入式軟件(jian)(jian)工(gong)(gong)程師的(de)(de)職責(ze)主要是(shi)(shi)根(gen)據產品的(de)(de)功能需求(qiu)設計好軟件(jian)(jian),讓硬件(jian)(jian)工(gong)(gong)作(zuo)起(qi)來。嵌(qian)(qian)入式電子產品硬件(jian)(jian)部(bu)分(fen),大(da)(da)部(bu)分(fen)都是(shi)(shi)相同的(de)(de),核心的(de)(de)都是(shi)(shi)由(you)CPU、RAM和FLASH 幾大(da)(da)部(bu)分(fen)組成,而軟件(jian)(jian)就千差萬別了(le)。產品的(de)(de)具體功能都是(shi)(shi)由(you)軟件(jian)(jian)來實現(xian)的(de)(de),一(yi)(yi)般(ban)來講一(yi)(yi)個(ge)產品的(de)(de)實現(xian),軟件(jian)(jian)設計的(de)(de)工(gong)(gong)作(zuo)量是(shi)(shi)硬件(jian)(jian)設計的(de)(de)4~5倍。所以(yi)一(yi)(yi)般(ban)情況下(xia),一(yi)(yi)個(ge)公司的(de)(de)軟件(jian)(jian)工(gong)(gong)程師數(shu)量是(shi)(shi)硬件(jian)(jian)硬件(jian)(jian)工(gong)(gong)程師的(de)(de)4~5倍,嵌(qian)(qian)入式軟件(jian)(jian)工(gong)(gong)程師需求(qiu)比硬件(jian)(jian)工(gong)(gong)程師大(da)(da)很多,同時跟硬件(jian)(jian)工(gong)(gong)程師相比,嵌(qian)(qian)入式軟件(jian)(jian)工(gong)(gong)程師學(xue)起(qi)來相對容易些,所以(yi)這(zhe)里我(wo)重點和大(da)(da)家談一(yi)(yi)下(xia)嵌(qian)(qian)入式軟件(jian)(jian)工(gong)(gong)程的(de)(de)學(xue)習路(lu)線。
嵌入式軟件工程師學習路線
1、打好嵌入式(shi)軟(ruan)件編程的基(ji)礎(chu)
這(zhe)一階段重點打好嵌入式軟(ruan)件編程(cheng)的(de)基(ji)礎(chu),包括學(xue)習Linux系(xi)統的(de)基(ji)本應用(yong)(yong)(yong),Linux的(de)常(chang)用(yong)(yong)(yong)命令、C語言編程(cheng)基(ji)礎(chu)、常(chang)用(yong)(yong)(yong)的(de)數(shu)據(ju)結構。
特別(bie)是C語(yu)言(yan)(yan)(yan)中對指(zhi)針的(de)(de)(de)理解和應用(yong)。這一階(jie)段的(de)(de)(de)主要目的(de)(de)(de)是學習(xi)編(bian)程語(yu)言(yan)(yan)(yan)、開發(fa)環境、和培養自己的(de)(de)(de)編(bian)程思維,為進一步學習(xi)嵌入式(shi)開發(fa)打下(xia)良好的(de)(de)(de)基礎。 這一階(jie)段推(tui)薦(jian)的(de)(de)(de)嵌入式(shi)學習(xi)書(shu)籍如下(xia):《C程序設計語(yu)言(yan)(yan)(yan)》,《C語(yu)言(yan)(yan)(yan)核(he)心技術(shu)》,《數據結構(gou)與(yu)算法分析--C語(yu)言(yan)(yan)(yan)描(miao)述》,《C和指(zhi)針》,《C陷(xian)阱與(yu)缺陷(xian)》,《C++ Primer》
2、學習ARM體系結構編程
這(zhe)(zhe)(zhe)一(yi)(yi)階(jie)段才(cai)是(shi)真正的(de)(de)(de)(de)(de)嵌(qian)入式(shi)(shi)(shi)編程(cheng)(cheng)(cheng),首先(xian)我們(men)要(yao)(yao)選擇一(yi)(yi)款嵌(qian)入式(shi)(shi)(shi)CPU和一(yi)(yi)款嵌(qian)入式(shi)(shi)(shi)開發平臺,目前ARM 嵌(qian)入式(shi)(shi)(shi)CPU應用最廣(guang)泛,這(zhe)(zhe)(zhe)一(yi)(yi)階(jie)段重(zhong)點(dian)是(shi)學(xue)習嵌(qian)入式(shi)(shi)(shi)CPU的(de)(de)(de)(de)(de)裸機編程(cheng)(cheng)(cheng),熟悉中斷、定時器、串口、NAND FLASH、網絡(luo)控制(zhi)器、LCD屏、觸摸屏等常用嵌(qian)入式(shi)(shi)(shi)外圍設備的(de)(de)(de)(de)(de)硬(ying)(ying)(ying)件(jian)工(gong)作原(yuan)(yuan)理(li),以(yi)及如何使用C語言來編程(cheng)(cheng)(cheng)、控制(zhi)這(zhe)(zhe)(zhe)些(xie)硬(ying)(ying)(ying)件(jian)。這(zhe)(zhe)(zhe)一(yi)(yi)階(jie)段除(chu)了要(yao)(yao)學(xue)習對(dui)硬(ying)(ying)(ying)件(jian)編程(cheng)(cheng)(cheng)之外,還需要(yao)(yao)學(xue)習嵌(qian)入式(shi)(shi)(shi)硬(ying)(ying)(ying)件(jian)的(de)(de)(de)(de)(de)知識,但是(shi)對(dui)于嵌(qian)入式(shi)(shi)(shi)軟(ruan)件(jian)工(gong)程(cheng)(cheng)(cheng)師(shi)來講,重(zhong)點(dian)是(shi)學(xue)習硬(ying)(ying)(ying)件(jian)的(de)(de)(de)(de)(de)工(gong)作原(yuan)(yuan)理(li),在掌握硬(ying)(ying)(ying)件(jian)工(gong)作原(yuan)(yuan)理(li)的(de)(de)(de)(de)(de)基礎上(shang),對(dui)硬(ying)(ying)(ying)件(jian)進行編程(cheng)(cheng)(cheng)控制(zhi)。這(zhe)(zhe)(zhe)和硬(ying)(ying)(ying)件(jian)工(gong)程(cheng)(cheng)(cheng)師(shi)學(xue)習的(de)(de)(de)(de)(de)側重(zhong)點(dian)有(you)所不同(tong)。這(zhe)(zhe)(zhe)一(yi)(yi)階(jie)段對(dui)應的(de)(de)(de)(de)(de)學(xue)校的(de)(de)(de)(de)(de)課程(cheng)(cheng)(cheng)主要(yao)(yao)包(bao)括模擬電路(lu)、數(shu)字電路(lu)、微機原(yuan)(yuan)理(li)和單片機。這(zhe)(zhe)(zhe)一(yi)(yi)階(jie)段重(zhong)點(dian)是(shi)要(yao)(yao)看CPU的(de)(de)(de)(de)(de)芯(xin)片手(shou)冊,大部分的(de)(de)(de)(de)(de)參考書也是(shi)對(dui)芯(xin)片手(shou)冊的(de)(de)(de)(de)(de)翻譯。推薦的(de)(de)(de)(de)(de)參考書籍如下(xia):《ARM嵌(qian)入式(shi)(shi)(shi)系(xi)統開發軟(ruan)件(jian)設計(ji)與優化》,《ARM處理(li)器開發詳解 基于ARM Cortex-A8處理(li)器的(de)(de)(de)(de)(de)開發設計(ji)》
3、學習嵌入式系統的構建
這(zhe)一階段(duan)主要學習帶(dai)有(you)操作系(xi)(xi)統(tong)(tong)(tong)的(de)嵌(qian)(qian)入式(shi)系(xi)(xi)統(tong)(tong)(tong)的(de)構建(jian),包(bao)括系(xi)(xi)統(tong)(tong)(tong)的(de)啟動流程(cheng)、Bootloader的(de)工作流程(cheng)、UBOOT的(de)編(bian)譯、裁剪與移(yi)植、嵌(qian)(qian)入式(shi)Linux內(nei)核(he)的(de)裁剪、移(yi)植與編(bian)譯,嵌(qian)(qian)入式(shi)根(gen)文件(jian)系(xi)(xi)統(tong)(tong)(tong)的(de)定制、BootLoader、內(nei)核(he)和根(gen)文件(jian)系(xi)(xi)統(tong)(tong)(tong)的(de)燒寫(xie)。 這(zhe)一階段(duan)的(de)主要目的(de)是(shi)掌握帶(dai)有(you)操作系(xi)(xi)統(tong)(tong)(tong)的(de)嵌(qian)(qian)入式(shi)系(xi)(xi)統(tong)(tong)(tong)的(de)構建(jian)和燒寫(xie)過程(cheng),以(yi)及(ji)對嵌(qian)(qian)入式(shi)系(xi)(xi)統(tong)(tong)(tong)軟(ruan)(ruan)件(jian)的(de)總體(ti)構成(cheng)有(you)個整(zheng)體(ti)認識,為我們接下(xia)來學習嵌(qian)(qian)入式(shi)應用和驅動開發打下(xia)堅(jian)實的(de)基礎。 這(zhe)一階段(duan)推薦的(de)書籍如下(xia):《構建(jian)嵌(qian)(qian)入式(shi)Linux核(he)心軟(ruan)(ruan)件(jian)系(xi)(xi)統(tong)(tong)(tong)實戰》
4、學習嵌入(ru)式Linux應(ying)用(yong)程(cheng)序開發
這一階段(duan)主要學習上層的(de)嵌(qian)入(ru)式(shi)Linux應用(yong)程(cheng)序(xu)開發,包括(kuo)基于Linux多進程(cheng)、多線程(cheng)、網絡(luo)、文件(jian)與目錄和(he)QT編(bian)程(cheng)。掌(zhang)握嵌(qian)入(ru)式(shi)Linux環境(jing)下應用(yong)程(cheng)序(xu)開發技(ji)術(shu)。這一階段(duan)推薦的(de)書籍有: 《UNIX環境(jing)高級編(bian)程(cheng)》, 《Unix網絡(luo)編(bian)程(cheng)》,《Qt Creator快速入(ru)門》, 《精通Qt4編(bian)程(cheng)》
5、學習嵌入式Linux驅動(dong)程序開發(fa)
這一(yi)階段主(zhu)要學(xue)習底層嵌入式(shi)Linux設(she)(she)備(bei)(bei)(bei)驅(qu)(qu)(qu)動(dong)程序(xu)開(kai)(kai)發設(she)(she)計,包括常用的(de)字(zi)符設(she)(she)備(bei)(bei)(bei)驅(qu)(qu)(qu)動(dong)、塊設(she)(she)備(bei)(bei)(bei)驅(qu)(qu)(qu)動(dong)、LCD設(she)(she)備(bei)(bei)(bei)驅(qu)(qu)(qu)動(dong)、觸摸屏設(she)(she)備(bei)(bei)(bei)驅(qu)(qu)(qu)動(dong)以及驅(qu)(qu)(qu)動(dong)程序(xu)開(kai)(kai)發中(zhong)的(de)核心技術(shu)。這一(yi)階段推薦的(de)參(can)考書籍有:《Linux設(she)(she)備(bei)(bei)(bei)驅(qu)(qu)(qu)動(dong)程序(xu)》,《Linux設(she)(she)備(bei)(bei)(bei)驅(qu)(qu)(qu)動(dong)開(kai)(kai)發詳解》。
6、完成一個綜合項目
嵌(qian)入(ru)式技(ji)術關(guan)鍵在于理論和實(shi)踐的(de)結合(he),要(yao)能(neng)夠學(xue)以致用(yong)(yong),完(wan)成(cheng)了(le)以上的(de)所有階段(duan)的(de)知(zhi)識(shi)(shi)點學(xue)習后,到底有沒有學(xue)會(hui)(hui),會(hui)(hui)不(bu)會(hui)(hui)用(yong)(yong),能(neng)不(bu)能(neng)應(ying)(ying)用(yong)(yong)所學(xue)知(zhi)識(shi)(shi)來解決(jue)實(shi)際開發中的(de)問題,我(wo)們需要(yao)來完(wan)成(cheng)一(yi)個(ge)綜合(he)的(de)嵌(qian)入(ru)式實(shi)訓(xun)項目(mu)(mu),例(li)如: 基于嵌(qian)入(ru)式Linux平臺(tai)實(shi)現的(de)飛行(xing)器(qi)、 基于嵌(qian)入(ru)式Linux平臺(tai)實(shi)現的(de)智能(neng)機器(qi)人等,這些項目(mu)(mu)都綜合(he)應(ying)(ying)用(yong)(yong)了(le)嵌(qian)入(ru)式開發當(dang)中的(de)應(ying)(ying)用(yong)(yong),驅動和QT開發技(ji)術。
以上介紹的就是嵌入式軟件工程師學習路線圖了,在學員們系統的學習嵌入式知識后,嵌入式基本上就算入門了,這時候去應聘企業的嵌入式研發工程師崗位就不會有什么問題了。

