當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 嵌入式微處理器
[導(dǎo)讀]整理自網(wǎng)絡(luò),參考:嵌入式資訊精選 不少人或許還并不是很清晰地知道什么是嵌入式,IEEE對(duì)它定義的原文是:DevicesUsedtoControl,MonitororAssisttheOperationofEquipment,MachineryorPlants。從一個(gè)嵌入式軟件工程師的角度來(lái)看,簡(jiǎn)單地說(shuō),就是對(duì)一些硬件進(jìn)

整理自網(wǎng)絡(luò),參考:嵌入式資訊精選

不少人或許還并不是很清晰地知道什么是嵌入式,IEEE對(duì)它定義的原文是:DevicesUsedtoControl,MonitororAssisttheOperationofEquipment,MachineryorPlants。從一個(gè)嵌入式軟件工程師的角度來(lái)看,簡(jiǎn)單地說(shuō),就是對(duì)一些硬件進(jìn)行編程,使其完成既定功能的操作。

接下來(lái)我就結(jié)合自己的親身經(jīng)歷,談一談對(duì)嵌入式學(xué)習(xí)、擇業(yè)以及發(fā)展前景的一些感想。

01 6個(gè)對(duì)話(huà)讓你重新認(rèn)清真相!


嵌入式是個(gè)大坑一直很火。但是也有人跳出來(lái)說(shuō),嵌入式不是大坑。嵌入式究竟是不是個(gè)大坑呢?今天就聽(tīng)一下21ic 資深網(wǎng)友 icecut 是怎么看的!


有90%的人,覺(jué)得嵌入式是個(gè)大坑。因?yàn)樗麄冑嶅X(qián)少,剛畢業(yè)也就賺5000元/月,而互聯(lián)網(wǎng)就可以拿到一萬(wàn)/月。工作任務(wù)簡(jiǎn)單,用一些簡(jiǎn)單的 c 語(yǔ)言寫(xiě)著永遠(yuǎn)大不了的代碼。重復(fù)地做相同的事情。每一個(gè)新產(chǎn)品看起來(lái)都差不多,但是每次都要學(xué)不一樣的東西,比如換一個(gè)adc 芯片,用的不同的廠家,所有的軟件都不一樣。甚至相同廠家也有這種情況,比如M3和 M4的 mcu,都是 arm,內(nèi)核不同,片內(nèi)外設(shè)就不一樣,就要重新學(xué)片內(nèi)外設(shè)的操作,投入非常大,卻得不到應(yīng)有的回報(bào)。不如去轉(zhuǎn)互聯(lián)網(wǎng)。你可以什么都不會(huì),就去 github 之類(lèi)的網(wǎng)站找個(gè)例程,隨便改改,差不多滿(mǎn)足需求,老板覺(jué)得過(guò)得去,用戶(hù)覺(jué)得還能用。你就能拿別人的作品賺自己的工資。前期投入就是花2w 元,跟某機(jī)構(gòu)學(xué)一下套路,然后給你一個(gè)3年經(jīng)驗(yàn)的離職證明和3年前的一張畢業(yè)證。而這些人就成天喋喋不休的來(lái)炫耀,自己賺錢(qián)多,自己笨沒(méi)關(guān)系,照樣復(fù)制粘貼就賺錢(qián)。


你是不是也在羨慕這種人呢?可是你已經(jīng)畢業(yè)多年,沒(méi)有體力去加班干互聯(lián)網(wǎng)的工作。甚至沒(méi)有2w 元的存款去買(mǎi)套路和假的工作證明。甚至你已經(jīng)習(xí)慣了腳踏實(shí)地干活,不會(huì)在面試上吹噓。。。。。你羨慕著別人賺錢(qián),你默默的接受被嵌入式坑的日子。。。。


而20%的人,又覺(jué)得嵌入式是可以拯救的。比如小 i 的觀點(diǎn),他認(rèn)為嵌入式是下一個(gè)爆發(fā)地。你想想網(wǎng)店最后不還是在做實(shí)體店么?京東是沃爾瑪投資的,最后京東又投資了永輝?;ヂ?lián)網(wǎng)基于手機(jī)的日子快要過(guò)去了。隨著互聯(lián)網(wǎng)公司的裁員和倒閉,他們的好日子快結(jié)束了。當(dāng)然,物聯(lián)網(wǎng)發(fā)展還是蝸牛爬,嵌入式的未來(lái)還需耕耘。


在過(guò)去的幾年里,小 i 一直在幫助大家進(jìn)步。所以有許多認(rèn)識(shí)可以跟大家聊。

1. 過(guò)高地估計(jì)了自己,錯(cuò)誤的估計(jì)了行業(yè)。這是我與一個(gè)二三線(xiàn)城市學(xué)生的對(duì)話(huà)。他們理解了一點(diǎn)嵌入式技術(shù),就覺(jué)得自己比大多數(shù)同學(xué)水平高了。不需要再去聽(tīng)我的。他們覺(jué)得那些嵌入式技術(shù)就會(huì)在招聘會(huì)上勝出。過(guò)高的自信,讓我真的無(wú)言以對(duì)。而我看來(lái),他們的水平,離著能干活至少需要有一年的實(shí)踐。所以他們肯定是覺(jué)得自己被坑的。如此牛逼的自己,卻干這么簡(jiǎn)單卻做不好的任務(wù)。


2. 這是一個(gè)與一線(xiàn)二本學(xué)生的對(duì)話(huà)。當(dāng)然小 i 也來(lái)自二本學(xué)校。我那時(shí)候也是一直在自學(xué),花掉了好多錢(qián)。買(mǎi)原件買(mǎi)板子,順便也在學(xué)校的小作品里賺點(diǎn)錢(qián)?,F(xiàn)在學(xué)校有錢(qián)了,這種活動(dòng)很多。實(shí)驗(yàn)室的設(shè)備也更新了,并且隨便用。每一個(gè)人都在忙,忙的都聽(tīng)不進(jìn)我的指點(diǎn)。我也算一個(gè)學(xué)術(shù)型工程師了。可是他們做著不穩(wěn)定的實(shí)驗(yàn),從來(lái)沒(méi)心做好一個(gè)作品。因?yàn)榉€(wěn)定這兩個(gè)字,付出太大了。他們沒(méi)有耐心去完善。 可以他們自己覺(jué)得更加自信,甚至許多人還不怎么懂就去參加各種競(jìng)賽。當(dāng)然也有一些競(jìng)賽稱(chēng)為了灰色產(chǎn)業(yè)鏈的最后一環(huán)。自己做代碼和板卡賣(mài)給學(xué)生,還真賺錢(qián)。有人要證書(shū),有人要金錢(qián),何樂(lè)而不為的交換呢?


