王生飲啖茶
大致分為三個(gè)階段:基礎(chǔ)篇、進(jìn)階篇、大咖篇。入門嵌入式工程師此階段主要是前期的入門過(guò)程,主要針對(duì)入行沒(méi)多久的新人。其實(shí)成功沒(méi)有捷徑,所以打好基礎(chǔ)才是關(guān)鍵。嵌入式開發(fā)要學(xué)什么主要包含以下4個(gè)方面的內(nèi)容:1.電路知識(shí) 首先你要學(xué)習(xí)電路、模電、數(shù)電,認(rèn)識(shí)電阻、電容、三極管,基礎(chǔ)器件要知道,放大電路、集成運(yùn)放、時(shí)序電路基本電路能看懂,不然看電路圖一定是云里霧里,也就無(wú)法進(jìn)行后續(xù)的工作。硬件產(chǎn)品的設(shè)計(jì)實(shí)現(xiàn),包括器件選型、原理圖和PCB設(shè)計(jì)、電路調(diào)試,都需要過(guò)硬的電路基礎(chǔ)。語(yǔ)言C語(yǔ)言是嵌入式開發(fā)中最重要的編程語(yǔ)言,要對(duì)這門語(yǔ)言有深入的理解,畢竟不僅僅要會(huì)寫程序,看懂他人程序也很重要。最基本的數(shù)據(jù)類型、數(shù)組、指針、結(jié)構(gòu)體,鏈表、文件操作等都要會(huì),掌握基本語(yǔ)法和語(yǔ)句,不然你要能區(qū)分指針數(shù)組與數(shù)組指針嗎?3.單片機(jī) 單片機(jī)入門相對(duì)簡(jiǎn)單,通過(guò)單片機(jī)的學(xué)習(xí)可以熟悉單片機(jī)的硬件結(jié)構(gòu),包括I/O口、AD轉(zhuǎn)換、通信(串口、并口、I2C、CAN、USB、以太網(wǎng)、ZigBee技術(shù)等)、顯示(LED、LCD等)、控制(PWM等控制技術(shù))、數(shù)據(jù)處理(圖形、圖像、語(yǔ)音、視頻等的處理或識(shí)別)等,學(xué)好單片機(jī)可以為采用嵌入式系統(tǒng)奠定良好的基礎(chǔ)。4Linux基礎(chǔ)Linux的源碼和架構(gòu)都是開放的,在嵌入式系統(tǒng)中應(yīng)用尤為廣泛,學(xué)習(xí)Linux對(duì)于系統(tǒng)的開發(fā)會(huì)有很大的幫助。詳細(xì)了解Linux下的目錄結(jié)構(gòu)、基本命令、編輯器VI、編譯器GCC、調(diào)試器GDB和 Make 項(xiàng)目管理工具,Shell Makefile腳本編寫等知識(shí),以及嵌入式開發(fā)環(huán)境的搭建。中級(jí)嵌入式工程師經(jīng)過(guò)第一個(gè)階段的學(xué)習(xí),你已經(jīng)可以進(jìn)行嵌入式開發(fā)工作了,但是要進(jìn)階依舊還有很多知識(shí)要學(xué),而這個(gè)階段也將是第一個(gè)分水嶺,使得優(yōu)秀的嵌入式工程師得以脫穎而出。此階段雖然只有三項(xiàng),但涉及的知識(shí)非常廣,要想學(xué)好需要花費(fèi)大量的精力。編程系統(tǒng)編程可以直接跟內(nèi)核及核心系統(tǒng)程序庫(kù)對(duì)話,深入了解Linux內(nèi)核。掌握Linux系統(tǒng)編程主要提升對(duì)Linux應(yīng)用開發(fā)的理解和代碼調(diào)試的能力。由于網(wǎng)絡(luò)應(yīng)用開發(fā)越來(lái)越廣泛,通過(guò)Linux網(wǎng)絡(luò)發(fā)展、TCP/IP協(xié)議、socket編程、TCP網(wǎng)絡(luò)編程、UDP網(wǎng)絡(luò)編程、Web編程開發(fā)等方面入手,可以全面了解Linux網(wǎng)絡(luò)應(yīng)用程序開發(fā)。2數(shù)據(jù)結(jié)構(gòu)與算法 數(shù)據(jù)結(jié)構(gòu)及算法在嵌入式底層驅(qū)動(dòng)、通信協(xié)議及各種引擎開發(fā)中得到了廣泛的應(yīng)用,語(yǔ)言編譯要使用棧、散列表以及語(yǔ)法樹;操作系統(tǒng)中用隊(duì)列、存儲(chǔ)管理表及目錄樹等;數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)用線型表、多鏈表及索引表進(jìn)行數(shù)據(jù)管理等等,對(duì)其掌握的好壞直接影響程序的效率、簡(jiǎn)潔及健壯性。、DSP、FPGALinux沒(méi)有自己界面,學(xué)習(xí)QT編程可以創(chuàng)建藝術(shù)級(jí)的圖形用戶界面所需的所有功能,從而更好的實(shí)現(xiàn)人機(jī)交互控制。而如今用戶對(duì)于圖形圖像的要求也越來(lái)越高,這就需要DSP、FPGA技術(shù)來(lái)設(shè)計(jì)開發(fā)更好的嵌入式視覺(jué)系統(tǒng)。高級(jí)嵌入式工程師學(xué)習(xí)了前兩個(gè)階段的知識(shí),你已經(jīng)可以勝任大部分嵌入式工作了,但是距離大咖仍有一定的差距,其實(shí)已經(jīng)到了第二個(gè)分水嶺。這部分更多涉及系統(tǒng)層面,沒(méi)有全方位的知識(shí)將會(huì)很難下手。1操作系統(tǒng)平臺(tái)開發(fā) 除了Linux外,嵌入式操作系統(tǒng)還有ARM、WINCE、uC/OS II、Vxworks、uClinux等,不同的系統(tǒng)有著不同的使用環(huán)境,你需要學(xué)習(xí)掌握系統(tǒng)的各個(gè)模塊,為底層平臺(tái)搭建做好準(zhǔn)備。熟悉各個(gè)操作系統(tǒng)的特點(diǎn)以及系統(tǒng)的內(nèi)核移植,確保操作系統(tǒng)能在某個(gè)微處理器或微控制器上運(yùn)行。隨著手機(jī)智能硬件的快速興起,Android操作系統(tǒng)開發(fā)也越來(lái)越重要。2驅(qū)動(dòng)開發(fā) 驅(qū)動(dòng)程序設(shè)計(jì)是嵌入式Linux開發(fā)工作中非常重要的一部分。不僅要熟悉Linux的內(nèi)核機(jī)制、驅(qū)動(dòng)程序與用戶級(jí)應(yīng)用程序的接口,掌握系統(tǒng)對(duì)設(shè)備的并發(fā)操作。還要具備ARM硬件接口的基礎(chǔ)知識(shí),熟悉ARM Cortex處理器各資源、掌握Linux設(shè)備驅(qū)動(dòng)原理框架,以及工程中常見Linux高級(jí)字符設(shè)備、塊設(shè)備、網(wǎng)絡(luò)設(shè)備、USB設(shè)備的驅(qū)動(dòng)開發(fā)。當(dāng)你到達(dá)這個(gè)位置的時(shí)候,可以說(shuō)你已經(jīng)是一個(gè)人生贏家了,而真正的學(xué)習(xí)過(guò)程如同一場(chǎng)漫長(zhǎng)的修行,在這個(gè)過(guò)程中,必定有各種各樣的困難。當(dāng)然了,嵌入式工作中更多的需要實(shí)踐以及經(jīng)驗(yàn)的積累,相信守得云開見月明,你也可成為一名優(yōu)秀的嵌入式工程師。需要嵌入式培訓(xùn),可以來(lái)到華清的星創(chuàng)客精英訓(xùn)練營(yíng),專門培訓(xùn)中高端嵌入式工程師。
激動(dòng)的小胖
面對(duì)如此火熱的行業(yè),如何才能成為嵌入式Linux開發(fā)工程師?成為一名合格的嵌入式Linux開發(fā)工程師需要學(xué)習(xí)哪些知識(shí)?一:C語(yǔ)言 嵌入式Linux工程師的學(xué)習(xí)需要具備一定的C語(yǔ)言基礎(chǔ),C語(yǔ)言是嵌入式領(lǐng)域最重要也是最主要的編程語(yǔ)言,通過(guò)大量編程實(shí)例重點(diǎn)理解C語(yǔ)言的基礎(chǔ)編程以及高級(jí)編程知識(shí)。包括:基本數(shù)據(jù)類型、數(shù)組、指針、結(jié)構(gòu)體、鏈表、文件操作、隊(duì)列、棧等。二:Linux基礎(chǔ) Linux操作系統(tǒng)的概念、安裝方法,詳細(xì)了解Linux下的目錄結(jié)構(gòu)、基本命令、編輯器VI ,編譯器GCC,調(diào)試器GDB和 Make 項(xiàng)目管理工具, Shell Makefile腳本編寫等知識(shí),嵌入式開發(fā)環(huán)境的搭建。三:Linux系統(tǒng)編程 重點(diǎn)學(xué)習(xí)標(biāo)準(zhǔn)I/O庫(kù),Linux多任務(wù)編程中的多進(jìn)程和多線程,以及進(jìn)程間通信(pipe、FIFO、消息隊(duì)列、共享內(nèi)存、signal、信號(hào)量等),同步與互斥對(duì)共享資源訪問(wèn)控制等重要知識(shí),主要提升對(duì)Linux應(yīng)用開發(fā)的理解和代碼調(diào)試的能力。四:Linux網(wǎng)絡(luò)編程 計(jì)算機(jī)網(wǎng)絡(luò)在嵌入式Linux系統(tǒng)應(yīng)用開發(fā)過(guò)程中使用非常廣泛,通過(guò)Linux網(wǎng)絡(luò)發(fā)展、TCP/IP協(xié)議、socket編程、TCP網(wǎng)絡(luò)編程、UDP網(wǎng)絡(luò)編程、Web編程開發(fā)等方面入手,全面了解Linux網(wǎng)絡(luò)應(yīng)用程序開發(fā)。重點(diǎn)學(xué)習(xí)網(wǎng)絡(luò)編程相關(guān)API,熟練掌握TCP協(xié)議服務(wù)器的編程方法和并發(fā)服務(wù)器的實(shí)現(xiàn),了解HTTP協(xié)議及其實(shí)現(xiàn)方法,熟悉UDP廣播、多播的原理及編程方法,掌握混合C/S架構(gòu)網(wǎng)絡(luò)通信系統(tǒng)的設(shè)計(jì),熟悉HTML,Javascript等Web編程技術(shù)及實(shí)現(xiàn)方法。五:數(shù)據(jù)結(jié)構(gòu)與算法 數(shù)據(jù)結(jié)構(gòu)及算法在嵌入式底層驅(qū)動(dòng)、通信協(xié)議、及各種引擎開發(fā)中會(huì)得到大量應(yīng)用,對(duì)其掌握的好壞直接影響程序的效率、簡(jiǎn)潔及健壯性。此階段的學(xué)習(xí)要重點(diǎn)理解數(shù)據(jù)結(jié)構(gòu)與算法的基礎(chǔ)內(nèi)容,包括順序表、鏈表、隊(duì)列、棧、樹、圖、哈希表、各種查找排序算法等應(yīng)用及其C語(yǔ)言實(shí)現(xiàn)過(guò)程。六:C++ 、QT C++是Linux應(yīng)用開發(fā)主要語(yǔ)言之一,本階段重點(diǎn)掌握面向?qū)ο缶幊痰幕舅枷胍约癈++的重要內(nèi)容。圖形界面編程是嵌入式開發(fā)中非常重要的一個(gè)環(huán)節(jié)。由于QT具有跨平臺(tái)、面向?qū)ο?、豐富API、支持2D/3D渲染、支持XML、多國(guó)語(yǔ)等強(qiáng)大功能,在嵌入式領(lǐng)域的GUI開發(fā)中得到了廣范的應(yīng)用,在本階段通過(guò)基于QT圖形庫(kù)的學(xué)習(xí)使學(xué)員可以熟練編寫GUI程序,并移植QT應(yīng)用程序到Cortex-A8平臺(tái)。包括IDE使用、QT部件及布局管理器、信息與槽機(jī)制的應(yīng)用、鼠標(biāo)、鍵盤及繪圖事件處理及文件處理的應(yīng)用。七:Cortex A8 、Linux 平臺(tái)開發(fā) 通過(guò)基于ARM Cortex-A8處理s5pv210了解芯片手冊(cè)的基本閱讀技巧,掌握s5pv210系統(tǒng)資源、時(shí)鐘控制器、電源管理、異常中斷控制器、nand flash控制器等模塊,為底層平臺(tái)搭建做好準(zhǔn)備。Linux平臺(tái)包括內(nèi)核裁減、內(nèi)核移植、交叉編譯、GNU工具使用、內(nèi)核調(diào)試、Bootloader介紹、制作與原理分析、根文件系統(tǒng)制作以及向內(nèi)核中添加自己的模塊,并在s5pv210實(shí)驗(yàn)平臺(tái)上運(yùn)行自己制作的Linux系統(tǒng),集成部署Linux系統(tǒng)整個(gè)流程。同時(shí)了解Android操作系統(tǒng)開發(fā)流程。Android系統(tǒng)是基于Linux平臺(tái)的開源操作系統(tǒng),該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,是首個(gè)為移動(dòng)終端打造的真正開放和完整的移動(dòng)軟件,目前它的應(yīng)用不再局限于移動(dòng)終端,還包括數(shù)據(jù)電視、機(jī)頂盒、PDA等消費(fèi)類電子產(chǎn)品。八:驅(qū)動(dòng)開發(fā) 驅(qū)動(dòng)程序設(shè)計(jì)是嵌入式Linux開發(fā)工作中重要的一部分,也是比較困難的一部分。本階段的學(xué)習(xí)要熟悉Linux的內(nèi)核機(jī)制、驅(qū)動(dòng)程序與用戶級(jí)應(yīng)用程序的接口,掌握系統(tǒng)對(duì)設(shè)備的并發(fā)操作。熟悉所開發(fā)硬件的工作原理,具備ARM硬件接口的基礎(chǔ)知識(shí),熟悉ARM Cortex-A8處理器s5pv210各資源、掌握Linux設(shè)備驅(qū)動(dòng)原理框架,熟悉工程中常見Linux高級(jí)字符設(shè)備、塊設(shè)備、網(wǎng)絡(luò)設(shè)備、USB設(shè)備等驅(qū)動(dòng)開發(fā),在工作中能獨(dú)立勝任底層驅(qū)動(dòng)開發(fā)。以上就是列出的關(guān)于一名合格嵌入式Linux開發(fā)工程師所必學(xué)的理論知識(shí),其實(shí),作為一個(gè)嵌入式開發(fā)人員,專業(yè)知識(shí)和項(xiàng)目經(jīng)驗(yàn)同樣重要,所以在我們的理論學(xué)習(xí)中也要有一定的項(xiàng)目實(shí)踐,鍛煉自己的項(xiàng)目開發(fā)能力。
曰月無(wú)塵
嵌入式系統(tǒng)是計(jì)算機(jī)軟件和硬件的綜合體,崗位包括:ESE(嵌入式軟件工程師);ADE(嵌入式應(yīng)用開發(fā)工程師);FWE(嵌入式底層開發(fā)工程師);FEC(嵌入式固件開發(fā)工程師),我有全套嵌入式視頻課可以發(fā)給你自學(xué)。
課程內(nèi)容主要包括:
①C,Java核心編程:c語(yǔ)言核心編程,Java核心編程;
②Linux核心操作與算法:Linux系統(tǒng)使用,Linux-c編程核心技術(shù),精品數(shù)據(jù)結(jié)構(gòu),Linux-c編程精髓;
③核心操作與算法:Linux系統(tǒng)編程,Linux網(wǎng)絡(luò)編程核心技術(shù),UI編程,Java核心編程,安卓核心技術(shù);
④ARM+Linux底層開發(fā):數(shù)字電路,ARM編程核心,Linux系統(tǒng)開發(fā),嵌入式Linux驅(qū)動(dòng)開發(fā);
⑤大型項(xiàng)目實(shí)踐:每期安排各類型真實(shí)的項(xiàng)目,詳細(xì)可以找我要資料。
互聯(lián)網(wǎng)行業(yè)目前還是最熱門的行業(yè)之一,學(xué)習(xí)IT技能之后足夠優(yōu)秀是有機(jī)會(huì)進(jìn)入騰訊、阿里、網(wǎng)易等互聯(lián)網(wǎng)大廠高薪就業(yè)的,發(fā)展前景非常好,普通人也可以學(xué)習(xí)。
想要系統(tǒng)學(xué)習(xí),你可以考察對(duì)比一下開設(shè)有相關(guān)專業(yè)的熱門學(xué)校,好的學(xué)校擁有根據(jù)當(dāng)下企業(yè)需求自主研發(fā)課程的能力,能夠在校期間取得大?;虮究茖W(xué)歷,中博軟件學(xué)院、南京課工場(chǎng)、南京北大青鳥等開設(shè)相關(guān)專業(yè)的學(xué)校都是不錯(cuò)的,建議實(shí)地考察對(duì)比一下。
祝你學(xué)有所成,望采納。
習(xí)習(xí)谷風(fēng)
01ARM+Linux開發(fā)ARM系列處理器是專門針對(duì)嵌入式設(shè)備設(shè)計(jì)的,是目前構(gòu)造嵌入式系統(tǒng)硬件平臺(tái)的首選。據(jù)統(tǒng)計(jì),全世界99%的智能手機(jī)和平板電腦都采用ARM架構(gòu)。所有的iPhone和iPad都使用ARM的芯片,ARM在行業(yè)中將扮演一個(gè)極為重要的角色。
02FPGA開發(fā)FPGA是一個(gè)很特殊的芯片,我們熟知的芯片都是CPU,GPU,或者是ASIC。但實(shí)際上,F(xiàn)PGA已經(jīng)走過(guò)了30個(gè)年頭,它目前已經(jīng)成為一個(gè)包含各種先進(jìn)電路,邏輯單元,接口,芯片封裝,制造等技術(shù)的“集大成者”。FPGA由于其結(jié)構(gòu)的特殊性,可以重復(fù)編程,開發(fā)周期較短,價(jià)格便宜等優(yōu)勢(shì)越來(lái)越受到市場(chǎng)的青睞。
03DSP開發(fā)數(shù)字信號(hào)處理
(DSP) 在當(dāng)今的技術(shù)領(lǐng)域中具有非常重要的地位,未來(lái)前景非常廣闊。隨著智能手機(jī)、智能家居、智能汽車、醫(yī)療設(shè)備等技術(shù)的不斷發(fā)展,對(duì)DSP技術(shù)的需求也在不斷增加。
特別是在人工智能、邊緣計(jì)算等方面,DSP技術(shù)的應(yīng)用前景更加廣闊。
04IC設(shè)計(jì)
在國(guó)內(nèi)每年的集成電路產(chǎn)業(yè)銷售額都在增長(zhǎng),那么在龐大的產(chǎn)業(yè)鏈前,人才的需求也在不斷的上升,IC設(shè)計(jì)處于集成電路產(chǎn)業(yè)的龍頭地位,對(duì)產(chǎn)業(yè)整體的發(fā)展起著帶動(dòng)作用。
在就業(yè)選擇上,IC行業(yè)是一個(gè)有著極大發(fā)展前景的行業(yè)。
優(yōu)質(zhì)工程師考試問(wèn)答知識(shí)庫(kù)