做嵌入式,如果愛就全心投入,否則就放棄!
01 6個對話讓你重新認(rèn)清真相!
嵌入式是個大坑一直很火。但是也有人跳出來說,嵌入式不是大坑。嵌入式究竟是不是個大坑呢?今天就聽一下21ic 資深網(wǎng)友 icecut 是怎么看的!
有90%的人,覺得嵌入式是個大坑。因為他們賺錢少,剛畢業(yè)也就賺5000元/月,而互聯(lián)網(wǎng)就可以拿到一萬/月。工作任務(wù)簡單,用一些簡單的 c 語言寫著永遠(yuǎn)大不了的代碼。重復(fù)地做相同的事情。每一個新產(chǎn)品看起來都差不多,但是每次都要學(xué)不一樣的東西,比如換一個adc 芯片,用的不同的廠家,所有的軟件都不一樣。甚至相同廠家也有這種情況,比如M3和 M4的 mcu,都是 arm,內(nèi)核不同,片內(nèi)外設(shè)就不一樣,就要重新學(xué)片內(nèi)外設(shè)的操作,投入非常大,卻得不到應(yīng)有的回報。不如去轉(zhuǎn)互聯(lián)網(wǎng)。你可以什么都不會,就去 github 之類的網(wǎng)站找個例程,隨便改改,差不多滿足需求,老板覺得過得去,用戶覺得還能用。你就能拿別人的作品賺自己的工資。前期投入就是花2w 元,跟某機構(gòu)學(xué)一下套路,然后給你一個3年經(jīng)驗的離職證明和3年前的一張畢業(yè)證。而這些人就成天喋喋不休的來炫耀,自己賺錢多,自己笨沒關(guān)系,照樣復(fù)制粘貼就賺錢。
你是不是也在羨慕這種人呢?可是你已經(jīng)畢業(yè)多年,沒有體力去加班干互聯(lián)網(wǎng)的工作。甚至沒有2w 元的存款去買套路和假的工作證明。甚至你已經(jīng)習(xí)慣了腳踏實地干活,不會在面試上吹噓。。。。。你羨慕著別人賺錢,你默默的接受被嵌入式坑的日子。。。。
而20%的人,又覺得嵌入式是可以拯救的。比如小 i 的觀點,他認(rèn)為嵌入式是下一個爆發(fā)地。你想想網(wǎng)店最后不還是在做實體店么?京東是沃爾瑪投資的,最后京東又投資了永輝。互聯(lián)網(wǎng)基于手機的日子快要過去了。隨著互聯(lián)網(wǎng)公司的裁員和倒閉,他們的好日子快結(jié)束了。當(dāng)然,物聯(lián)網(wǎng)發(fā)展還是蝸牛爬,嵌入式的未來還需耕耘。
在過去的幾年里,小 i 一直在幫助大家進步。所以有許多認(rèn)識可以跟大家聊。
1. 過高地估計了自己,錯誤的估計了行業(yè)。這是我與一個二三線城市學(xué)生的對話。他們理解了一點嵌入式技術(shù),就覺得自己比大多數(shù)同學(xué)水平高了。不需要再去聽我的。他們覺得那些嵌入式技術(shù)就會在招聘會上勝出。過高的自信,讓我真的無言以對。而我看來,他們的水平,離著能干活至少需要有一年的實踐。所以他們肯定是覺得自己被坑的。如此牛逼的自己,卻干這么簡單卻做不好的任務(wù)。
2. 這是一個與一線二本學(xué)生的對話。當(dāng)然小 i 也來自二本學(xué)校。我那時候也是一直在自學(xué),花掉了好多錢。買原件買板子,順便也在學(xué)校的小作品里賺點錢?,F(xiàn)在學(xué)校有錢了,這種活動很多。實驗室的設(shè)備也更新了,并且隨便用。每一個人都在忙,忙的都聽不進我的指點。我也算一個學(xué)術(shù)型工程師了。可是他們做著不穩(wěn)定的實驗,從來沒心做好一個作品。因為穩(wěn)定這兩個字,付出太大了。他們沒有耐心去完善。 可以他們自己覺得更加自信,甚至許多人還不怎么懂就去參加各種競賽。當(dāng)然也有一些競賽稱為了灰色產(chǎn)業(yè)鏈的最后一環(huán)。自己做代碼和板卡賣給學(xué)生,還真賺錢。有人要證書,有人要金錢,何樂而不為的交換呢?
3. 這是一個與畢業(yè)一年的初級工程師的對話,他來自二線城市,通過加班抗住現(xiàn)有的工作。一個問題調(diào)試好幾年確不得要領(lǐng),卻是當(dāng)年學(xué)校里的佼佼者。我告訴他嵌入式行業(yè)是個會者不難,難者不會的的領(lǐng)域。我給他一個提示,讓他能夠不用加班的完成任務(wù),誰不想讓自己的工作更加舒適呢?他已經(jīng)能認(rèn)識到嵌入式不是大坑,而是自己技術(shù)上太多欠缺。實驗室產(chǎn)品和穩(wěn)定的產(chǎn)品,是20%和80%的距離。而優(yōu)秀的產(chǎn)品,最后的20%,付出的要超過100%的努力。新手,熟手和高手,就是20%,80%和100%。代碼在小 i 手中游刃有余,bug 在小 i的眼里,沒有藏身之處。而這些,可能新手覺得不就是代碼嘛,你寫的我能看懂,也沒什么高深之處。而 bug 在新手的眼里就是云深不知處了。熟手的眼里,小 i的代碼是規(guī)范的,思想是嚴(yán)謹(jǐn)?shù)?。?bug 在熟手的眼睛里是若隱若現(xiàn)的。你若急躁,它便消失。你白天在找,晚上也在找??墒?,總要很久才能找到。從20%到80%你需要一個嚴(yán)格的領(lǐng)導(dǎo),和一個加班的心態(tài)。實踐到了就熟悉了。最后的20%你需要一個嚴(yán)謹(jǐn)?shù)膶?dǎo)師,把你打回原形,重新來過。人生若只如初見,一切只能從頭再來。因為你曾經(jīng)積累的經(jīng)驗,都沒有用。在此也要感謝我工作中的老師。一位足矣。而80%這座山,擋住了90%的人,多少風(fēng)流人物,就掛在了這個山頭。我說你不會,你入門的都不會,你說你會了,你都做過很久了。佛曰:放下。只有放下了你自己,才能接受整個世界。三人行必有我?guī)?,可是你總是想,三人行,你是別人的老師。你是被嵌入式坑的那個老師啊。你在努力,但是怕爬不出這個坑。而這個孩子,謙虛謹(jǐn)慎,努力的認(rèn)真的學(xué)習(xí)著。會好的,總有一條路,讓你爬到岸上看風(fēng)景。
4. 這是一個與一線城市的資深工程師的對話,來自一流學(xué)校。很少人,是這么過來的,他們的眼里沒有熟手這個概念。若做必是最好的。當(dāng)時我所在的公司招聘,約他晚上過來面試,在一個小會議室里,一群被坑了千百遍的土鱉組成的面試團隊聽他在上面侃侃而談。我以為他們又請到了高手外援。。。。。。從他那里,我知道了一些書,都來自全球頂尖公司的技術(shù)大師或者頂級高校的重量級教授。這些書永遠(yuǎn)成不了暢銷書,也永遠(yuǎn)進不了排行榜。不要問我是什么書,因為你買了,也只能當(dāng)神供著。如果你能力夠了,書自然會與你偶遇。路迢迢其修遠(yuǎn)兮,你只抱怨不求索。
5. 這是與心的交流。對得起自己,就對得起世界。我學(xué)習(xí)的時候,還流行教會徒弟餓死師傅。而我喜歡一個新的分享的世界。去年,給21ic 提供了三個視頻,stm32從入門到精通, 小 i 教你學(xué) usb, linux 驅(qū)動教程。在線學(xué)習(xí)如日中天,我的每一個視頻都對得起我的心。當(dāng)年我要是這么學(xué),就會更快更好。談感情傷錢,這是我的廉價視頻。后面會推出符合我講述知識等價的視頻。好東西一定是貴的。
6. 最后寫給那些坑了這個行業(yè)的人,不好好寫代碼,把 bug 留給別人,別人加班給你調(diào)試 bug,讓整個產(chǎn)品延期。我曾經(jīng)被邀請參加一個無線遙控產(chǎn)品的調(diào)試,根本不懂無線通信的人,隨便做了一個產(chǎn)品。明天就要演示了。租了好大的展廳去開發(fā)布會,可產(chǎn)品就是距離不夠。。。。許多人,坑了嵌入式,卻在說嵌入式坑了你。。。
熱的人工智能、機器學(xué)習(xí)模型的inference加速芯片在手機里面,使得訓(xùn)練完備的模型能夠運行在移動終端。無論你是學(xué)機器學(xué)習(xí)算法,還是學(xué)嵌入式編程,這里都是一片新天地。
05 另一個工程師眼中的嵌入式
在工程師看來:著重理解“嵌入”的概念,主要從三個方面來理解:
1、從硬件上,將基于CPU 的外圍器件,整合到CPU 芯片內(nèi)部,比如早期基于X86體系結(jié)構(gòu)下的計算機,CPU 只是有運算器和累加器的功能,一切芯片要靠外部橋路來擴展實現(xiàn),象串口之類的都是靠外部的16C550/2的串口控 制器芯片實現(xiàn)。目前這種串口控制器芯片早已集成到CPU 內(nèi)部。還有PC 機有顯卡,而多數(shù)嵌入式處理器都 帶有LCD 控制器,但某種意義上就相當(dāng)于顯卡。比較高端的ARM 類Intel Xscale 架構(gòu)下的IXP 網(wǎng)絡(luò)處理器CPU 內(nèi)部集成PCI 控制器(可配成支持4個PCI 從設(shè)備或配成自身為CPI 從設(shè)備);還集成3個NPE 網(wǎng)絡(luò)處理器引擎,其中兩個對應(yīng)于兩個MAC 地址, 可用于網(wǎng)關(guān)交換用,而另外一個NPE 網(wǎng)絡(luò)處理器引擎支持DSL,只要外面再加個PHY 芯片即可實現(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 進行整合后成Xscale 內(nèi)核的最高的處理器了。
2、從軟件上,就是在定制操作系統(tǒng)內(nèi)核里將應(yīng)用一并選入,編譯后將內(nèi)核下載到ROM 中。而在定制操作系統(tǒng)內(nèi)核時所選擇的應(yīng)用程序組件就是完成了軟件的“嵌入”,比如WinCE 在內(nèi)核定制時,會有相應(yīng)選擇,其中就是 wordpad,PDF,MediaPlay 等等選擇,如果我們選擇了,在CE 啟動后,就可以在界面中找到這些東西,如果是以前PC 上的windows 操作系統(tǒng),多半的東西都需要我們得新再裝。
3、把軟件內(nèi)核或應(yīng)用文件系統(tǒng)等東西燒到嵌入式系統(tǒng)硬件平臺中的ROM 中就實現(xiàn)了一個真正的“嵌入”。 以上的定義是我在6、7年前給嵌入式系統(tǒng)下自話側(cè)重于理解型的定義,書上的定義也有很多,但在這個領(lǐng)域范圍 內(nèi),誰都不敢說自己的定義是十分確切的,包括那些專家學(xué)者們,因為畢竟嵌入式系統(tǒng)是計算機范疇下的一門綜合性學(xué)科。
二.嵌入式系統(tǒng)的分層及對口專業(yè)要求
嵌入式系統(tǒng)分為4層,硬件層、驅(qū)動層、操作系統(tǒng)層和應(yīng)用層。
1、硬件層: 是整個嵌入式系統(tǒng)的根本。如果現(xiàn)在單片機及接口這塊很熟悉,并且能用C 和匯編語言來編程的話,從嵌入式系統(tǒng)的硬件層走起來相對容易,硬件層也是驅(qū)動層的基礎(chǔ),一個優(yōu)秀的驅(qū)動工程師是要能夠看懂硬件的電路圖和自行完成CPLD 的邏輯設(shè)計的,同時還要對操作系統(tǒng)內(nèi)核及其調(diào)度有相當(dāng)?shù)氖煜?。但硬件平臺是基礎(chǔ),增值還要靠軟件。
硬件層比較適合于電子、通信、自動化、機電一體、信息工程類專業(yè)的人來搞。需要掌握的專業(yè)基礎(chǔ)知識有: 單片機原理及接口技術(shù)、微機原理及接口技術(shù)、C 語言等。
2、驅(qū)動層: 這部分相對而言比較難。驅(qū)動工程師不僅要能看懂電路圖,還要能對操作系統(tǒng)內(nèi)核十分的精通,以便其所寫的驅(qū)動程序在系統(tǒng)調(diào)用時,不會獨占操作系統(tǒng)時間片,而導(dǎo)致其它任務(wù)不能運行。若不懂操作系統(tǒng)內(nèi)核架構(gòu)和實時調(diào)度性,沒有良好的驅(qū)動編寫風(fēng)格,按大多數(shù)書上所說添加的驅(qū)動的方式,這樣可能連個初級的驅(qū)動工程師的水平都達(dá)不到,所寫的驅(qū)動在應(yīng)用調(diào)用時就如同windows 下我們打開一個程序運行后,再打開一個程序時,要不就是中斷以前的程序,要不就是等上一會才能運行后來打開的程序。想做個好的驅(qū)動人員沒有三、四年功底,操作系統(tǒng)內(nèi)核不研究上幾遍,不是太容易成功的,但其工資在嵌入式系統(tǒng)四層中是最高的。 驅(qū)動層比較適合于電子、通信、自動化、機電一體、信息工程類專業(yè)尤其是計算機偏體系結(jié)構(gòu)類專業(yè)的人來搞。 當(dāng)然除硬件層所具備的基礎(chǔ)學(xué)科外,還要對數(shù)據(jù)結(jié)構(gòu)與算法、操作系統(tǒng)原理、編譯原理都要十分精通。
3、操作系統(tǒng)層: 對于操作系統(tǒng)層而言目前可能只能說是簡單的移植,而很少有人來自已寫操作系統(tǒng),或者寫出缺胳膊少腿的操作系統(tǒng)來,這部分工作大都由驅(qū)動工程師來完成。操作系統(tǒng)是負(fù)責(zé)系統(tǒng)任務(wù)的調(diào)試、磁盤和文件的管理,而嵌入式系統(tǒng)的實時性十分重要。據(jù)說,XP 操作系統(tǒng)是微軟投入300人用兩年時間才搞定的,總時工時是 600人/年;中科院軟件所自己的女媧Hopen 操作系統(tǒng)估計也得花幾百人/年才能搞定。因此這部分工作相對來講沒有太大意義。
4、應(yīng)用層: 相對來講較為容易。如果會在windows 下進行編程接口函數(shù)調(diào)用,到操作系統(tǒng)下只是編譯和開發(fā)環(huán)境有相應(yīng)的變化而已。如果涉及Java方面的編程也是如此。嵌入式系統(tǒng)中涉及算法的由專業(yè)算法的人來處理,不必歸結(jié)到嵌入式系統(tǒng)范疇內(nèi)。但如果涉及嵌入式系統(tǒng)下面的嵌入式數(shù)據(jù)庫、基于嵌入式系統(tǒng)的網(wǎng)絡(luò)編程和基于某些應(yīng)用層面的協(xié)議應(yīng)用開發(fā)(比如基于SIP、H.323、Astrisk)方面,又較為復(fù)雜,并且有度了。
三.目標(biāo)與定位
先有目標(biāo),再去定位。
學(xué)ARM,從硬件上講,一方面就是學(xué)習(xí)接口電路設(shè)計,另一方面就是學(xué)習(xí)匯編和C 語言的板級編程。從軟件上講,就是要學(xué)習(xí)基于ARM 處理器的操作系統(tǒng)層面的驅(qū)動和移植。這些對于初學(xué)者來說必須明確,要么從硬件著手開始學(xué),要么從操作系統(tǒng)的熟悉到應(yīng)用開始學(xué),但不管學(xué)什么,只要不是純的操作系統(tǒng)級以上基于API 的應(yīng)用層的編程,硬件的寄存器類的東西還是要能看懂的、基于板級的匯編和C 編程還是要會的。因此針對于嵌 入式系統(tǒng)的硬件層和驅(qū)動層的人來說,ARM 的接口電路設(shè)計、ARM 的C 語言和匯編語言編程及調(diào)試開發(fā)環(huán)境還是需要掌握的。
對于初學(xué)者必然要把握住方向,自己的目標(biāo)是什么,自己要在哪一層面上走。然后再著手學(xué)習(xí)才比較好,與 ARM 相關(guān)的嵌入式系統(tǒng)的較為實際的兩個層面硬件層和驅(qū)動層,不管學(xué)好了那一層都會很有前途的。 如果想從嵌入式系統(tǒng)的應(yīng)用層面的走的話,可能與ARM 及其它體系相去較遠(yuǎn),要著重研究基嵌入式操作系統(tǒng)的 環(huán)境應(yīng)用與相應(yīng)開發(fā)工具鏈,比如WinCE 操作系統(tǒng)下的EVC 應(yīng)用開發(fā)(與windows 下的VC 相類似),如果想再 有突破就往某些音視頻類的協(xié)議上靠,比如VOIP 領(lǐng)域的基于SIP 或H.323協(xié)議的應(yīng)用層開發(fā),或是基于嵌入式 網(wǎng)絡(luò)數(shù)據(jù)庫的開發(fā)等等。
對于初學(xué)者來講,要量力而行,不要認(rèn)為驅(qū)動層工資高就把它當(dāng)成方向了,要結(jié)合自身特點,嵌入式系統(tǒng)四個層 面上無論哪個層面上來講都是有高人存在,當(dāng)然高人也對應(yīng)的高工資。我是做硬件層的,以前每月工資中個人所 得稅要被扣上近3千大元。當(dāng)然我一方面充當(dāng)工程師的角色,一方面充當(dāng)主管人物的角色,兩個職位我一個人干, 但上班時間就那些。硬件這方面上可能與我PK 的人很少了,才讓我拿到那么多的工資。
四.如何選擇合適的開發(fā)系統(tǒng)
很多ARM 初學(xué)者都希望有一套自己能用的系統(tǒng),但他們往往會產(chǎn)生一種錯誤認(rèn)識,就是認(rèn)為處理器版本越高越好,性能越高越好,就象很多人認(rèn)為ARM9比ARM7好, 我想對于初學(xué)者在此方面以此入門還應(yīng)該理智,開發(fā)系統(tǒng)的選擇最終要看自己往嵌入式系統(tǒng)的哪個方向上走,是做驅(qū)動開發(fā)還是應(yīng)用,還是做嵌入式系統(tǒng)硬件層設(shè)計與板級測試。如果想從操作系統(tǒng)層面或應(yīng)用層面上走,不管是驅(qū)動還是應(yīng)用,當(dāng)然處理器性能越高越好了,但這個東西自學(xué),有十分大的困難,不是幾個月或半年或是一年二年能搞定的事。
在某種意義上講,ARM7與ARM9的差別就是在某些功能指令集上豐富了些,主頻提高一些而已,就比如286 和386。對于用戶來講可能覺察不到什么,只能是感覺速度有些快而已。
ARM7比較適合于那些想從硬件層面上走的人,因為ARM7系列處理器內(nèi)部帶MMU 的很少,而且比較好控 制。就比如S3C44B0來講,可以很容易將Cache 關(guān)了,而且內(nèi)部接口寄存器很容易看明白,各種接口對于用硬件 程序控制或AXD 單步命令行指令都可以控制起來。基于51單片機的思想很容易搞懂,就當(dāng)成個32位的單 片機,從而消除很多51工程師想轉(zhuǎn)為嵌入式系統(tǒng)硬件ARM 開發(fā)工程師的困惑,從而不會被業(yè)界某些不是真正懂 嵌入式爛公司帶到操作系統(tǒng)層面上去,讓他們望而生畏,讓業(yè)界更加缺少這方面的人才。
而嵌入式系統(tǒng)不管硬件設(shè)計還是軟件驅(qū)動方面都是十分注重接口這部分的,選擇平臺還要考察一個處理器的外部資源,你接觸外部資源越多,越熟悉他們,以后就業(yè)成功的機率就越高,這就是招聘時所說的有無“相關(guān)技能”,因為一個人不可能在短短幾年內(nèi)把所有的處理器都接觸一遍,而招聘單位所用的處理器就可能是我們完 全沒有見過的,就拿臺灣數(shù)十家小公司(市價幾千萬)的公司生產(chǎn)的ARM 類處理器,也很好用,但這些東西通用性 太差,用這些處理器的公司就只能招有相關(guān)工作經(jīng)驗的人了,那什么是相關(guān)工作經(jīng)驗,在硬件上講的是外圍接口設(shè)計,在軟件上講是操作系統(tǒng)方面相關(guān)接口驅(qū)動及應(yīng)用開發(fā)經(jīng)驗。我從業(yè)近十年, 2000年ARM 出現(xiàn),我一開始做ARM7,然后直接跑到了Xscale(這個板本在ARM10-11之間),一做就是五年,招人面試都不下數(shù)百人,在這些方面還是深有體會的。
我個人認(rèn)為三星的S3C44b0對初學(xué)者來說比較合適,為什么這么說? 因為接口資源比較豐富,技術(shù)成熟,資料較多,應(yīng)該十分適合于初學(xué)者。有問題可能很容易找人幫且解決,因為大多數(shù)人都很熟悉,就如同51類的單片 機,有N多位專家級的人物可以給你幫忙,相關(guān)問題得以很快解答,所然業(yè)界認(rèn)為這款A(yù)RM 都用得爛了,但對于初學(xué)者來,卻是件好事。
總的來說,開發(fā)系統(tǒng)的選擇,要看自己的未來從業(yè)目標(biāo)方向,要看開發(fā)板接口資源,還要看業(yè)界的通用性。
五.成為高級嵌入式系統(tǒng)硬件工程師要具備的技能
對于硬件來講有幾個方向,就單純信號來分為數(shù)字和模擬。模擬比較難搞,一般需要很長的經(jīng)驗積累,單單一個阻值或容值的精度不夠就可能使信號偏差很大。因此年輕人搞的較少,隨著技術(shù)的發(fā)展,出現(xiàn)了模擬電路數(shù)字化。 比如手機的Modem 射頻模塊,都采用成熟的套片,而當(dāng)年國際上只有兩家公司有此技術(shù),自我感覺模擬功能不 太強的人,不太適合搞這個,如果真能搞定到手機的射頻模塊,只要達(dá)到一般程度可能月薪都在15K 以上。
另一類就是數(shù)字部分了,在大方向上又可分為51/ARM 的單片機類,DSP 類,F(xiàn)PGA 類。國內(nèi)FPGA 的工程 師大多是在IC 設(shè)計公司從事IP 核的前端驗證,這部分不搞到門級,前途不太明朗,即使做個IC 前端驗證工程 師,也要搞上幾年才能勝任。DSP 硬件接口比較定型,如果不向驅(qū)動或是算法上靠攏,前途也不會太大。而ARM 單片機類的內(nèi)容就較多,業(yè)界產(chǎn)品占用量大,應(yīng)用人群廣,因此就業(yè)空間極大。而硬件設(shè)計最體現(xiàn)水平和水準(zhǔn)的就是接口設(shè)計這塊,這是各個高級硬件工程師相互PK、判定水平高低的依據(jù)。而接口設(shè)計這塊最關(guān)鍵的是看時序, 而不是簡單的連接,比如PXA255處理器I2C 要求速度在100Kbps,如果把一個I2C 外圍器件,最高還達(dá)不到100kbps 的與它相接,必然要導(dǎo)致設(shè)計的失敗。這樣的情況有很多,比如51單片機可以在總線接LCD,但為什么這種LCD 就不能掛在ARM 的總線上,還有ARM7總線上可以外接Winband 的SD 卡控制器,但為什么這種控制器接不到ARM9或是Xscale 處理器上,這些都是問題。因此接口并不是一種簡單的連接,要看時序,要看參數(shù)。 一個優(yōu)秀的硬件工程師應(yīng)該能夠在沒有參考方案的前提下設(shè)計出一個在成本和性能上更加優(yōu)秀的產(chǎn)品,靠現(xiàn)有的方案,也要進行適當(dāng)?shù)目尚行圆眉?,但不是胡亂的來,我遇到一個工程師把方案中的5V 變1.8V 的DC 芯片,直接更換成LDO,有時就會把CPU 燒上幾個。前幾天還有人希望我?guī)兔Π阉麄円郧盎赑XA255平臺的手持GPS 設(shè)備做下程序優(yōu)化,我問了一下情況,地圖是存在SD 卡中的,而SD 卡與PXA255的MMC 控制器間采用的SPI 接口,因此導(dǎo)致地圖讀取速度十分的慢,這種情況是設(shè)計中嚴(yán)重的缺陷,而不是程序的問題。因此我提了幾條建議,讓他們更新試下再說。
因此想成為一個優(yōu)秀的工程師,需要對系統(tǒng)整體性的把握和對已有電路的理解,換句話說,給你一套電路圖你能看明白多少,看不明白80%以上的話,說明你離優(yōu)秀的工程師還差得遠(yuǎn)。其次是電路的調(diào)試能力和審圖能力,但最最基本的能力還是原理圖設(shè)計、PCB 繪制、邏輯設(shè)計這塊。這是指的硬件設(shè)計工程師,從上面的硬件設(shè)計工程師中還可以分出ECAD 工程師,就是專業(yè)的畫PCB 板的工程師,和EMC 設(shè)計工程師,幫人家解決EMC 的問題。硬件工程師再往上就是板級測試工程師,就是C 語言功底很好的硬件工程師,在電路板調(diào)試過程中能通過自已編寫的測試程序?qū)τ布δ苓M行驗證。然后再交給基于操作系統(tǒng)級的驅(qū)動開發(fā)人員。 總之,硬件的內(nèi)容很多很雜,硬件哪方面練成了都會成為一個高手,我時常會給人家做下方案評估,很多高級硬件工程師設(shè)計的東西,經(jīng)常被我一句話否定。因此工程師做到我這種地步,也會得罪些人,但硬件的確會有很多不為人知的東西,讓很多高級硬件工程師也摸不到頭腦。
那么高級硬件工程師技術(shù)技能都要具備哪些?首先要掌握EDA 設(shè)計的輔助工具類如Protel OR CADPowper PCBMaplux2ISE、VDHL 語言,要能用到這些工具畫圖畫板做邏輯設(shè)計,再有就是接口設(shè)計審圖能力, 再者就是調(diào)試能力,如果能走到總體方案設(shè)計這塊,那就基本上快成為資深工程師了。
深入了解各種器件特性,選擇最合適的處理器、外圍器件、操作系統(tǒng)和軟件庫,盡可能地優(yōu)化軟件設(shè)計,最貼切地滿足應(yīng)用需求,以獲得最好的系統(tǒng)性價比,是嵌入式系統(tǒng)設(shè)計開發(fā)的精髓。
硬件是要靠經(jīng)驗,也要靠積累的,十年磨一劍,百年磨一針。
不過最后提醒大家:追求技術(shù)不是人生的唯一目的,切不可把它當(dāng)成喜悅的唯一源泉,平時身邊有很多美好的事物都值得用心去珍惜。呵呵,我已經(jīng)在擔(dān)心自己的智力是否會在30歲到來之前枯竭了.好好珍惜短暫的大學(xué)生活,好好珍惜自己的青春,不要整天呆在實驗室,左手鍵盤右手烙鐵的。
-END-
推薦閱讀
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!