嵌入式職業(yè)發(fā)展規(guī)劃
選擇嵌入式行業(yè)之前,希望理性對(duì)待,IT業(yè)已經(jīng)不是曾經(jīng)的泡沫經(jīng)濟(jì)時(shí)代了,如果你不是那塊料,那么在你還沒有進(jìn)入這行之前,請(qǐng)三思,因?yàn)楦?jìng)爭(zhēng)對(duì)手各個(gè)都身懷絕技。如果你已經(jīng)選擇了嵌入式這個(gè)行業(yè),那么你必需玩命的學(xué)習(xí)!
好了,很顯然我已經(jīng)決定這一行了,那么就讓我來(lái)分析一下嵌入式,然后再做一個(gè)合理的職業(yè)規(guī)劃。
對(duì)于一個(gè)公司來(lái)說,拳頭部門是他的產(chǎn)品與研發(fā)部門,這兩個(gè)支撐著整個(gè)公司的核心,沒有產(chǎn)品沒有平臺(tái)談其他的都沒有任何意義。至于收益部門,肯定是銷售和市場(chǎng)這兩個(gè)部門,不管在哪個(gè)公司,只要你有成熟的產(chǎn)品,這兩個(gè)部門的精英們就會(huì)想盡一切辦法將其變?yōu)槭找?再次是售前售后支持部門,一個(gè)好的產(chǎn)品并不是賣出去就算成功了,更重要的是客戶的良好反饋,百年老店靠的是什么——口碑!
由此可見,在公司之間的市場(chǎng)搏擊中,拳頭的實(shí)力是多么的重要。那么嵌入式究竟是個(gè)什么樣的行業(yè)呢,從事又需要什么樣的資質(zhì)呢?
嵌入式是軟硬結(jié)合的東西,嵌入式開發(fā)又分為兩類,這兩類各有特點(diǎn),需要的資質(zhì)又有不同:
一類是學(xué)電子工程、通信工程等偏硬件專業(yè)出身的人,主要是搞硬件設(shè)計(jì),有時(shí)要開發(fā)一些與硬件關(guān)系最密切的最底層軟件,如BootLoader和最初級(jí)的硬件驅(qū)動(dòng)程序等,他們的優(yōu)勢(shì)是對(duì)硬件原理非常清楚,不足是他們更擅長(zhǎng)定義各種硬件接口,但對(duì)復(fù)雜軟件系統(tǒng)往往力不從心。
一類是學(xué)軟件、計(jì)算機(jī)專業(yè)出身的人,主要從事嵌入式操作系統(tǒng)和應(yīng)用軟件的開發(fā)。嵌入式設(shè)備的增值很大程度上取決于嵌入式軟件,這占了嵌入式系統(tǒng)的最主要工作,因?yàn)楹芏喙径贾,嵌入式產(chǎn)品的差異很大程度在軟件上,所以都將硬件設(shè)計(jì)外包給了專門的硬件公司。
個(gè)人認(rèn)為驅(qū)動(dòng)上對(duì)軟硬件的差別不是很明顯,尤其是基于操作系統(tǒng)的嵌入式平臺(tái)下,所以我認(rèn)為還有一種選擇,就是搞軟件的人去了解數(shù)字電路,入門簡(jiǎn)單一些,加之軟件的基礎(chǔ)可以寫出不錯(cuò)的底層硬件驅(qū)動(dòng)程序。這點(diǎn)只是個(gè)人見解,比較高端的驅(qū)動(dòng),涉及時(shí)序等內(nèi)容,還是需要比較深厚的電路知識(shí)的。
嵌入式開發(fā)已經(jīng)劃分了兩大類,再滲透一點(diǎn)的了解下去,又有很多的方向,單從操作系統(tǒng)來(lái)說就大有文章。
第一類:傳統(tǒng)經(jīng)典的RTOS,例如Vxworks、pSOS、QNX、Nucleus操作系統(tǒng),這類操作系統(tǒng)實(shí)時(shí)性很強(qiáng)(據(jù)說可在1ms內(nèi)響應(yīng)外部事件請(qǐng)求),并且內(nèi)核可極微(據(jù)說最小可8K),可靠性較高等特點(diǎn)。但Vxworks因價(jià)格很高,所以一些小公司或小產(chǎn)品中往往用不起。
第二類:嵌入式Linux操作系統(tǒng),性能雖然比不上RTOS,不過現(xiàn)在熟悉linux的人越來(lái)越多了,加上免費(fèi)開源的優(yōu)勢(shì),linux操作系統(tǒng)也越做越好了,目前比較受中低端市場(chǎng)的歡迎。
第三類:WindowsCE嵌入式操作系統(tǒng),Microsoft果然是厲害,WinCE出來(lái)只有幾年時(shí)間,但目前已占據(jù)了很大市場(chǎng)份額,特別是在顯示儀表等界面要求較高的場(chǎng)合,因?yàn)槲覀冮L(zhǎng)期windows的使用習(xí)慣與市場(chǎng)相關(guān)開發(fā)人員的積累,原來(lái)的VC用戶很容易上手WinCE操作系統(tǒng),加上微軟強(qiáng)大的技術(shù)支持,WinCE的快速開發(fā)難度要低于Linux。
說點(diǎn)個(gè)人看法,Linux免費(fèi)開源的好處可想而知,各國(guó)政府也在大力推Linux系統(tǒng),以前在嵌入式平臺(tái)上Linux是叫的最響但還是WinCE實(shí)際用的更多,不過隨著時(shí)間的推移,人才的培養(yǎng),Linux開發(fā)人員也不斷得到積累,嵌入式開發(fā)也變得普遍起來(lái)。
嵌入式開發(fā)僅從系統(tǒng)的不同就又劃分了幾條選擇方向,可見嵌入式開發(fā)空缺需要多少種不同的人來(lái)填補(bǔ),嵌入式還不單單能從系統(tǒng)上劃分開來(lái),因?yàn)闆]有操作系統(tǒng),嵌入式依舊是嵌入式,而系統(tǒng)已經(jīng)不可能跑的'起來(lái)了,這就是硬件的魅力,軟件即是驅(qū)動(dòng),驅(qū)動(dòng)即是軟件。
第一類:ARM,其良好的移植性可以有效的縮短應(yīng)用程序開發(fā)與測(cè)試的時(shí)間,也降低了研發(fā)費(fèi)用。ARM具有比較強(qiáng)的事務(wù)管理功能,可以用來(lái)跑界面以及應(yīng)用程序等,其優(yōu)勢(shì)主要體現(xiàn)在控制方面。如果不跑操作系統(tǒng)的話還可以做高性能的單片機(jī)來(lái)裸跑,不過這也就失去了它界面與應(yīng)用程序移植方面的優(yōu)勢(shì)。
第二類:DSP,主要是用來(lái)計(jì)算的,比如進(jìn)行加密解密、調(diào)制解調(diào)等,優(yōu)勢(shì)是強(qiáng)大的數(shù)據(jù)處理能力和較高的運(yùn)行速度。
第三類:FPGA,可以毫不夸張的講,F(xiàn)PGA能完成任何數(shù)字器件的功能,上至高性能CPU,下至簡(jiǎn)單的74電路,都可以用FPGA來(lái)實(shí)現(xiàn)。使用FPGA來(lái)開發(fā)數(shù)字電路,可以大大縮短設(shè)計(jì)時(shí)間,減少PCB面積,提高系統(tǒng)的可靠性。當(dāng)電路有少量改動(dòng)時(shí),更能顯示出FPGA的優(yōu)勢(shì),其現(xiàn)場(chǎng)編程能力可以延長(zhǎng)產(chǎn)品在市場(chǎng)上的壽命,而這種能力可以用來(lái)進(jìn)行系統(tǒng)升級(jí)或除錯(cuò),通俗的說就是不需要重新制板就能升級(jí)硬件電路。
因?yàn)槲覍?duì)DSP沒有什么研究和見解,在此就不談了,我從各個(gè)方面著重了解ARM和FPGA的優(yōu)劣,下面做一些詳細(xì)的分析,并作為職業(yè)規(guī)劃的一個(gè)參考吧。
ARM領(lǐng)域抉擇之操作系統(tǒng):主要是上面提到的三大類操作系統(tǒng),需要花功夫了解內(nèi)核,了解系統(tǒng)的執(zhí)行過程等,不同的系統(tǒng)就有不同的驅(qū)動(dòng)開發(fā)框架。
ARM領(lǐng)域抉擇之軟件硬件:軟件需要掌握應(yīng)用層的程序開發(fā),目前C++用的比較普遍,而且要擅長(zhǎng)界面開發(fā),不管是QT還是Java,不擅長(zhǎng)界面處理的軟件開發(fā)工程師沒有什么競(jìng)爭(zhēng)優(yōu)勢(shì)(這是我個(gè)人的一點(diǎn)見解)。再說說硬件,設(shè)計(jì)電路,繪制電路板,或者系統(tǒng)移植兼驅(qū)動(dòng)開發(fā)。這些都屬于硬件的范疇,你掌握多少?zèng)Q定了你的價(jià)值。
FPGA領(lǐng)域抉擇之芯片系列:這種選擇主要是來(lái)自于芯片供應(yīng)商,現(xiàn)在的供應(yīng)商有XILINX、TI、ALTERA公司等,不同廠家的芯片都需要廠家提供的開發(fā)軟件,例如ALTERA的QuartusII和NIOS(暫時(shí)就用過這個(gè),只能舉這一個(gè)例子了,慚愧中)。FPGA屬于硬件范疇,沒有軟件的用武之地,VHDL和VerilogHDL也屬于硬件開發(fā)語(yǔ)言,個(gè)人覺得上手簡(jiǎn)單一些,不過開發(fā)難度大,門檻要求也比較高,不僅要設(shè)計(jì)電路,而且要能夠繪制不低于四層板的PCB,更要對(duì)時(shí)序了如指掌,這樣才能有上升空間。
兩個(gè)領(lǐng)域看上去都有魚與熊掌不可兼得的樣子,不過仔細(xì)分析一下,F(xiàn)PGA的開發(fā)軟件無(wú)非就是開發(fā)工具,軟件之間都是有很多共性的,而且上手軟件遠(yuǎn)比上手操作系統(tǒng)要簡(jiǎn)單容易的多,所以選擇FPGA應(yīng)該在FPGA領(lǐng)域涵蓋的面更廣一點(diǎn),直白了說就是,精通了FPGA就能夠從事幾乎所有有關(guān)FPGA的工作。而選擇ARM,只能在ARM領(lǐng)域找自己精通的操作系統(tǒng)的工作。
仿佛已經(jīng)分出勝負(fù)了,其實(shí)不然,再好的東西如果沒有用武之地也是白搭,那么FPGA的用途與局限性又有哪些呢?
最明顯的一個(gè)不同,ARM有龐大的軟件支持,而FPGA偏向于硬件開發(fā),也許有人會(huì)說上面不是提到“強(qiáng)大的FPGA可以完成任何數(shù)字器件的功能,包括高性能的CPU”么,那么我想說,用FPGA包裝的ARM功耗變大了,性能拉下了,成本變高了,什么樣的公司會(huì)用?也許還會(huì)有人問,用FPGA包裝成ARM不是多了一個(gè)硬件升級(jí)的功能了么,這樣不就延長(zhǎng)了產(chǎn)品在市場(chǎng)上的壽命么,這個(gè)想法聽上去不錯(cuò),不過硬件升級(jí)也是要投入不少人力成本的,所以暫時(shí)很少公司優(yōu)先考慮它。如果我開公司的話,一定向消費(fèi)者承諾“保證消費(fèi)者所使用的設(shè)備可以通過技術(shù)支持免費(fèi)升級(jí)硬件性能”,(這是題外話,乘天還沒黑我也做做夢(mèng),呵呵),言歸正傳,F(xiàn)PGA的自身特點(diǎn)使樂道于軟件編程的人望而卻步,讓一些想做低成本中低端電子產(chǎn)品創(chuàng)業(yè)的人也另尋其他。我也承認(rèn)ARM開發(fā)更適合創(chuàng)業(yè),尤其是掌握了驅(qū)動(dòng)和軟件之后,因?yàn)橛布O(shè)計(jì)可以外包嘛。
【嵌入式職業(yè)發(fā)展規(guī)劃】相關(guān)文章:
嵌入式面試常見問題10-17
為自己的職業(yè)生涯做計(jì)劃“職業(yè)導(dǎo)航圖”-職業(yè)生涯規(guī)劃10-29
指明最佳職業(yè)路徑的職業(yè)生涯規(guī)劃08-22
職業(yè)性格與職業(yè)生涯規(guī)劃有關(guān)07-03
職業(yè)生涯規(guī)劃書職業(yè)定位怎么寫10-12
包頭職業(yè)就業(yè)情況11-18
職業(yè)規(guī)劃師的職業(yè)生涯規(guī)劃11-21
大學(xué)生職業(yè)生涯規(guī)劃職業(yè)認(rèn)知(通用6篇)12-15
職業(yè)生涯規(guī)劃書工程造價(jià)職業(yè)環(huán)境分析09-29
職業(yè)求職沖沖沖求職故事09-01