3. 這是一個(gè)與畢業(yè)一年的初級(jí)工程師的對(duì)話(huà),他來(lái)自二線(xiàn)城市,通過(guò)加班抗住現(xiàn)有的工作。一個(gè)問(wèn)題調(diào)試好幾年確不得要領(lǐng),卻是當(dāng)年學(xué)校里的佼佼者。我告訴他嵌入式行業(yè)是個(gè)會(huì)者不難,難者不會(huì)的的領(lǐng)域。我給他一個(gè)提示,讓他能夠不用加班的完成任務(wù),誰(shuí)不想讓自己的工作更加舒適呢?他已經(jīng)能認(rèn)識(shí)到嵌入式不是大坑,而是自己技術(shù)上太多欠缺。實(shí)驗(yàn)室產(chǎn)品和穩(wěn)定的產(chǎn)品,是20%和80%的距離。而優(yōu)秀的產(chǎn)品,最后的20%,付出的要超過(guò)100%的努力。新手,熟手和高手,就是20%,80%和100%。代碼在小 i 手中游刃有余,bug 在小 i的眼里,沒(méi)有藏身之處。而這些,可能新手覺(jué)得不就是代碼嘛,你寫(xiě)的我能看懂,也沒(méi)什么高深之處。而 bug 在新手的眼里就是云深不知處了。熟手的眼里,小 i的代碼是規(guī)范的,思想是嚴(yán)謹(jǐn)?shù)?。?bug 在熟手的眼睛里是若隱若現(xiàn)的。你若急躁,它便消失。你白天在找,晚上也在找。可是,總要很久才能找到。從20%到80%你需要一個(gè)嚴(yán)格的領(lǐng)導(dǎo),和一個(gè)加班的心態(tài)。實(shí)踐到了就熟悉了。最后的20%你需要一個(gè)嚴(yán)謹(jǐn)?shù)膶?dǎo)師,把你打回原形,重新來(lái)過(guò)。人生若只如初見(jiàn),一切只能從頭再來(lái)。因?yàn)槟阍?jīng)積累的經(jīng)驗(yàn),都沒(méi)有用。在此也要感謝我工作中的老師。一位足矣。而80%這座山,擋住了90%的人,多少風(fēng)流人物,就掛在了這個(gè)山頭。我說(shuō)你不會(huì),你入門(mén)的都不會(huì),你說(shuō)你會(huì)了,你都做過(guò)很久了。佛曰:放下。只有放下了你自己,才能接受整個(gè)世界。三人行必有我?guī)?,可是你總是想,三人行,你是別人的老師。你是被嵌入式坑的那個(gè)老師啊。你在努力,但是怕爬不出這個(gè)坑。而這個(gè)孩子,謙虛謹(jǐn)慎,努力的認(rèn)真的學(xué)習(xí)著。會(huì)好的,總有一條路,讓你爬到岸上看風(fēng)景。


4. 這是一個(gè)與一線(xiàn)城市的資深工程師的對(duì)話(huà),來(lái)自一流學(xué)校。很少人,是這么過(guò)來(lái)的,他們的眼里沒(méi)有熟手這個(gè)概念。若做必是最好的。當(dāng)時(shí)我所在的公司招聘,約他晚上過(guò)來(lái)面試,在一個(gè)小會(huì)議室里,一群被坑了千百遍的土鱉組成的面試團(tuán)隊(duì)聽(tīng)他在上面侃侃而談。我以為他們又請(qǐng)到了高手外援。。。。。。從他那里,我知道了一些書(shū),都來(lái)自全球頂尖公司的技術(shù)大師或者頂級(jí)高校的重量級(jí)教授。這些書(shū)永遠(yuǎn)成不了暢銷(xiāo)書(shū),也永遠(yuǎn)進(jìn)不了排行榜。不要問(wèn)我是什么書(shū),因?yàn)槟阗I(mǎi)了,也只能當(dāng)神供著。如果你能力夠了,書(shū)自然會(huì)與你偶遇。路迢迢其修遠(yuǎn)兮,你只抱怨不求索。


5. 這是與心的交流。對(duì)得起自己,就對(duì)得起世界。我學(xué)習(xí)的時(shí)候,還流行教會(huì)徒弟餓死師傅。而我喜歡一個(gè)新的分享的世界。去年,給21ic 提供了三個(gè)視頻,stm32從入門(mén)到精通, 小 i 教你學(xué) usb, linux 驅(qū)動(dòng)教程。在線(xiàn)學(xué)習(xí)如日中天,我的每一個(gè)視頻都對(duì)得起我的心。當(dāng)年我要是這么學(xué),就會(huì)更快更好。談感情傷錢(qián),這是我的廉價(jià)視頻。后面會(huì)推出符合我講述知識(shí)等價(jià)的視頻。好東西一定是貴的。


6. 最后寫(xiě)給那些坑了這個(gè)行業(yè)的人,不好好寫(xiě)代碼,把 bug 留給別人,別人加班給你調(diào)試 bug,讓整個(gè)產(chǎn)品延期。我曾經(jīng)被邀請(qǐng)參加一個(gè)無(wú)線(xiàn)遙控產(chǎn)品的調(diào)試,根本不懂無(wú)線(xiàn)通信的人,隨便做了一個(gè)產(chǎn)品。明天就要演示了。租了好大的展廳去開(kāi)發(fā)布會(huì),可產(chǎn)品就是距離不夠。。。。許多人,坑了嵌入式,卻在說(shuō)嵌入式坑了你。。。




02 嵌入式學(xué)習(xí)需要肯下功夫

嵌入式應(yīng)該屬于門(mén)檻比較高的技術(shù)方向,因?yàn)槟闼蚪坏赖牟恢皇擒浖?,很多的時(shí)候還需要了解硬件的知識(shí),只有了解它的工作原理,才能正確地對(duì)其進(jìn)行編程。一些錯(cuò)誤的理解可能會(huì)導(dǎo)致運(yùn)行結(jié)果與預(yù)期相去甚遠(yuǎn),所以說(shuō)嵌入式是一項(xiàng)軟硬件緊密結(jié)合的技術(shù)方向。

作為一名嵌入式工程師,需要了解的知識(shí)包括如下方面:硬件部分,電路結(jié)構(gòu)、芯片邏輯設(shè)計(jì)、時(shí)序等;軟件部分,操作系統(tǒng)、編譯原理、匯編語(yǔ)言、高級(jí)語(yǔ)言等等。要學(xué)習(xí)的知識(shí)可謂多之又多,想在短時(shí)間內(nèi)掌握這些知識(shí)并不容易。在過(guò)往的經(jīng)歷中,確實(shí)見(jiàn)過(guò)不少同學(xué)缺乏足夠的耐心,或者早早失去興趣,從而放棄了嵌入式行業(yè),轉(zhuǎn)投其他領(lǐng)域。

