嵌入式開(kāi)發(fā)怎么安排學(xué)習(xí)不迷路?
嵌入式開(kāi)發(fā)是如今IT應(yīng)用領(lǐng)域最熱門(mén)的技術(shù)之一,企業(yè)對(duì)于嵌入式開(kāi)發(fā)人才的需求隨著科技發(fā)展越來(lái)越大,大到汽車電子、航天航空設(shè)備工廠流水線,小到儀器、路由器、手機(jī),甚至組成普通PC終端設(shè)備的鍵盤(pán)、鼠標(biāo)、硬盤(pán)、Modem等均是由嵌入式處理器控制的。
那我們?cè)撊绾稳W(xué)習(xí)呢?
01.入門(mén)
51+STM32:中斷、定時(shí)器、串口、NAND FLASH、網(wǎng)絡(luò)控制器、LCD屏、觸摸屏等的工作原理。
C語(yǔ)言:嵌入式編程大多用C語(yǔ)言,少量匯編,C語(yǔ)言必須熟練掌握。
電路:基本的模擬電路、數(shù)字電路知識(shí),能大概明白電路原理圖;掌握從原理圖到PCB板的技能或常識(shí);會(huì)焊接、調(diào)試,使用常用儀表。
學(xué)習(xí)建議
如果你以后的方向是驅(qū)動(dòng)開(kāi)發(fā),這部分學(xué)習(xí)的話重點(diǎn)放在硬件知識(shí)的理解。買(mǎi)個(gè)開(kāi)發(fā)板,學(xué)習(xí)下他們的例程是如何寫(xiě)的,常用嵌入式外圍設(shè)備的硬件工作原理,以及如何使用C語(yǔ)言來(lái)編程、控制這些硬件。把基本的外設(shè)都學(xué)習(xí)一遍,不求都會(huì)寫(xiě),但是硬件原理一定要搞清楚。
02.進(jìn)階
ARM-A+Linux
這部分主要分為兩個(gè)方向:Linux應(yīng)用開(kāi)發(fā),Linux驅(qū)動(dòng)開(kāi)發(fā)。
Linux應(yīng)用開(kāi)發(fā):Linux系統(tǒng)調(diào)用概念,多進(jìn)程,多線程實(shí)現(xiàn)多任務(wù)開(kāi)發(fā),多任務(wù)的同步互斥開(kāi)發(fā):互斥鎖、信號(hào)量,網(wǎng)絡(luò)數(shù)據(jù)通信過(guò)程,TCP/IP協(xié)議,Socket編程、TCP網(wǎng)絡(luò)編程、UDP網(wǎng)絡(luò)編程,QT編程。
驅(qū)動(dòng)開(kāi)發(fā):Bootloader的工作流程、UBOOT的編譯、裁剪與移植、Linux內(nèi)核的編譯、裁剪與移植,根文件系統(tǒng)的構(gòu)建、BootLoader、內(nèi)核和根文件系統(tǒng)的燒寫(xiě)。
學(xué)習(xí)建議
作為初學(xué)者,學(xué)習(xí)驅(qū)動(dòng)開(kāi)發(fā)主要學(xué)習(xí)驅(qū)動(dòng)的框架(比如,輸入子系統(tǒng)模型常用的一個(gè)函數(shù)input_attach_handler()這個(gè)函數(shù),剛開(kāi)始我們只需要知道他是用來(lái)匹配dev設(shè)備和驅(qū)動(dòng)軟件就可以,暫時(shí)可以不用知道這個(gè)函數(shù)內(nèi)部是如何實(shí)現(xiàn)的)。有一定基礎(chǔ)之后,可以再去深究其中的某個(gè)點(diǎn),思考他們?yōu)槭裁催@么寫(xiě)。
03.未來(lái)規(guī)劃
具備一定基礎(chǔ)了,后續(xù)發(fā)展看個(gè)人愛(ài)好或市場(chǎng)需求,軟件或硬件或全棧,相比來(lái)說(shuō)嵌入式軟件需求大。其下細(xì)分單片機(jī)開(kāi)發(fā)支持RTOS實(shí)時(shí)系統(tǒng)或者Linux,前者容易,后者需求大,但入門(mén)難,即使精通一個(gè)組件或方向也能發(fā)展不錯(cuò)。Linux路線,先學(xué)會(huì)應(yīng)用開(kāi)發(fā),再驅(qū)動(dòng),最后深入內(nèi)核。
基本上規(guī)劃大概率決定了職業(yè)方向,盡早規(guī)劃,提前準(zhǔn)備,有針對(duì)性的學(xué)習(xí)RTOS或者Linux或者硬件電路,后續(xù)往深度發(fā)展。如果不適合技術(shù)路線,有點(diǎn)基礎(chǔ)再?gòu)氖率袌?chǎng)營(yíng)銷也大有裨益。
除技術(shù)之外,嵌入式開(kāi)發(fā)對(duì)行業(yè)經(jīng)驗(yàn)也有一定要求,不同行業(yè)應(yīng)用的技術(shù)側(cè)重點(diǎn)不同,可以參考相關(guān)公司的招聘要求,有針對(duì)性的去了解。
選擇比努力重要,同樣是軟件開(kāi)發(fā),不同行業(yè)也存在較大區(qū)別。第一份工作盡量選個(gè)好方向、挑大公司,有這些起點(diǎn)背景,后續(xù)發(fā)展會(huì)更好;最開(kāi)始的方向和平臺(tái)沒(méi)選對(duì),后面再折騰會(huì)走很多彎路,也許一生的職業(yè)發(fā)展就在錯(cuò)誤的路上,再努力也很難達(dá)到一定高度。