嵌入式開(kāi)發(fā)要學(xué)哪些,嵌入式可以簡(jiǎn)單分為硬件與軟件,然而其中的知識體系卻是異常的龐大,這也是眾多新手望而卻步的一個(gè)原因,那究竟要如何才能成為一名嵌入式大牛呢? 入門(mén)嵌入式工程師 此階段主要是前期的入門(mén)過(guò)程,主要針對入行沒(méi)多久的新人。其實(shí)成功沒(méi)有捷徑,所以打好基礎才是關(guān)鍵。嵌入式開(kāi)發(fā)要學(xué)什么主要包含以下4個(gè)方面的內容: 1.電路知識 首先你要學(xué)習電路、模電、數電,認識電阻、電容、三極管,基礎器件要知道,放大電路、集成運放、時(shí)序電路基本電路能看懂,不然看電路圖一定是云里霧里,也就無(wú)法進(jìn)行后續的工作。硬件產(chǎn)品的設計實(shí)現,包括器件選型、原理圖和PCB設計、電路調試,都需要過(guò)硬的電路基礎。 2.C語(yǔ)言 C語(yǔ)言是嵌入式開(kāi)發(fā)中最重要的編程語(yǔ)言,要對這門(mén)語(yǔ)言有深入的理解,畢竟不僅僅要會(huì )寫(xiě)程序,看懂他人程序也很重要。最基本的數據類(lèi)型、數組、指針、結構體,鏈表、文件操作等都要會(huì ),掌握基本語(yǔ)法和語(yǔ)句,不然你要能區分指針數組與數組指針嗎? 3.單片機 單片機入門(mén)相對簡(jiǎn)單,通過(guò)單片機的學(xué)習可以熟悉單片機的硬件結構,包括I/O口、AD轉換、通信(串口、并口、I2C、CAN、USB、以太網(wǎng)、ZigBee技術(shù)等)、顯示(LED、LCD等)、控制(PWM等控制技術(shù))、數據處理(圖形、圖像、語(yǔ)音、視頻等的處理或識別)等,學(xué)好單片機可以為采用嵌入式系統奠定良好的基礎。 4Linux基礎 Linux的源碼和架構都是開(kāi)放的,在嵌入式系統中應用尤為廣泛,學(xué)習Linux對于系統的開(kāi)發(fā)會(huì )有很大的幫助。詳細了解Linux下的目錄結構、基本命令、編輯器VI、編譯器GCC、調試器GDB和 Make 項目管理工具,Shell Makefile腳本編寫(xiě)等知識,以及嵌入式開(kāi)發(fā)環(huán)境的搭建。 中級嵌入式工程師 經(jīng)過(guò)第一個(gè)階段的學(xué)習,你已經(jīng)可以進(jìn)行嵌入式開(kāi)發(fā)工作了,但是要進(jìn)階依舊還有很多知識要學(xué),而這個(gè)階段也將是第一個(gè)分水嶺,使得優(yōu)秀的嵌入式工程師得以脫穎而出。此階段雖然只有三項,但涉及的知識非常廣,要想學(xué)好需要花費大量的精力。 1.Linux編程 系統編程可以直接跟內核及核心系統程序庫對話(huà),深入了解Linux內核。掌握Linux系統編程主要提升對Linux應用開(kāi)發(fā)的理解和代碼調試的能力。由于網(wǎng)絡(luò )應用開(kāi)發(fā)越來(lái)越廣泛,通過(guò)Linux網(wǎng)絡(luò )發(fā)展、TCP/IP協(xié)議、socket編程、TCP網(wǎng)絡(luò )編程、UDP網(wǎng)絡(luò )編程、Web編程開(kāi)發(fā)等方面入手,可以全面了解Linux網(wǎng)絡(luò )應用程序開(kāi)發(fā)。 2數據結構與算法 數據結構及算法在嵌入式底層驅動(dòng)、通信協(xié)議及各種引擎開(kāi)發(fā)中得到了廣泛的應用,語(yǔ)言編譯要使用棧、散列表以及語(yǔ)法樹(shù);操作系統中用隊列、存儲管理表及目錄樹(shù)等;數據庫系統運用線(xiàn)型表、多鏈表及索引表進(jìn)行數據管理等等,對其掌握的好壞直接影響程序的效率、簡(jiǎn)潔及健壯性。 3.QT、DSP、FPGA Linux沒(méi)有自己界面,學(xué)習QT編程可以創(chuàng )建藝術(shù)級的圖形用戶(hù)界面所需的所有功能,從而更好的實(shí)現人機交互控制。而如今用戶(hù)對于圖形圖像的要求也越來(lái)越高,這就需要DSP、FPGA技術(shù)來(lái)設計開(kāi)發(fā)更好的嵌入式視覺(jué)系統。 高級嵌入式工程師 學(xué)習了前兩個(gè)階段的知識,你已經(jīng)可以勝任大部分嵌入式工作了,但是距離大咖仍有一定的差距,其實(shí)已經(jīng)到了第二個(gè)分水嶺。這部分更多涉及系統層面,沒(méi)有全方位的知識將會(huì )很難下手。 1操作系統平臺開(kāi)發(fā) 除了Linux外,嵌入式操作系統還有ARM、WINCE、uC/OS II、Vxworks、uClinux等,不同的系統有著(zhù)不同的使用環(huán)境,你需要學(xué)習掌握系統的各個(gè)模塊,為底層平臺搭建做好準備。熟悉各個(gè)操作系統的特點(diǎn)以及系統的內核移植,確保操作系統能在某個(gè)微處理器或微控制器上運行。隨著(zhù)手機智能硬件的快速興起,Android操作系統開(kāi)發(fā)也越來(lái)越重要。 2驅動(dòng)開(kāi)發(fā) 驅動(dòng)程序設計是嵌入式Linux開(kāi)發(fā)工作中非常重要的一部分。不僅要熟悉Linux的內核機制、驅動(dòng)程序與用戶(hù)級應用程序的接口,掌握系統對設備的并發(fā)操作。還要具備ARM硬件接口的基礎知識,熟悉ARM Cortex處理器各資源、掌握Linux設備驅動(dòng)原理框架,以及工程中常見(jiàn)Linux高級字符設備、塊設備、網(wǎng)絡(luò )設備、USB設備的驅動(dòng)開(kāi)發(fā)。 當你到達這個(gè)位置的時(shí)候,可以說(shuō)你已經(jīng)是一個(gè)人生贏(yíng)家了,而真正的學(xué)習過(guò)程如同一場(chǎng)漫長(cháng)的修行,在這個(gè)過(guò)程中,必定有各種各樣的困難。當然了,嵌入式工作中更多的需要實(shí)踐以及經(jīng)驗的積累,相信守得云開(kāi)見(jiàn)月明,你也可成為一名優(yōu)秀的嵌入式工程師。 以上就是關(guān)于嵌入式開(kāi)發(fā)要學(xué)什么的相關(guān)內容,同學(xué)們有什么想要了解的可以隨時(shí)聯(lián)系宋老師Tel17317951908 QQ3524659088 |