但是,從某種角度來(lái)說(shuō),嵌入式又是相對(duì)簡(jiǎn)單的,因?yàn)樗?jiàn)即所得。只要對(duì)硬件進(jìn)行一些簡(jiǎn)單的編程,就可以看到一些特定的行為,及時(shí)的反饋結(jié)果也是非常的直接。從嵌入式軟件來(lái)講,一些簡(jiǎn)單的嵌入式系統(tǒng)并沒(méi)有大型軟件那么高的復(fù)雜度,幾個(gè)特定行為的實(shí)現(xiàn)不過(guò)是對(duì)一些寄存器進(jìn)行編程而已,所以從簡(jiǎn)單系統(tǒng)入手,有助于建立起對(duì)嵌入式學(xué)習(xí)的信心,我也曾經(jīng)是從0到1,對(duì)此有著深刻的體會(huì)。

從容易到困難,是學(xué)習(xí)的一般規(guī)律。這個(gè)過(guò)程沒(méi)有問(wèn)題,但是必須強(qiáng)調(diào)的是,從一個(gè)初級(jí)嵌入式工程師到高級(jí)嵌入式工程師,甚至是資深嵌入式工程師,并不是一件容易的事情,這中間會(huì)遇到一些瓶頸,需要克服很多困難,只有不斷地提升自己的能力,才能面對(duì)后面復(fù)雜的嵌入式系統(tǒng)。

舉個(gè)例子,作為一個(gè)嵌入式軟件工程師,也許剛開(kāi)始的時(shí)候只要能夠配置硬件的寄存器,然后完成其正常的行為,就可以讓一個(gè)足夠簡(jiǎn)單的嵌入式系統(tǒng)正常工作。但隨著工作的進(jìn)行你會(huì)發(fā)現(xiàn),你面對(duì)的并不全是簡(jiǎn)單的所見(jiàn)即所得的硬件,比如多核非對(duì)稱(chēng)系統(tǒng),包含一個(gè)MCU(可能是ARM,通用處理器),再加一個(gè)DSP(專(zhuān)門(mén)做信號(hào)處理的處理器),它們之間的通信就比較復(fù)雜,你需要學(xué)習(xí)共享內(nèi)存、學(xué)習(xí)信號(hào)量、學(xué)習(xí)生產(chǎn)者消費(fèi)者模型,而實(shí)際上兩邊各有不同的操作系統(tǒng),情況會(huì)比描述得更為復(fù)雜。

也就是說(shuō),嵌入式工程師在跨入一個(gè)新的階段的時(shí)候需要學(xué)習(xí)大量的知識(shí),之前遺漏的或者當(dāng)時(shí)認(rèn)為有難度暫時(shí)忽略的知識(shí),都將在此時(shí)補(bǔ)課回來(lái)。不過(guò),這些內(nèi)容雖然看似量大,但并不難理解,因?yàn)樗⒉痪邆浯笮突ヂ?lián)網(wǎng)軟件的復(fù)雜度,由于設(shè)計(jì)模式的原因,嵌入式領(lǐng)域用到的無(wú)外乎那么幾種,當(dāng)然做上層嵌入式應(yīng)用的除外。學(xué)習(xí)起來(lái),完全可以按部就班,有條理地對(duì)知識(shí)進(jìn)行組織,因?yàn)檎{(diào)用關(guān)系十分明確。

03 選擇嵌入式,何必猶豫?

就目前的情況而言,步入嵌入式領(lǐng)域的人才確實(shí)有所減少,很多人或許抱有這樣的觀點(diǎn):嵌入式不如做上層軟件變化多,方向有些狹窄,就業(yè)不容易,收入在計(jì)算機(jī)行業(yè)內(nèi)也不算理想……

事實(shí)上,我們不得不承認(rèn),當(dāng)前國(guó)內(nèi)情況確實(shí)如此。主要有以下幾個(gè)原因:首先,嵌入式不是當(dāng)前最流行的技術(shù),目前最火熱的技術(shù)當(dāng)屬機(jī)器學(xué)習(xí)和大數(shù)據(jù)。其次,嵌入式公司在國(guó)內(nèi)創(chuàng)業(yè)的并不占多數(shù),嵌入式行業(yè)的就業(yè)基本限制在芯片公司和移動(dòng)設(shè)備公司。最后,嵌入式的投入產(chǎn)出比不夠理想,影響到了嵌入式從業(yè)人員的薪資待遇水平。

針對(duì)這幾個(gè)問(wèn)題,我來(lái)談?wù)勛约旱目捶ā?/span>


01 嵌入式從業(yè)者需要與時(shí)俱進(jìn)


首先,流行的技術(shù)是應(yīng)該學(xué)習(xí)的,這個(gè)觀點(diǎn)我十分贊成,不過(guò),這與從事嵌入式行業(yè)并不矛盾,因?yàn)槲彝耆梢越Y(jié)合當(dāng)前的主線(xiàn)附加一些支線(xiàn)學(xué)習(xí)任務(wù),比如學(xué)習(xí)機(jī)器學(xué)習(xí)的相關(guān)知識(shí),而嵌入式目前也在這個(gè)領(lǐng)域大有可為。舉個(gè)例子,做inference芯片,幫助諸如TensorFlow、Caffe這樣的工具訓(xùn)練出的網(wǎng)絡(luò),能夠加速跑在移動(dòng)設(shè)備上。另一個(gè)例子是Google的TPU,從訓(xùn)練的角度幫助提升速度和效率。顯然,如果你選擇做嵌入式,不但沒(méi)有和這個(gè)時(shí)代脫節(jié),而且不斷在跟最流行的技術(shù)進(jìn)行交流。

最流行的技術(shù)總是在更新?lián)Q代,學(xué)習(xí)的速度需要更快,而嵌入式用到的大部分基礎(chǔ)知識(shí)實(shí)際在最近一些年并沒(méi)有本質(zhì)的變化,而所謂的學(xué)習(xí)新內(nèi)容不過(guò)是學(xué)習(xí)一些新的應(yīng)用場(chǎng)景,但是萬(wàn)變不離其宗。

最流行的技術(shù),也意味著從業(yè)的人員數(shù)量很大,在如此多的競(jìng)爭(zhēng)者中脫穎而出并不容易,如果想出類(lèi)拔萃,除了努力或許還需要一些天賦。

02 嵌入式就業(yè)隨“心”所欲

嵌入式公司中創(chuàng)業(yè)數(shù)量少這個(gè)問(wèn)題,實(shí)際上是相對(duì)于互聯(lián)網(wǎng)創(chuàng)業(yè)公司而言的。近年來(lái),我們能看到很多做智能家居的公司層出不窮,這對(duì)嵌入式從業(yè)人員來(lái)說(shuō)是利好的消息。這意味著,需要大量的嵌入式工程師來(lái)做一些基礎(chǔ)工作,而且很多工作是基于一些相對(duì)成熟的解決方案來(lái)實(shí)現(xiàn)的,所以門(mén)檻相對(duì)沒(méi)有那么高。

另外,智能手機(jī)的幾個(gè)巨頭,也可以作為嵌入式人員從業(yè)的目標(biāo)。要維持一定的出貨量,這樣的公司勢(shì)必要擁有大量的工程師以支撐多條產(chǎn)品線(xiàn),所以人員缺口自然也比較大。

