嵌入式技術(shù)學(xué)習(xí)路線
點(diǎn)擊上方藍(lán)字關(guān)注我哦~
01
前言
嵌入式技術(shù)是各種電子產(chǎn)品的核心技術(shù),也是工業(yè)4.0、遠(yuǎn)程醫(yī)療、3D打印等新興產(chǎn)業(yè)的核心技術(shù),具有廣闊的發(fā)展前景。很多計(jì)算機(jī)、電子信息類專業(yè)的學(xué)生都想把嵌入式開發(fā)作為自己的職業(yè)目標(biāo),但是因?yàn)榍度胧缴婕暗闹R(shí)太多,太雜,太廣,很多嵌入式初學(xué)者陷入嵌入式知識(shí)的海洋中,東學(xué)一點(diǎn),西學(xué)一點(diǎn),找不到學(xué)習(xí)的方向。作為過(guò)來(lái)人,給大家談?wù)務(wù)_的嵌入式學(xué)習(xí)路線,供各位嵌入式初學(xué)者參考,希望對(duì)大家有所幫助。
嵌入式工程師需要掌握的內(nèi)容非常廣泛,主要包括嵌入式軟件、嵌入式硬件、以及相關(guān)行業(yè)、產(chǎn)品的專業(yè)知識(shí)。作為嵌入式初學(xué)者,我們不可能,也沒有那么多精力把所有的知識(shí)到搞的很精通,我們要學(xué)會(huì)抓住重點(diǎn),學(xué)會(huì)取舍,達(dá)到一通百通,事半功倍的學(xué)習(xí)效果。
首先嵌入式技術(shù)主要分為嵌入式軟件和嵌入式硬件2大方向。
02
嵌入式硬件方向
嵌入式硬件工程師主要工作職責(zé)是為產(chǎn)品設(shè)計(jì)硬件電路原理圖,設(shè)計(jì)硬件PCB板,選擇合適的元器件,焊接調(diào)試硬件電路板,保證硬件電路板的可靠性、穩(wěn)定性和抗干擾能力。因?yàn)楝F(xiàn)在集成電路發(fā)展迅速,大部分集成電路廠商都會(huì)提供參考電路,所以硬件電路原理圖的設(shè)計(jì)相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,硬件工程師工作的含金量主要體現(xiàn)在產(chǎn)品的可靠性和穩(wěn)定性設(shè)計(jì)、以及電磁兼容設(shè)計(jì),這才是硬件設(shè)計(jì)工程師的含金量所在。一個(gè)資深的嵌入式硬件工程師年薪都在10萬(wàn)~ 30萬(wàn)之間。
要成為一個(gè)資深的嵌入式工程師相當(dāng)難,一方面要有非常扎實(shí)的理論知識(shí),同時(shí)也要有相當(dāng)?shù)哪欠N大型的、高頻CPU、多層PCB板的設(shè)計(jì)經(jīng)驗(yàn)。嵌入式硬件工程師要學(xué)的課程主要有模擬電路設(shè)計(jì)、數(shù)字電路設(shè)計(jì)、電磁波理論等。熟悉常用的放大電路、濾波電路、電源電路設(shè)計(jì)和分析。
03
嵌入式軟件方向
嵌入式軟件工程師的職責(zé)主要是根據(jù)產(chǎn)品的功能需求設(shè)計(jì)好軟件,讓硬件工作起來(lái)。嵌入式電子產(chǎn)品硬件部分,大部分都是相同的,核心的都是由CPU、RAM和FLASH 幾大部分組成,而軟件就千差萬(wàn)別了。產(chǎn)品的具體功能都是由軟件來(lái)實(shí)現(xiàn)的,一般來(lái)講一個(gè)產(chǎn)品的實(shí)現(xiàn),軟件設(shè)計(jì)的工作量是硬件設(shè)計(jì)的4~5倍。所以一般情況下,一個(gè)公司的軟件工程師數(shù)量是硬件硬件工程師的4~5倍,嵌入式軟件工程師需求比硬件工程師大很多,同時(shí)跟硬件工程師相比,嵌入式軟件工程師學(xué)起來(lái)相對(duì)容易些,所以這里我重點(diǎn)和大家談一下嵌入式軟件工程的學(xué)習(xí)路線。
打好嵌入式軟件編程的基礎(chǔ)
這一階段重點(diǎn)打好嵌入式軟件編程的基礎(chǔ),包括學(xué)習(xí)Linux系統(tǒng)的基本應(yīng)用,Linux的常用命令、C語(yǔ)言編程基礎(chǔ)、常用的數(shù)據(jù)結(jié)構(gòu)。
特別是C語(yǔ)言中對(duì)指針的理解和應(yīng)用。這一階段的主要目的是學(xué)習(xí)編程語(yǔ)言、開發(fā)環(huán)境、和培養(yǎng)自己的編程思維,為進(jìn)一步學(xué)習(xí)嵌入式開發(fā)打下良好的基礎(chǔ)。這一階段推薦的嵌入式學(xué)習(xí)書籍如下:《C程序設(shè)計(jì)語(yǔ)言》,《C語(yǔ)言核心技術(shù)》,《數(shù)據(jù)結(jié)構(gòu)與算法分析--C語(yǔ)言描述》,《C和指針》,《C陷阱與缺陷》,《C++ Primer》
學(xué)習(xí)ARM體系結(jié)構(gòu)編程
這一階段才是真正的嵌入式編程,首先我們要選擇一款嵌入式CPU和一款嵌入式開發(fā)平臺(tái),目前ARM 嵌入式CPU應(yīng)用最廣泛,這一階段重點(diǎn)是學(xué)習(xí)嵌入式CPU的裸機(jī)編程,熟悉中斷、定時(shí)器、串口、NAND FLASH、網(wǎng)絡(luò)控制器、LCD屏、觸摸屏等常用嵌入式外圍設(shè)備的硬件工作原理,以及如何使用C語(yǔ)言來(lái)編程、控制這些硬件。這一階段除了要學(xué)習(xí)對(duì)硬件編程之外,還需要學(xué)習(xí)嵌入式硬件的知識(shí),但是對(duì)于嵌入式軟件工程師來(lái)講,重點(diǎn)是學(xué)習(xí)硬件的工作原理,在掌握硬件工作原理的基礎(chǔ)上,對(duì)硬件進(jìn)行編程控制。這和硬件工程師學(xué)習(xí)的側(cè)重點(diǎn)有所不同。這一階段對(duì)應(yīng)的學(xué)校的課程主要包括模擬電路、數(shù)字電路、微機(jī)原理和單片機(jī)。這一階段重點(diǎn)是要看CPU的芯片手冊(cè),大部分的參考書也是對(duì)芯片手冊(cè)的翻譯。推薦的參考書籍如下:《ARM嵌入式系統(tǒng)開發(fā)--
軟件設(shè)計(jì)與優(yōu)化》,《ARM處理器開發(fā)詳解 基于ARM Cortex-A8處理器的開發(fā)設(shè)計(jì)》
學(xué)習(xí)嵌入式系統(tǒng)的構(gòu)建
這一階段主要學(xué)習(xí)帶有操作系統(tǒng)的嵌入式系統(tǒng)的構(gòu)建,包括系統(tǒng)的啟動(dòng)流程、Bootloader的工作流程、UBOOT的編譯、裁剪與移植、嵌入式Linux內(nèi)核的裁剪、移植與編譯,嵌入式根文件系統(tǒng)的定制、BootLoader、內(nèi)核和根文件系統(tǒng)的燒寫。這一階段的主要目的是掌握帶有操作系統(tǒng)的嵌入式系統(tǒng)的構(gòu)建和燒寫過(guò)程,以及對(duì)嵌入式系統(tǒng)軟件的總體構(gòu)成有個(gè)整體認(rèn)識(shí),為我們接下來(lái)學(xué)習(xí)嵌入式應(yīng)用和驅(qū)動(dòng)開發(fā)打下堅(jiān)實(shí)的基礎(chǔ)。這一階段推薦的書籍如下:《構(gòu)建嵌入式Linux核心軟件系統(tǒng)實(shí)戰(zhàn)》
學(xué)習(xí)嵌入式Linux應(yīng)用程序開發(fā)
這一階段主要學(xué)習(xí)上層的嵌入式Linux應(yīng)用程序開發(fā),包括基于Linux多進(jìn)程、多線程、網(wǎng)絡(luò)、文件與目錄和QT編程。掌握嵌入式Linux環(huán)境下應(yīng)用程序開發(fā)技術(shù)。這一階段推薦的書籍有:《UNIX環(huán)境高級(jí)編程》, 《Unix網(wǎng)絡(luò)編程》,《Qt Creator快速入門》, 《精通Qt4編程》
學(xué)習(xí)嵌入式Linux驅(qū)動(dòng)程序開發(fā)
這一階段主要學(xué)習(xí)底層嵌入式Linux設(shè)備驅(qū)動(dòng)程序開發(fā)設(shè)計(jì),包括常用的字符設(shè)備驅(qū)動(dòng)、塊設(shè)備驅(qū)動(dòng)、LCD設(shè)備驅(qū)動(dòng)、觸摸屏設(shè)備驅(qū)動(dòng)以及驅(qū)動(dòng)程序開發(fā)中的核心技術(shù)。這一階段推薦的參考書籍有:《Linux設(shè)備驅(qū)動(dòng)程序》,《Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解》
完成一個(gè)綜合項(xiàng)目
嵌入式技術(shù)關(guān)鍵在于理論和實(shí)踐的結(jié)合,要能夠?qū)W以致用,完成了以上的所有階段的知識(shí)點(diǎn)學(xué)習(xí)后,到底有沒有學(xué)會(huì),會(huì)不會(huì)用,能不能應(yīng)用所學(xué)知識(shí)來(lái)解決實(shí)際開發(fā)中的問題,我們需要來(lái)完成一個(gè)綜合的嵌入式實(shí)訓(xùn)項(xiàng)目,例如:基于嵌入式Linux平臺(tái)實(shí)現(xiàn)的飛行器、 基于嵌入式Linux平臺(tái)實(shí)現(xiàn)的智能機(jī)器人等,這些項(xiàng)目都綜合應(yīng)用了嵌入式開發(fā)當(dāng)中的應(yīng)用,驅(qū)動(dòng)和QT開發(fā)技術(shù)。
以上就是我建議的比較系統(tǒng)的嵌入式學(xué)習(xí)路線。系統(tǒng)學(xué)習(xí)并能靈活應(yīng)用以上知識(shí)后,嵌入式基本上就算入門了,具備企業(yè)項(xiàng)目的嵌入式研發(fā)能力了,這時(shí)候去應(yīng)聘企業(yè)的嵌入式研發(fā)工程師崗位就不會(huì)有什么問題了。
/ The End /
推薦閱讀
如何系統(tǒng)地入門學(xué)習(xí)stm32?
免責(zé)聲明:本文轉(zhuǎn)載自知乎,作者:清酒與水,版權(quán)歸原作者所有。如涉及作品版權(quán)問題,請(qǐng)與我聯(lián)系刪除。
掃碼關(guān)注我們
看更多嵌入式案例
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!