下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
嵌入式技術(shù)開發(fā)總結(jié)及思考從事嵌入式開發(fā)一年了,有些感想跟大家談?wù)???赡芎芏嗯笥褧?huì)像我當(dāng)初一樣,為前途而煩惱,為不知道儲(chǔ)備什么知識(shí)而苦惱,所以寫點(diǎn)東西給這些朋友們提供參考。另外,也可鞭策自己,讓自己看到自己的不足,認(rèn)清以后的發(fā)展方向。首先IT是一個(gè)需要不斷學(xué)習(xí)的行業(yè),沒有任何一個(gè)行業(yè)像我們這樣需要不斷地接觸新東西,學(xué)習(xí)新知識(shí),如同《學(xué)計(jì)算機(jī)的你傷不起呀》中吼的那樣,搞上層開發(fā)的,各種編程語言搞死你;搞系統(tǒng)開發(fā)的,各種系統(tǒng)搞死你;做底層的,各種匯編,芯片,指令集搞死你;當(dāng)然了,無論做哪層,各種編譯器,工具,軟硬件知識(shí)等等都能搞死你。隨便一類學(xué)問中的一小部分都是一摞磚一般的書啊。不懂的也可以來21ic問哦。其次嵌入式行業(yè)更像是IT中的IT。標(biāo)準(zhǔn)缺乏,規(guī)格多變,技術(shù)變化又特快,剛流行的技術(shù)可能沒兩年就會(huì)失去生機(jī)。比如塞班,Nokia放棄了,Intel的MeGoo吧,也沒動(dòng)靜了,現(xiàn)在安卓火的很,說不定過幾年就像今天的塞班,感覺像是永遠(yuǎn)跟不上時(shí)代的節(jié)奏。所以,很多人都說IT是吃青春飯的,一點(diǎn)不為過,等到年紀(jì)大了,或許真的做技術(shù)會(huì)力不從心吧。話說嵌入式這個(gè)行業(yè)到底需要什么樣的技術(shù)人才?仔細(xì)觀察各種招聘的崗位要求吧,無非是1、通用要求:比如什么學(xué)歷,多少年工作經(jīng)驗(yàn),有創(chuàng)新精神,抗壓能力強(qiáng),吃苦耐勞,善于溝通,態(tài)度認(rèn)真等等等等……2、專業(yè)要求:這個(gè)可真的多了去了,但無非就是各種精通。什么精通控制理論,精通電路設(shè)計(jì),精通各種硬件驅(qū)動(dòng)開發(fā),精通linux內(nèi)核以及裁剪,精通C/C++/Java語言,精通DSP,精通ARM,精通什么linux/ecos/ucos/wince/VxWorks,精通嵌入式數(shù)據(jù)庫,精通多線程編程,精通各種網(wǎng)絡(luò)協(xié)議,精通各種總線協(xié)議,精通塞班/安卓/IOS平臺(tái)應(yīng)用開發(fā),精通匯編,編譯器,二進(jìn)制工具;精通各種媒體封裝格式,編解碼;精通通信技術(shù);精通硬件原理圖;精通PCB設(shè)計(jì);精通計(jì)算機(jī)結(jié)構(gòu);精通bootloader,精通……感覺只要是行業(yè)內(nèi)的就要精通(我了個(gè)去!我感覺精通一門就得好久。。。)看完這些,尤其是專業(yè)要求,頭大了吧?那么我們就分析一下上面的要求吧。各個(gè)公司就的通用要求像是互相復(fù)制粘貼的一樣,比如學(xué)歷(個(gè)人認(rèn)為學(xué)力明顯更重要),比如經(jīng)驗(yàn)(是有n年的經(jīng)驗(yàn),還有n年前的經(jīng)驗(yàn)用了n年?),還有個(gè)人秉性,我都不知道各個(gè)公司怎么在員工入職前考察。專業(yè)要求呢(其實(shí)精通其中幾樣就挺了不起了),一看就讓人頭暈,了解了嵌入式開發(fā)的結(jié)構(gòu)可能就好理解些了。從技術(shù)實(shí)現(xiàn)上講,嵌入式的產(chǎn)品分為兩大類:一類簡單的,沒有操作系統(tǒng)支持的;一類復(fù)雜的,有操作系統(tǒng)的。就目前發(fā)展方向看,后一種是趨勢。前一種從程序?qū)崿F(xiàn)上可分為3層:硬件層,驅(qū)動(dòng)層,應(yīng)用層;后一種分為4層:硬件層,驅(qū)動(dòng)層,系統(tǒng)層,應(yīng)用層。所以嵌入式的開發(fā)大致需要這么從下到上4類工程師:嵌入式硬件開發(fā)、嵌入式驅(qū)動(dòng)開發(fā)、嵌入式系統(tǒng)開發(fā)、嵌入式軟件開發(fā)。他們應(yīng)該會(huì)哪些技能呢?1、嵌入式硬件開發(fā):這是硬件工程師來做,一般出身為自動(dòng)化,電子,通信等專業(yè),他們要求熟悉電路等知識(shí),非常熟悉各種常用元器件,掌握模擬電路和數(shù)字電路設(shè)計(jì)的開發(fā)能力,熟悉硬件開發(fā)模式和設(shè)計(jì)模式,熟悉各種芯片及外圍設(shè)備,熟悉8位16位32位處理器嵌入式硬件平臺(tái)開發(fā)。有的要求有FPGA的開發(fā)經(jīng)驗(yàn),精通常用的硬件設(shè)計(jì)工具:Protel/PADS(PowerPCB)/Cadence/OrCad。一般要有4~8層高速PCB設(shè)計(jì)經(jīng)驗(yàn)。由于本人不是做硬件的,對(duì)這一塊的不熟悉,所以不敢妄言。2、嵌入式驅(qū)動(dòng)開發(fā):這個(gè)可以硬件工程師來做,也可以軟件工程師來做,主要還是取決于設(shè)備。目前驅(qū)動(dòng)開發(fā),除非是簡單的設(shè)備驅(qū)動(dòng),實(shí)際上很多時(shí)候都是移植,所以更多的是需要掌握目標(biāo)平臺(tái)的硬件和系統(tǒng)特性。所以至少得掌握一些操作系統(tǒng)、系統(tǒng)結(jié)構(gòu)、計(jì)算機(jī)組成原理、數(shù)據(jù)結(jié)構(gòu)相關(guān)知識(shí)。熟悉嵌入式ARM/MIPS/PowerPC架構(gòu)。具有單片機(jī)、某種或多種32位嵌入式處理器的移植開發(fā)能力,熟悉bootloader過程,具有扎實(shí)的硬件知識(shí),理解硬件原理圖,能獨(dú)立完成相關(guān)硬件驅(qū)動(dòng)調(diào)試,能夠根據(jù)芯片手冊(cè)編寫軟件驅(qū)動(dòng)程序。如果涉及到網(wǎng)絡(luò)設(shè)備,或許還要掌握很多高層的網(wǎng)絡(luò)協(xié)議的原理。個(gè)人感覺這一塊雖然大部分不是很難,但卻是極為重要的。當(dāng)然如果要在這一層次提供對(duì)上層的多線程支持,某些驅(qū)動(dòng)也是很難寫的。3、嵌入式系統(tǒng)開發(fā):這個(gè)沒聽說硬件工程師來做的。做這塊,熟悉操作系統(tǒng)的原理是必不可少的,比如內(nèi)存管理,比如線程調(diào)度,比如文件系統(tǒng)等等;還要精通處理器體系結(jié)構(gòu)、指令集、尋址方式、調(diào)試、匯編和混合編程等方面的內(nèi)容;熟悉操作系統(tǒng)啟動(dòng)流程。對(duì)于linux,要熟悉Linux配置文件的修改,掌握內(nèi)核裁減、內(nèi)核移植、交叉編譯、內(nèi)核調(diào)試、啟動(dòng)程序Bootloader編寫、根文件系統(tǒng)制作和集成部署Linux系統(tǒng)等整個(gè)流程。這一塊要是真寫起來,困難程度那是相當(dāng)恐怖的,好在大多都是移植,很少聽說有公司要去開發(fā)個(gè)操作系統(tǒng)的,沒Google的實(shí)力啊。4嵌入式軟件開發(fā):這個(gè)嘛,沒有操作系統(tǒng)的話,程序一般不會(huì)特別復(fù)雜,如果有操作系統(tǒng)的支持,又和一般的軟件開發(fā)很接近,所以盡可以看作是搞桌面開發(fā)。這個(gè)要求就是熟悉系統(tǒng)的API,精通C語言的高級(jí)編程知識(shí),包括函數(shù)與程序結(jié)構(gòu)、指針、數(shù)組、常用算法、庫函數(shù)的使用等知識(shí)、數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)內(nèi)容;掌握面向?qū)ο缶幊痰幕舅枷?,以及C++語言的基礎(chǔ)內(nèi)容;精通嵌入式Linux下的程序設(shè)計(jì),精通嵌入式Linux開發(fā)環(huán)境,包括系統(tǒng)編程、文件I/O、多進(jìn)程和多線程、網(wǎng)絡(luò)編程、GUI圖形界面編程、數(shù)據(jù)庫;熟悉常用的圖形庫的編程,如QT、GTK、miniGUI、fltk、nano-x等,掌握各種應(yīng)用層的網(wǎng)絡(luò)協(xié)議使用,以及各種音視頻技術(shù)等。另外還有些以上四類都用得著的技能:1基礎(chǔ)技能:搞嵌入式開發(fā),還有一些必不可少的基礎(chǔ)技能。a)開發(fā)平臺(tái)的熟悉,目前的嵌入式開發(fā)大多數(shù)是在linux或者類linux下的環(huán)境下進(jìn)行的,那么linux的使用應(yīng)該熟悉吧,shell腳本得會(huì)寫吧,配置文件得會(huì)改吧,GCCGDB得會(huì)用吧,Make工具得會(huì)吧?b)比如項(xiàng)目管理工具的使用,都什么年代了,不會(huì)用CVS,也不會(huì)用SVN?請(qǐng)問,你還活在軟件時(shí)代的原始社會(huì)么?c)數(shù)據(jù)結(jié)構(gòu)和算法,搞軟件開發(fā),不懂?dāng)?shù)據(jù)結(jié)構(gòu),不會(huì)算法優(yōu)化,不會(huì)衡量復(fù)雜度,太不靠譜了吧?當(dāng)然,這個(gè)不是要求啥算法都會(huì),啥數(shù)據(jù)結(jié)構(gòu)都記得住,最起碼得知道有那么種東西,有什么作用,這樣用到的時(shí)候好歹也能查啊d)編程語言,關(guān)于JAVA,我知道現(xiàn)在JAVA的異軍突起,很是震動(dòng)了編程語言界,但是在嵌入式開發(fā)下,不會(huì)C或者C++語言,實(shí)在說不過去。當(dāng)然現(xiàn)在很多手機(jī)應(yīng)用完全用java寫的,如果你只想搞嵌入式的上層軟件開發(fā)又不想深入下去,只用JAVA也未嘗不可。關(guān)于匯編,嗯,這個(gè)可能挺難,畢竟跟具體的硬件架構(gòu)(主要是CPU)有關(guān),但是真的很有意思,而且在某些時(shí)候,它是不可替代的。2特殊技能:對(duì)于嵌入式開發(fā)的某些部分必不可少,但對(duì)于有些(比如應(yīng)用開發(fā))可能沒有多大用處。a)數(shù)字電路,這個(gè)……主要是了解一些基本的電路知識(shí),如門電路、邏輯電路、存儲(chǔ)器、寄存器,為了更好的理解嵌入式芯片,存儲(chǔ)器,外圍設(shè)備等硬件的設(shè)計(jì),但往往在軟件開發(fā)中未必能用的到。因?yàn)榇蟛糠钟布继峁┝撕芡暾能浖涌凇)操作系統(tǒng),這個(gè)說的是平臺(tái)上選用的操作系統(tǒng)。嵌入式產(chǎn)品操作系統(tǒng)是在太多了。但操作系統(tǒng)的內(nèi)部設(shè)計(jì)原理都是殊途同歸。首先要去學(xué)習(xí)的是操作系統(tǒng)原理,去了解進(jìn)程通信、內(nèi)存管理、文件系統(tǒng)等幾個(gè)重要的部分,因?yàn)檫@些在軟件開發(fā)尤其是內(nèi)核驅(qū)動(dòng)開發(fā)時(shí)會(huì)用到。接下來可以去熟悉至少一種主流的操作系統(tǒng),Linux是一個(gè)很好的選擇,去了解它的內(nèi)核架構(gòu),設(shè)備驅(qū)動(dòng)架構(gòu),如何去編譯,裁剪,編寫應(yīng)用程序,以及如何使用在具體的嵌入式產(chǎn)品上c)計(jì)算機(jī)的組成/微機(jī)原理,主要是為了了解微型計(jì)算機(jī)的硬件工作原理,明白CPU、總線、I/O、存儲(chǔ)器等一些關(guān)鍵結(jié)構(gòu)是怎么工作的,雖然是很枯燥的知識(shí),但是對(duì)熟悉外圍設(shè)備硬件工作方式,及操作系統(tǒng),軟件架構(gòu)的設(shè)計(jì)及優(yōu)化相當(dāng)關(guān)鍵。3擴(kuò)展的能力,這些可能是要用到的。a)通信協(xié)議,對(duì)于非應(yīng)用層的通信協(xié)議,我實(shí)在不知道是不是該把它放入操作系統(tǒng)的范疇,因?yàn)楹芏嗖僮飨到y(tǒng)是沒有網(wǎng)絡(luò)部分的,但是在很多方面它又是由操作系統(tǒng)提供。當(dāng)然這些下層通信協(xié)議,貌似不太用關(guān)心,因?yàn)樘嗟拈_源協(xié)議棧了。應(yīng)用層的網(wǎng)絡(luò)協(xié)議可能就要關(guān)心了,比如http,ftp,rtsp,rtmp,mms等等。b)音視頻處理,比如文件封裝啊,音視頻的編解碼啊,各種音視頻的標(biāo)準(zhǔn)啊,還有流媒體什么的。Ffmpeg是一個(gè)很好的東西,建議學(xué)習(xí)一下。c)信息安全,恩,這一塊貌似現(xiàn)在越來越受到重視了。d)數(shù)據(jù)庫,唉,嵌入式設(shè)備能力越來越強(qiáng)?。≡俑愀阄铱匆膊挥媒徊婢幾g了。。有時(shí)和同事討論起現(xiàn)在的行業(yè)需求,說到各個(gè)公司總是招不到人,程序員又總說找不到工作,自己就有很多感想,是公司要求高,還是程序員要求高?有時(shí)候看到一些招聘的職位要求,總是打擊到自己的信心,一條一條數(shù)下來,好像自己能做到的還真沒多少,只好讓自己再努力些再努力些;當(dāng)然有
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 9、2025年度綠色建筑模板單項(xiàng)勞務(wù)分包合同3篇
- 個(gè)人宅基及房屋銷售協(xié)議版B版
- 2025版門面租賃合同簽訂流程及注意事項(xiàng)4篇
- 游戲化教學(xué)增強(qiáng)小學(xué)生注意力的教育模式
- 2025版化妝品銷售代理合同范本6篇
- 美容院與互聯(lián)網(wǎng)平臺(tái)2025年度線上推廣服務(wù)合同4篇
- 智能化學(xué)習(xí)環(huán)境下的學(xué)生思維升級(jí)
- 二零二五年度汽車美容服務(wù)合同范本4篇
- 科技產(chǎn)品的動(dòng)態(tài)視覺設(shè)計(jì)實(shí)踐分享
- 時(shí)間管理對(duì)學(xué)習(xí)態(tài)度的積極影響
- 教師招聘(教育理論基礎(chǔ))考試題庫(含答案)
- 2024年秋季學(xué)期學(xué)校辦公室工作總結(jié)
- 鋪大棚膜合同模板
- 長亭送別完整版本
- 智能養(yǎng)老院視頻監(jiān)控技術(shù)方案
- 你比我猜題庫課件
- 無人駕駛航空器安全操作理論復(fù)習(xí)測試附答案
- 建筑工地春節(jié)留守人員安全技術(shù)交底
- 默納克-NICE1000技術(shù)交流-V1.0
- 蝴蝶蘭的簡介
- 老年人心理健康量表(含評(píng)分)
評(píng)論
0/150
提交評(píng)論