而那些想要做得更加底層,更想去造輪子而不是做汽車(chē)的嵌入式工程師,個(gè)人建議你找一家芯片公司,從Bootloader開(kāi)始到上層應(yīng)用,無(wú)所不及,相信一定可以滿(mǎn)足一個(gè)技術(shù)極客的需求。當(dāng)然,日后還可以把你的代碼貢獻(xiàn)給開(kāi)源社區(qū),幫助提升開(kāi)源軟件的質(zhì)量,成就感可以得到更大的滿(mǎn)足。

03 把握好現(xiàn)在,定會(huì)有美好未來(lái)


與互聯(lián)網(wǎng)公司相比,嵌入式從業(yè)人員的薪資度的確并不討喜,但是這也要看你的水平級(jí)別。一個(gè)優(yōu)秀的嵌入式工程師,完全能夠做到衣食無(wú)憂(yōu)。況且,試想,是在一個(gè)人員緊缺的行業(yè)里更容易出類(lèi)拔萃,還是在一個(gè)競(jìng)爭(zhēng)激烈的領(lǐng)域更加容易?

在嵌入式行業(yè),如果熱愛(ài),就全身心投入,否則就放棄。很多時(shí)候方向固然重要,但絕非全部。打個(gè)比方,每個(gè)工程師都有自己的船,你就是船長(zhǎng),但目的地并不是只有一個(gè)。雖然大海茫茫,你沒(méi)有一張航線(xiàn)圖,但是只要一直向前走,由于目的地足夠多,最后你總能到達(dá)其中一個(gè),即便這個(gè)目的地并非最優(yōu),但也足夠受用。倘若一味地追求最優(yōu),不斷地切換航線(xiàn),而對(duì)于這片大海,如果沒(méi)有十分精準(zhǔn)的GPS,那么最后很可能你還在原地打轉(zhuǎn)。

因此,我認(rèn)為,是否選擇嵌入式,當(dāng)下是最重要的,未來(lái)可以思考,但并不見(jiàn)得是關(guān)鍵。正如《新世界靈性的覺(jué)醒》一書(shū)的作者所說(shuō):覺(jué)醒不發(fā)生在未來(lái),只發(fā)生在當(dāng)下。

所以,我們把握好現(xiàn)在,才是一切!

04 如何學(xué)好嵌入式?

關(guān)于如何進(jìn)行嵌入式的學(xué)習(xí),分享一些個(gè)人的經(jīng)驗(yàn)。

筆者身為一名軟件工程師,對(duì)于硬件并沒(méi)有非常深入的了解,所以只談?wù)勅绾螌W(xué)習(xí)嵌入式軟件。說(shuō)到這里可能有很多人會(huì)提出一個(gè)問(wèn)題:是應(yīng)該更重視理論基礎(chǔ),還是多做項(xiàng)目多動(dòng)手? 對(duì)于這個(gè)問(wèn)題我的回答是:兩者都很重要!

聽(tīng)起來(lái)好像是沒(méi)什么指導(dǎo)意義,但這確實(shí)是我這些年進(jìn)行嵌入式開(kāi)發(fā)的切實(shí)體會(huì)。

首先說(shuō)說(shuō)理論基礎(chǔ)學(xué)習(xí)。嵌入式的軟件開(kāi)發(fā)不同于一般的軟件開(kāi)發(fā),如果你做過(guò)3~5年的純軟件編程再轉(zhuǎn)向嵌入式,就會(huì)發(fā)現(xiàn),很多時(shí)候軟件出的問(wèn)題其實(shí)是硬件的不可靠造成的。如何對(duì)這些問(wèn)題進(jìn)行定位并解決呢?

我認(rèn)為,這需要相當(dāng)扎實(shí)的理論基礎(chǔ),當(dāng)然,有經(jīng)驗(yàn)會(huì)事半功倍。為什么這么講? 因?yàn)樵谇度胧介_(kāi)發(fā)中,你遇到一個(gè)問(wèn)題之后,可能沒(méi)有辦法像開(kāi)發(fā)其他軟件那樣,換一個(gè)方法照樣可以實(shí)現(xiàn)同樣的功能,而是卡在那里,止步不前,直到找到問(wèn)題的根本原因,業(yè)內(nèi)稱(chēng)之為rootcause。

這時(shí),就需要一步一步進(jìn)行排查,如果理論基礎(chǔ)不扎實(shí),對(duì)于一些知識(shí)點(diǎn)模棱兩可,那么在看問(wèn)題的時(shí)候可能沒(méi)有辦法搞清楚導(dǎo)致問(wèn)題發(fā)生的原因所在,比較含糊、似懂非懂的記憶會(huì)讓人在一個(gè)問(wèn)題上大費(fèi)周章。我也曾經(jīng)有在某些不感興趣的知識(shí)點(diǎn)上看個(gè)大概、淺嘗輒止的經(jīng)歷,其結(jié)果就是卡在某個(gè)問(wèn)題上,不得不回去補(bǔ)課,知識(shí)夯實(shí)之后再回過(guò)頭來(lái)解決問(wèn)題。

做一段時(shí)間研發(fā)就會(huì)發(fā)現(xiàn),莫非定律在嵌入式領(lǐng)域發(fā)生得非常頻繁,即懷疑可能會(huì)出問(wèn)題的點(diǎn),一定會(huì)出問(wèn)題。也就是說(shuō),在不了解原理的情況下進(jìn)行程序編寫(xiě),似是而非的代碼導(dǎo)致的問(wèn)題終有一天會(huì)爆發(fā),到那個(gè)時(shí)候,勢(shì)必需要花更多的時(shí)間了解其根本原理。

理論基礎(chǔ)主要是指編譯原理、操作系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)與算法。如果不懂編譯原理,那么有可能在遇到棧溢出、符號(hào)或調(diào)用無(wú)法找到等問(wèn)題時(shí)無(wú)所適從。操作系統(tǒng)理解得不透徹,可能就會(huì)在中斷、進(jìn)程線(xiàn)程調(diào)度、內(nèi)存使用等方面碰壁。數(shù)據(jù)結(jié)構(gòu)與算法的薄弱,則會(huì)讓你在想要實(shí)現(xiàn)一些功能時(shí)把數(shù)據(jù)組織得比較差,性能上會(huì)出現(xiàn)問(wèn)題。

如果立志做一名嵌入式工程師,我認(rèn)為基礎(chǔ)再多鞏固也不為過(guò)。而對(duì)于多做項(xiàng)目這個(gè)問(wèn)題,應(yīng)該是說(shuō)做得越多越好,畢竟紙上談兵不是嵌入式工程師的角色。這些項(xiàng)目可以來(lái)自于實(shí)驗(yàn)室、公司,乃至于開(kāi)源社區(qū)。

