小肥羊洋陽
大致分為三個階段:基礎(chǔ)篇、進(jìn)階篇、大咖篇。入門嵌入式工程師此階段主要是前期的入門過程,主要針對入行沒多久的新人。其實(shí)成功沒有捷徑,所以打好基礎(chǔ)才是關(guān)鍵。嵌入式開發(fā)要學(xué)什么主要包含以下4個方面的內(nèi)容:1.電路知識 首先你要學(xué)習(xí)電路、模電、數(shù)電,認(rèn)識電阻、電容、三極管,基礎(chǔ)器件要知道,放大電路、集成運(yùn)放、時序電路基本電路能看懂,不然看電路圖一定是云里霧里,也就無法進(jìn)行后續(xù)的工作。硬件產(chǎn)品的設(shè)計(jì)實(shí)現(xiàn),包括器件選型、原理圖和PCB設(shè)計(jì)、電路調(diào)試,都需要過硬的電路基礎(chǔ)。語言C語言是嵌入式開發(fā)中最重要的編程語言,要對這門語言有深入的理解,畢竟不僅僅要會寫程序,看懂他人程序也很重要。最基本的數(shù)據(jù)類型、數(shù)組、指針、結(jié)構(gòu)體,鏈表、文件操作等都要會,掌握基本語法和語句,不然你要能區(qū)分指針數(shù)組與數(shù)組指針嗎?3.單片機(jī) 單片機(jī)入門相對簡單,通過單片機(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ù)處理(圖形、圖像、語音、視頻等的處理或識別)等,學(xué)好單片機(jī)可以為采用嵌入式系統(tǒng)奠定良好的基礎(chǔ)。4Linux基礎(chǔ)Linux的源碼和架構(gòu)都是開放的,在嵌入式系統(tǒng)中應(yīng)用尤為廣泛,學(xué)習(xí)Linux對于系統(tǒng)的開發(fā)會有很大的幫助。詳細(xì)了解Linux下的目錄結(jié)構(gòu)、基本命令、編輯器VI、編譯器GCC、調(diào)試器GDB和 Make 項(xiàng)目管理工具,Shell Makefile腳本編寫等知識,以及嵌入式開發(fā)環(huán)境的搭建。中級嵌入式工程師經(jīng)過第一個階段的學(xué)習(xí),你已經(jīng)可以進(jìn)行嵌入式開發(fā)工作了,但是要進(jìn)階依舊還有很多知識要學(xué),而這個階段也將是第一個分水嶺,使得優(yōu)秀的嵌入式工程師得以脫穎而出。此階段雖然只有三項(xiàng),但涉及的知識非常廣,要想學(xué)好需要花費(fèi)大量的精力。編程系統(tǒng)編程可以直接跟內(nèi)核及核心系統(tǒng)程序庫對話,深入了解Linux內(nèi)核。掌握Linux系統(tǒng)編程主要提升對Linux應(yīng)用開發(fā)的理解和代碼調(diào)試的能力。由于網(wǎng)絡(luò)應(yīng)用開發(fā)越來越廣泛,通過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ū)動、通信協(xié)議及各種引擎開發(fā)中得到了廣泛的應(yīng)用,語言編譯要使用棧、散列表以及語法樹;操作系統(tǒng)中用隊(duì)列、存儲管理表及目錄樹等;數(shù)據(jù)庫系統(tǒng)運(yùn)用線型表、多鏈表及索引表進(jìn)行數(shù)據(jù)管理等等,對其掌握的好壞直接影響程序的效率、簡潔及健壯性。、DSP、FPGALinux沒有自己界面,學(xué)習(xí)QT編程可以創(chuàng)建藝術(shù)級的圖形用戶界面所需的所有功能,從而更好的實(shí)現(xiàn)人機(jī)交互控制。而如今用戶對于圖形圖像的要求也越來越高,這就需要DSP、FPGA技術(shù)來設(shè)計(jì)開發(fā)更好的嵌入式視覺系統(tǒng)。高級嵌入式工程師學(xué)習(xí)了前兩個階段的知識,你已經(jīng)可以勝任大部分嵌入式工作了,但是距離大咖仍有一定的差距,其實(shí)已經(jīng)到了第二個分水嶺。這部分更多涉及系統(tǒng)層面,沒有全方位的知識將會很難下手。1操作系統(tǒng)平臺開發(fā) 除了Linux外,嵌入式操作系統(tǒng)還有ARM、WINCE、uC/OS II、Vxworks、uClinux等,不同的系統(tǒng)有著不同的使用環(huán)境,你需要學(xué)習(xí)掌握系統(tǒng)的各個模塊,為底層平臺搭建做好準(zhǔn)備。熟悉各個操作系統(tǒng)的特點(diǎn)以及系統(tǒng)的內(nèi)核移植,確保操作系統(tǒng)能在某個微處理器或微控制器上運(yùn)行。隨著手機(jī)智能硬件的快速興起,Android操作系統(tǒng)開發(fā)也越來越重要。2驅(qū)動開發(fā) 驅(qū)動程序設(shè)計(jì)是嵌入式Linux開發(fā)工作中非常重要的一部分。不僅要熟悉Linux的內(nèi)核機(jī)制、驅(qū)動程序與用戶級應(yīng)用程序的接口,掌握系統(tǒng)對設(shè)備的并發(fā)操作。還要具備ARM硬件接口的基礎(chǔ)知識,熟悉ARM Cortex處理器各資源、掌握Linux設(shè)備驅(qū)動原理框架,以及工程中常見Linux高級字符設(shè)備、塊設(shè)備、網(wǎng)絡(luò)設(shè)備、USB設(shè)備的驅(qū)動開發(fā)。當(dāng)你到達(dá)這個位置的時候,可以說你已經(jīng)是一個人生贏家了,而真正的學(xué)習(xí)過程如同一場漫長的修行,在這個過程中,必定有各種各樣的困難。當(dāng)然了,嵌入式工作中更多的需要實(shí)踐以及經(jīng)驗(yàn)的積累,相信守得云開見月明,你也可成為一名優(yōu)秀的嵌入式工程師。需要嵌入式培訓(xùn),可以來到華清的星創(chuàng)客精英訓(xùn)練營,專門培訓(xùn)中高端嵌入式工程師。
請叫我姚鍋
嵌入式硬件工程師需要學(xué)的技能如下:
嵌入式硬件工程不但要求具備硬件工程師的基本技能,還必須完成部分軟件工程師的工作,例如:底層驅(qū)動的開發(fā)、嵌入式操作系統(tǒng)的裁剪,移植:GUI、文件系統(tǒng)等軟件的移植;基于嵌入式操作系統(tǒng)的底層驅(qū)動程序的設(shè)計(jì)等。
一個合格的嵌入式硬件工程師,不僅要懂得硬件電路的設(shè)計(jì)和制作,還需要懂得固件程序的設(shè)計(jì)和調(diào)試,只有這樣才能算完整的硬件工程師。當(dāng)然,也分單片機(jī)嵌入式工程師和Linux嵌入式系統(tǒng)硬件工程師,前者更容易些,后者相對較復(fù)雜。
嵌入式硬件工程師需要學(xué)會的基礎(chǔ)技能:
1、由需求分析到總體方案、詳細(xì)設(shè)計(jì)的規(guī)劃創(chuàng)造能力。2、熟練運(yùn)用設(shè)計(jì)工具,設(shè)計(jì)原理圖、PCB板的能力。3、熟練運(yùn)用單片機(jī)、DSP、PLD、FPGA等進(jìn)行軟硬件開發(fā)調(diào)試的能力。4、熟練運(yùn)用仿真工具、示波器、信號發(fā)生器、邏輯分析儀等調(diào)測硬件的能力。
5、掌握常用的標(biāo)準(zhǔn)電路的設(shè)計(jì)能力,如復(fù)位電路、常用濾波器電路、功放電路、高速信號傳輸線的匹配電路等。6、故障定位、解決問題的能力。7、設(shè)計(jì)文檔的組織編寫技能。
優(yōu)質(zhì)工程師考試問答知識庫