最開(kāi)始的時(shí)候不必瞄準(zhǔn)非常專(zhuān)注的方向,因?yàn)槟悴⒉恢朗裁锤m合你。說(shuō)到適合我是這樣認(rèn)為的,每位工程師可能在不同的領(lǐng)域有天賦,如果選擇的方向適合,那么將展現(xiàn)出你非凡的能力(當(dāng)然,我說(shuō)的是普通工程師,不排除某些天才可以在每個(gè)領(lǐng)域都出類(lèi)拔萃)。當(dāng)做了很多模塊之后,再選擇一個(gè)方向深入研究,努力成為這個(gè)領(lǐng)域的專(zhuān)家,此時(shí)既有方向和目的性,又不會(huì)因?yàn)檫^(guò)于狹窄的知識(shí)面而導(dǎo)致管中窺豹、盲人摸象。

多做項(xiàng)目的另一個(gè)好處是,可以有更多的機(jī)會(huì)與他人合作、溝通交流,很多時(shí)候一個(gè)人鉆牛角尖、不得要領(lǐng),卻可能在他人的一句提示下茅塞頓開(kāi)。Opensource就是一個(gè)很好的例證,眾人拾柴火焰高。

05 嵌入式從業(yè)之路,前景無(wú)限

關(guān)于嵌入式未來(lái)的發(fā)展方向,這個(gè)話(huà)題比較大,因?yàn)槲磥?lái)的事情難以預(yù)測(cè),尤其是在這樣一個(gè)日新月異、瞬息萬(wàn)變的時(shí)代。從短期來(lái)看,我認(rèn)為,嵌入式開(kāi)發(fā)的方向主要有:

01 移動(dòng)終端

手機(jī)仍然在不斷發(fā)展,更加智能化應(yīng)該是一個(gè)共同的方向。目前,越來(lái)越多的解決方案都加入了當(dāng)前最火

熱的人工智能、機(jī)器學(xué)習(xí)模型的inference加速芯片在手機(jī)里面,使得訓(xùn)練完備的模型能夠運(yùn)行在移動(dòng)終端。無(wú)論你是學(xué)機(jī)器學(xué)習(xí)算法,還是學(xué)嵌入式編程,這里都是一片新天地。

02 智能家居

目前涌現(xiàn)出越來(lái)越多的智能家居設(shè)施,比如空調(diào)、凈化器、掃地機(jī)器人等等,這些無(wú)疑方便了人們的生活,而如何添加一些更易用的功能就成了一個(gè)新的挑戰(zhàn)。作為嵌入式從業(yè)者,完全可以從這個(gè)方向切入,不斷創(chuàng)新。

03 VR和AR

這個(gè)可能并不是大眾市場(chǎng),它們代表的是娛樂(lè)方向。我們可以參考游戲機(jī)的發(fā)展,從掌機(jī)到紅白機(jī),再到SEGA、土星、PS、XBOX,其實(shí)都是在完成一件事情,讓游戲更加真實(shí)。AR和VR更是如此,讓人身臨其境,得到沉浸式的體驗(yàn),有朝一日,或許《黑客帝國(guó)》中的故事真的會(huì)發(fā)生。嵌入式工程師在這里或許會(huì)成為游戲規(guī)則的制定者,你準(zhǔn)備好了嗎?

莫非斯給的兩顆藥丸,你選擇紅色還是藍(lán)色? 選藍(lán)色就繼續(xù)前進(jìn),選擇紅色就進(jìn)入matrix。最后,向選擇紅色藥丸的嵌入式工程師們致以崇高的敬意!


05 另一個(gè)工程師眼中的嵌入式

一.工程師眼中的“嵌入式系統(tǒng)”

在工程師看來(lái):著重理解“嵌入”的概念,主要從三個(gè)方面來(lái)理解:

1、從硬件上,將基于CPU 的外圍器件,整合到CPU 芯片內(nèi)部,比如早期基于X86體系結(jié)構(gòu)下的計(jì)算機(jī),CPU 只是有運(yùn)算器和累加器的功能,一切芯片要靠外部橋路來(lái)擴(kuò)展實(shí)現(xiàn),象串口之類(lèi)的都是靠外部的16C550/2的串口控 制器芯片實(shí)現(xiàn)。目前這種串口控制器芯片早已集成到CPU 內(nèi)部。還有PC 機(jī)有顯卡,而多數(shù)嵌入式處理器都 帶有LCD 控制器,但某種意義上就相當(dāng)于顯卡。比較高端的ARM 類(lèi)Intel Xscale 架構(gòu)下的IXP 網(wǎng)絡(luò)處理器CPU 內(nèi)部集成PCI 控制器(可配成支持4個(gè)PCI 從設(shè)備或配成自身為CPI 從設(shè)備);還集成3個(gè)NPE 網(wǎng)絡(luò)處理器引擎,其中兩個(gè)對(duì)應(yīng)于兩個(gè)MAC 地址, 可用于網(wǎng)關(guān)交換用,而另外一個(gè)NPE 網(wǎng)絡(luò)處理器引擎支持DSL,只要外面再加個(gè)PHY 芯片即可實(shí)現(xiàn)DSL 上網(wǎng)功能。IXP 系列最高主頻可以達(dá)到1.8G,支持2G 內(nèi)存,1G×10或10G×1的以太 網(wǎng)口或Febre channel 的光通道。IXP 系列應(yīng)該是目標(biāo)基于ARM 體系結(jié)構(gòu)下由Intel 進(jìn)行整合后成Xscale 內(nèi)核的最高的處理器了。

2、從軟件上,就是在定制操作系統(tǒng)內(nèi)核里將應(yīng)用一并選入,編譯后將內(nèi)核下載到ROM 中。而在定制操作系統(tǒng)內(nèi)核時(shí)所選擇的應(yīng)用程序組件就是完成了軟件的“嵌入”,比如WinCE 在內(nèi)核定制時(shí),會(huì)有相應(yīng)選擇,其中就是 wordpad,PDF,MediaPlay 等等選擇,如果我們選擇了,在CE 啟動(dòng)后,就可以在界面中找到這些東西,如果是以前PC 上的windows 操作系統(tǒng),多半的東西都需要我們得新再裝。

3、把軟件內(nèi)核或應(yīng)用文件系統(tǒng)等東西燒到嵌入式系統(tǒng)硬件平臺(tái)中的ROM 中就實(shí)現(xiàn)了一個(gè)真正的“嵌入”。 以上的定義是我在6、7年前給嵌入式系統(tǒng)下自話(huà)側(cè)重于理解型的定義,書(shū)上的定義也有很多,但在這個(gè)領(lǐng)域范圍 內(nèi),誰(shuí)都不敢說(shuō)自己的定義是十分確切的,包括那些專(zhuān)家學(xué)者們,因?yàn)楫吘骨度胧较到y(tǒng)是計(jì)算機(jī)范疇下的一門(mén)綜合性學(xué)科。

二.嵌入式系統(tǒng)的分層及對(duì)口專(zhuān)業(yè)要求

嵌入式系統(tǒng)分為4層,硬件層、驅(qū)動(dòng)層、操作系統(tǒng)層和應(yīng)用層。

1、硬件層:
是整個(gè)嵌入式系統(tǒng)的根本。如果現(xiàn)在單片機(jī)及接口這塊很熟悉,并且能用C 和匯編語(yǔ)言來(lái)編程的話(huà),從嵌入式系統(tǒng)的硬件層走起來(lái)相對(duì)容易,硬件層也是驅(qū)動(dòng)層的基礎(chǔ),一個(gè)優(yōu)秀的驅(qū)動(dòng)工程師是要能夠看懂硬件的電路圖和自行完成CPLD 的邏輯設(shè)計(jì)的,同時(shí)還要對(duì)操作系統(tǒng)內(nèi)核及其調(diào)度有相當(dāng)?shù)氖煜ぁ5布脚_(tái)是基礎(chǔ),增值還要靠軟件。

硬件層比較適合于電子、通信、自動(dòng)化、機(jī)電一體、信息工程類(lèi)專(zhuān)業(yè)的人來(lái)搞。需要掌握的專(zhuān)業(yè)基礎(chǔ)知識(shí)有: 單片機(jī)原理及接口技術(shù)、微機(jī)原理及接口技術(shù)、C 語(yǔ)言等。

2、驅(qū)動(dòng)層:
這部分相對(duì)而言比較難。驅(qū)動(dòng)工程師不僅要能看懂電路圖,還要能對(duì)操作系統(tǒng)內(nèi)核十分的精通,以便其所寫(xiě)的驅(qū)動(dòng)程序在系統(tǒng)調(diào)用時(shí),不會(huì)獨(dú)占操作系統(tǒng)時(shí)間片,而導(dǎo)致其它任務(wù)不能運(yùn)行。若不懂操作系統(tǒng)內(nèi)核架構(gòu)和實(shí)時(shí)調(diào)度性,沒(méi)有良好的驅(qū)動(dòng)編寫(xiě)風(fēng)格,按大多數(shù)書(shū)上所說(shuō)添加的驅(qū)動(dòng)的方式,這樣可能連個(gè)初級(jí)的驅(qū)動(dòng)工程師的水平都達(dá)不到,所寫(xiě)的驅(qū)動(dòng)在應(yīng)用調(diào)用時(shí)就如同windows 下我們打開(kāi)一個(gè)程序運(yùn)行后,再打開(kāi)一個(gè)程序時(shí),要不就是中斷以前的程序,要不就是等上一會(huì)才能運(yùn)行后來(lái)打開(kāi)的程序。想做個(gè)好的驅(qū)動(dòng)人員沒(méi)有三、四年功底,操作系統(tǒng)內(nèi)核不研究上幾遍,不是太容易成功的,但其工資在嵌入式系統(tǒng)四層中是最高的。 驅(qū)動(dòng)層比較適合于電子、通信、自動(dòng)化、機(jī)電一體、信息工程類(lèi)專(zhuān)業(yè)尤其是計(jì)算機(jī)偏體系結(jié)構(gòu)類(lèi)專(zhuān)業(yè)的人來(lái)搞。 當(dāng)然除硬件層所具備的基礎(chǔ)學(xué)科外,還要對(duì)數(shù)據(jù)結(jié)構(gòu)與算法、操作系統(tǒng)原理、編譯原理都要十分精通。

3、操作系統(tǒng)層:
對(duì)于操作系統(tǒng)層而言目前可能只能說(shuō)是簡(jiǎn)單的移植,而很少有人來(lái)自已寫(xiě)操作系統(tǒng),或者寫(xiě)出缺胳膊少腿的操作系統(tǒng)來(lái),這部分工作大都由驅(qū)動(dòng)工程師來(lái)完成。操作系統(tǒng)是負(fù)責(zé)系統(tǒng)任務(wù)的調(diào)試、磁盤(pán)和文件的管理,而嵌入式系統(tǒng)的實(shí)時(shí)性十分重要。據(jù)說(shuō),XP 操作系統(tǒng)是微軟投入300人用兩年時(shí)間才搞定的,總時(shí)工時(shí)是 600人/年;中科院軟件所自己的女?huà)zHopen 操作系統(tǒng)估計(jì)也得花幾百人/年才能搞定。因此這部分工作相對(duì)來(lái)講沒(méi)有太大意義。

4、應(yīng)用層:
相對(duì)來(lái)講較為容易。如果會(huì)在windows 下進(jìn)行編程接口函數(shù)調(diào)用,到操作系統(tǒng)下只是編譯和開(kāi)發(fā)環(huán)境有相應(yīng)的變化而已。如果涉及Java方面的編程也是如此。嵌入式系統(tǒng)中涉及算法的由專(zhuān)業(yè)算法的人來(lái)處理,不必歸結(jié)到嵌入式系統(tǒng)范疇內(nèi)。但如果涉及嵌入式系統(tǒng)下面的嵌入式數(shù)據(jù)庫(kù)、基于嵌入式系統(tǒng)的網(wǎng)絡(luò)編程和基于某些應(yīng)用層面的協(xié)議應(yīng)用開(kāi)發(fā)(比如基于SIP、H.323、Astrisk)方面,又較為復(fù)雜,并且有度了。

三.目標(biāo)與定位

先有目標(biāo),再去定位。

學(xué)ARM,從硬件上講,一方面就是學(xué)習(xí)接口電路設(shè)計(jì),另一方面就是學(xué)習(xí)匯編和C 語(yǔ)言的板級(jí)編程。從軟件上講,就是要學(xué)習(xí)基于ARM 處理器的操作系統(tǒng)層面的驅(qū)動(dòng)和移植。這些對(duì)于初學(xué)者來(lái)說(shuō)必須明確,要么從硬件著手開(kāi)始學(xué),要么從操作系統(tǒng)的熟悉到應(yīng)用開(kāi)始學(xué),但不管學(xué)什么,只要不是純的操作系統(tǒng)級(jí)以上基于API 的應(yīng)用層的編程,硬件的寄存器類(lèi)的東西還是要能看懂的、基于板級(jí)的匯編和C 編程還是要會(huì)的。因此針對(duì)于嵌 入式系統(tǒng)的硬件層和驅(qū)動(dòng)層的人來(lái)說(shuō),ARM 的接口電路設(shè)計(jì)、ARM 的C 語(yǔ)言和匯編語(yǔ)言編程及調(diào)試開(kāi)發(fā)環(huán)境還是需要掌握的。

對(duì)于初學(xué)者必然要把握住方向,自己的目標(biāo)是什么,自己要在哪一層面上走。然后再著手學(xué)習(xí)才比較好,與 ARM 相關(guān)的嵌入式系統(tǒng)的較為實(shí)際的兩個(gè)層面硬件層和驅(qū)動(dòng)層,不管學(xué)好了那一層都會(huì)很有前途的。 如果想從嵌入式系統(tǒng)的應(yīng)用層面的走的話(huà),可能與ARM 及其它體系相去較遠(yuǎn),要著重研究基嵌入式操作系統(tǒng)的 環(huán)境應(yīng)用與相應(yīng)開(kāi)發(fā)工具鏈,比如WinCE 操作系統(tǒng)下的EVC 應(yīng)用開(kāi)發(fā)(與windows 下的VC 相類(lèi)似),如果想再 有突破就往某些音視頻類(lèi)的協(xié)議上靠,比如VOIP 領(lǐng)域的基于SIP 或H.323協(xié)議的應(yīng)用層開(kāi)發(fā),或是基于嵌入式 網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的開(kāi)發(fā)等等。

對(duì)于初學(xué)者來(lái)講,要量力而行,不要認(rèn)為驅(qū)動(dòng)層工資高就把它當(dāng)成方向了,要結(jié)合自身特點(diǎn),嵌入式系統(tǒng)四個(gè)層 面上無(wú)論哪個(gè)層面上來(lái)講都是有高人存在,當(dāng)然高人也對(duì)應(yīng)的高工資。我是做硬件層的,以前每月工資中個(gè)人所 得稅要被扣上近3千大元。當(dāng)然我一方面充當(dāng)工程師的角色,一方面充當(dāng)主管人物的角色,兩個(gè)職位我一個(gè)人干, 但上班時(shí)間就那些。硬件這方面上可能與我PK 的人很少了,才讓我拿到那么多的工資。

四.如何選擇合適的開(kāi)發(fā)系統(tǒng)

很多ARM 初學(xué)者都希望有一套自己能用的系統(tǒng),但他們往往會(huì)產(chǎn)生一種錯(cuò)誤認(rèn)識(shí),就是認(rèn)為處理器版本越高越好,性能越高越好,就象很多人認(rèn)為ARM9比ARM7好, 我想對(duì)于初學(xué)者在此方面以此入門(mén)還應(yīng)該理智,開(kāi)發(fā)系統(tǒng)的選擇最終要看自己往嵌入式系統(tǒng)的哪個(gè)方向上走,是做驅(qū)動(dòng)開(kāi)發(fā)還是應(yīng)用,還是做嵌入式系統(tǒng)硬件層設(shè)計(jì)與板級(jí)測(cè)試。如果想從操作系統(tǒng)層面或應(yīng)用層面上走,不管是驅(qū)動(dòng)還是應(yīng)用,當(dāng)然處理器性能越高越好了,但這個(gè)東西自學(xué),有十分大的困難,不是幾個(gè)月或半年或是一年二年能搞定的事。

在某種意義上講,ARM7與ARM9的差別就是在某些功能指令集上豐富了些,主頻提高一些而已,就比如286 和386。對(duì)于用戶(hù)來(lái)講可能覺(jué)察不到什么,只能是感覺(jué)速度有些快而已。

ARM7比較適合于那些想從硬件層面上走的人,因?yàn)锳RM7系列處理器內(nèi)部帶MMU 的很少,而且比較好控 制。就比如S3C44B0來(lái)講,可以很容易將Cache 關(guān)了,而且內(nèi)部接口寄存器很容易看明白,各種接口對(duì)于用硬件 程序控制或AXD 單步命令行指令都可以控制起來(lái)。基于51單片機(jī)的思想很容易搞懂,就當(dāng)成個(gè)32位的單 片機(jī),從而消除很多51工程師想轉(zhuǎn)為嵌入式系統(tǒng)硬件ARM 開(kāi)發(fā)工程師的困惑,從而不會(huì)被業(yè)界某些不是真正懂 嵌入式爛公司帶到操作系統(tǒng)層面上去,讓他們望而生畏,讓業(yè)界更加缺少這方面的人才。

而嵌入式系統(tǒng)不管硬件設(shè)計(jì)還是軟件驅(qū)動(dòng)方面都是十分注重接口這部分的,選擇平臺(tái)還要考察一個(gè)處理器的外部資源,你接觸外部資源越多,越熟悉他們,以后就業(yè)成功的機(jī)率就越高,這就是招聘時(shí)所說(shuō)的有無(wú)“相關(guān)技能”,因?yàn)橐粋€(gè)人不可能在短短幾年內(nèi)把所有的處理器都接觸一遍,而招聘單位所用的處理器就可能是我們完 全沒(méi)有見(jiàn)過(guò)的,就拿臺(tái)灣數(shù)十家小公司(市價(jià)幾千萬(wàn))的公司生產(chǎn)的ARM 類(lèi)處理器,也很好用,但這些東西通用性 太差,用這些處理器的公司就只能招有相關(guān)工作經(jīng)驗(yàn)的人了,那什么是相關(guān)工作經(jīng)驗(yàn),在硬件上講的是外圍接口設(shè)計(jì),在軟件上講是操作系統(tǒng)方面相關(guān)接口驅(qū)動(dòng)及應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。我從業(yè)近十年, 2000年ARM 出現(xiàn),我一開(kāi)始做ARM7,然后直接跑到了Xscale(這個(gè)板本在ARM10-11之間),一做就是五年,招人面試都不下數(shù)百人,在這些方面還是深有體會(huì)的。

我個(gè)人認(rèn)為三星的S3C44b0對(duì)初學(xué)者來(lái)說(shuō)比較合適,為什么這么說(shuō)? 因?yàn)榻涌谫Y源比較豐富,技術(shù)成熟,資料較多,應(yīng)該十分適合于初學(xué)者。有問(wèn)題可能很容易找人幫且解決,因?yàn)榇蠖鄶?shù)人都很熟悉,就如同51類(lèi)的單片 機(jī),有N多位專(zhuān)家級(jí)的人物可以給你幫忙,相關(guān)問(wèn)題得以很快解答,所然業(yè)界認(rèn)為這款A(yù)RM 都用得爛了,但對(duì)于初學(xué)者來(lái),卻是件好事。

總的來(lái)說(shuō),開(kāi)發(fā)系統(tǒng)的選擇,要看自己的未來(lái)從業(yè)目標(biāo)方向,要看開(kāi)發(fā)板接口資源,還要看業(yè)界的通用性。

五.成為高級(jí)嵌入式系統(tǒng)硬件工程師要具備的技能

對(duì)于硬件來(lái)講有幾個(gè)方向,就單純信號(hào)來(lái)分為數(shù)字和模擬。模擬比較難搞,一般需要很長(zhǎng)的經(jīng)驗(yàn)積累,單單一個(gè)阻值或容值的精度不夠就可能使信號(hào)偏差很大。因此年輕人搞的較少,隨著技術(shù)的發(fā)展,出現(xiàn)了模擬電路數(shù)字化。 比如手機(jī)的Modem 射頻模塊,都采用成熟的套片,而當(dāng)年國(guó)際上只有兩家公司有此技術(shù),自我感覺(jué)模擬功能不 太強(qiáng)的人,不太適合搞這個(gè),如果真能搞定到手機(jī)的射頻模塊,只要達(dá)到一般程度可能月薪都在15K 以上。

另一類(lèi)就是數(shù)字部分了,在大方向上又可分為51/ARM 的單片機(jī)類(lèi),DSP 類(lèi),F(xiàn)PGA 類(lèi)。國(guó)內(nèi)FPGA 的工程 師大多是在IC 設(shè)計(jì)公司從事IP 核的前端驗(yàn)證,這部分不搞到門(mén)級(jí),前途不太明朗,即使做個(gè)IC 前端驗(yàn)證工程 師,也要搞上幾年才能勝任。DSP 硬件接口比較定型,如果不向驅(qū)動(dòng)或是算法上靠攏,前途也不會(huì)太大。而ARM 單片機(jī)類(lèi)的內(nèi)容就較多,業(yè)界產(chǎn)品占用量大,應(yīng)用人群廣,因此就業(yè)空間極大。而硬件設(shè)計(jì)最體現(xiàn)水平和水準(zhǔn)的就是接口設(shè)計(jì)這塊,這是各個(gè)高級(jí)硬件工程師相互PK、判定水平高低的依據(jù)。而接口設(shè)計(jì)這塊最關(guān)鍵的是看時(shí)序, 而不是簡(jiǎn)單的連接,比如PXA255處理器I2C 要求速度在100Kbps,如果把一個(gè)I2C 外圍器件,最高還達(dá)不到100kbps 的與它相接,必然要導(dǎo)致設(shè)計(jì)的失敗。這樣的情況有很多,比如51單片機(jī)可以在總線(xiàn)接LCD,但為什么這種LCD 就不能掛在ARM 的總線(xiàn)上,還有ARM7總線(xiàn)上可以外接Winband 的SD 卡控制器,但為什么這種控制器接不到ARM9或是Xscale 處理器上,這些都是問(wèn)題。因此接口并不是一種簡(jiǎn)單的連接,要看時(shí)序,要看參數(shù)。 一個(gè)優(yōu)秀的硬件工程師應(yīng)該能夠在沒(méi)有參考方案的前提下設(shè)計(jì)出一個(gè)在成本和性能上更加優(yōu)秀的產(chǎn)品,靠現(xiàn)有的方案,也要進(jìn)行適當(dāng)?shù)目尚行圆眉簦皇呛鷣y的來(lái),我遇到一個(gè)工程師把方案中的5V 變1.8V 的DC 芯片,直接更換成LDO,有時(shí)就會(huì)把CPU 燒上幾個(gè)。前幾天還有人希望我?guī)兔Π阉麄円郧盎赑XA255平臺(tái)的手持GPS 設(shè)備做下程序優(yōu)化,我問(wèn)了一下情況,地圖是存在SD 卡中的,而SD 卡與PXA255的MMC 控制器間采用的SPI 接口,因此導(dǎo)致地圖讀取速度十分的慢,這種情況是設(shè)計(jì)中嚴(yán)重的缺陷,而不是程序的問(wèn)題。因此我提了幾條建議,讓他們更新試下再說(shuō)。

因此想成為一個(gè)優(yōu)秀的工程師,需要對(duì)系統(tǒng)整體性的把握和對(duì)已有電路的理解,換句話(huà)說(shuō),給你一套電路圖你能看明白多少,看不明白80%以上的話(huà),說(shuō)明你離優(yōu)秀的工程師還差得遠(yuǎn)。其次是電路的調(diào)試能力和審圖能力,但最最基本的能力還是原理圖設(shè)計(jì)、PCB 繪制、邏輯設(shè)計(jì)這塊。這是指的硬件設(shè)計(jì)工程師,從上面的硬件設(shè)計(jì)工程師中還可以分出ECAD 工程師,就是專(zhuān)業(yè)的畫(huà)PCB 板的工程師,和EMC 設(shè)計(jì)工程師,幫人家解決EMC 的問(wèn)題。硬件工程師再往上就是板級(jí)測(cè)試工程師,就是C 語(yǔ)言功底很好的硬件工程師,在電路板調(diào)試過(guò)程中能通過(guò)自已編寫(xiě)的測(cè)試程序?qū)τ布δ苓M(jìn)行驗(yàn)證。然后再交給基于操作系統(tǒng)級(jí)的驅(qū)動(dòng)開(kāi)發(fā)人員。 總之,硬件的內(nèi)容很多很雜,硬件哪方面練成了都會(huì)成為一個(gè)高手,我時(shí)常會(huì)給人家做下方案評(píng)估,很多高級(jí)硬件工程師設(shè)計(jì)的東西,經(jīng)常被我一句話(huà)否定。因此工程師做到我這種地步,也會(huì)得罪些人,但硬件的確會(huì)有很多不為人知的東西,讓很多高級(jí)硬件工程師也摸不到頭腦。

那么高級(jí)硬件工程師技術(shù)技能都要具備哪些?首先要掌握EDA 設(shè)計(jì)的輔助工具類(lèi)如Protel OR CADPowper PCBMaplux2ISE、VDHL 語(yǔ)言,要能用到這些工具畫(huà)圖畫(huà)板做邏輯設(shè)計(jì),再有就是接口設(shè)計(jì)審圖能力, 再者就是調(diào)試能力,如果能走到總體方案設(shè)計(jì)這塊,那就基本上快成為資深工程師了。

深入了解各種器件特性,選擇最合適的處理器、外圍器件、操作系統(tǒng)和軟件庫(kù),盡可能地優(yōu)化軟件設(shè)計(jì),最貼切地滿(mǎn)足應(yīng)用需求,以獲得最好的系統(tǒng)性?xún)r(jià)比,是嵌入式系統(tǒng)設(shè)計(jì)開(kāi)發(fā)的精髓。

硬件是要靠經(jīng)驗(yàn),也要靠積累的,十年磨一劍,百年磨一針。

不過(guò)最后提醒大家:追求技術(shù)不是人生的唯一目的,切不可把它當(dāng)成喜悅的唯一源泉,平時(shí)身邊有很多美好的事物都值得用心去珍惜。呵呵,我已經(jīng)在擔(dān)心自己的智力是否會(huì)在30歲到來(lái)之前枯竭了.好好珍惜短暫的大學(xué)生活,好好珍惜自己的青春,不要整天呆在實(shí)驗(yàn)室,左手鍵盤(pán)右手烙鐵的。


-END-




推薦閱讀



【01】嵌入式編程應(yīng)用:union 的精妙之用!
【02】嵌入式工程師出路之我見(jiàn):就業(yè),技術(shù),行業(yè)...
【03】985碩士出身,嵌入式驅(qū)動(dòng)開(kāi)發(fā)工資能到多少?
【04】嵌入式LCD的接口類(lèi)型詳解
【05】嵌入式驅(qū)動(dòng)程序設(shè)計(jì)的5個(gè)套路


免責(zé)聲明:整理文章為傳播相關(guān)技術(shù),版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系刪除

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!

嵌入式ARM

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