你好。我的情況和你類似。目前我正忙于考研。關(guān)于嵌入式培訓(xùn),我想給你一些建議。我本科讀的是計(jì)算機(jī)科學(xué)與技術(shù),專業(yè)課程學(xué)得還不錯(cuò)。培訓(xùn)就像是考研的輔導(dǎo)班,有用但也有時(shí)顯得不那么有用。這時(shí)最要避免的就是盲目跟風(fēng)。我接觸過(guò)幾家培訓(xùn)機(jī)構(gòu),與老師交流后,發(fā)現(xiàn)他們的水平并不高。例如,我曾問(wèn)過(guò)一個(gè)老師關(guān)于嵌入式開(kāi)發(fā)中最難把握的環(huán)節(jié)是哪個(gè),正確答案應(yīng)該是接口時(shí)序的安排,但他的回答卻很不專業(yè)。如果你花了1萬(wàn)多元,遇到這樣的老師,想要通過(guò)高薪就業(yè),那是不現(xiàn)實(shí)的。
我現(xiàn)在在EMULE上看到了一些關(guān)于ARM嵌入式開(kāi)發(fā)的視頻教程,正在自學(xué)。感覺(jué)難度較大。(我個(gè)人認(rèn)為自己不算新手,有閱讀LINUX內(nèi)核的經(jīng)歷,對(duì)RADHAT 9比較熟練,也寫過(guò)一些小SHELL,大概200行左右。)實(shí)際上,很多人參加培訓(xùn),主要是看重它所說(shuō)的推薦工作和未來(lái)的待遇。嵌入式開(kāi)發(fā)有很多方向,而且每個(gè)人都有自己的興趣所在。所以,我強(qiáng)烈建議你在網(wǎng)上先看看嵌入式相關(guān)的視頻,看看自己是否有興趣。即使你要參加培訓(xùn),也可以先當(dāng)作預(yù)習(xí)。
我有個(gè)同學(xué)已經(jīng)在培訓(xùn)了,他告訴我,他的工作就是“風(fēng)吹書”。以下是一個(gè)高級(jí)工程師的成長(zhǎng)經(jīng)歷,你可以參考一下。對(duì)了,別忘了給我點(diǎn)贊哦!
本文將從技術(shù)和就業(yè)經(jīng)驗(yàn)等角度,為即將進(jìn)入嵌入式開(kāi)發(fā)的程序員們?cè)敿?xì)講解嵌入式概念、嵌入式開(kāi)發(fā)之間的異同以及如何做出選擇,希望能對(duì)大家有所幫助。
一、嵌入式系統(tǒng)的概念
要理解“嵌入”的概念,主要從以下三個(gè)方面來(lái)理解:
1. 硬件層面:將基于CPU的外圍器件整合到CPU芯片內(nèi)部。例如,早期的X86體系結(jié)構(gòu)計(jì)算機(jī),CPU只有運(yùn)算器和累加器的功能,需要外部橋路來(lái)擴(kuò)展實(shí)現(xiàn)。而現(xiàn)在,串口控制器芯片等已經(jīng)集成到CPU內(nèi)部。高端的ARM類Intel Xscale架構(gòu)下的IXP網(wǎng)絡(luò)處理器CPU內(nèi)部集成PCI控制器,還集成3個(gè)NPE網(wǎng)絡(luò)處理器引擎,*主頻可達(dá)1.8G,支持2G內(nèi)存,1G×10或10G×1的以太網(wǎng)口或Febre channel的光通道。
2. 軟件層面:在定制操作系統(tǒng)內(nèi)核中將應(yīng)用一并選入,編譯后將內(nèi)核下載到ROM中。在定制操作系統(tǒng)內(nèi)核時(shí)所選擇的應(yīng)用程序組件就是完成了軟件的“嵌入”。
3. 燒錄層面:將軟件內(nèi)核或應(yīng)用文件系統(tǒng)等東西燒錄到嵌入式系統(tǒng)硬件平臺(tái)中的ROM中,就實(shí)現(xiàn)了一個(gè)真正的“嵌入”。
二、嵌入式系統(tǒng)的分層與專業(yè)分類
嵌入式系統(tǒng)分為4層:硬件層、驅(qū)動(dòng)層、操作系統(tǒng)層和應(yīng)用層。
1. 硬件層:是整個(gè)嵌入式系統(tǒng)的根基,適合電子、通信、自動(dòng)化、機(jī)電一體、信息工程類專業(yè)的人來(lái)搞。
2. 驅(qū)動(dòng)層:比較難,適合電子、通信、自動(dòng)化、機(jī)電一體、信息工程類專業(yè)尤其是計(jì)算機(jī)偏體系結(jié)構(gòu)類專業(yè)的人來(lái)搞。
3. 操作系統(tǒng)層:負(fù)責(zé)系統(tǒng)任務(wù)的調(diào)試、磁盤和文件的管理,而嵌入式系統(tǒng)的實(shí)時(shí)性十分重要。
4. 應(yīng)用層:相對(duì)容易,適合在Windows下進(jìn)行編程接口函數(shù)調(diào)用的開(kāi)發(fā)者。
三、目標(biāo)與定位
先有目標(biāo),再去定位。學(xué)ARM,從硬件上講,一方面是學(xué)習(xí)接口電路設(shè)計(jì),另一方面是學(xué)習(xí)匯編和C語(yǔ)言的板級(jí)編程。從軟件上講,就是要學(xué)習(xí)基于ARM處理器的操作系統(tǒng)層面的驅(qū)動(dòng)和移植。
四、開(kāi)發(fā)系統(tǒng)選擇
(未完待續(xù))
許多ARM新手渴望擁有一套適合自己使用的系統(tǒng),然而他們往往錯(cuò)誤地認(rèn)為處理器版本越高、性能越好就越理想。比如,許多人認(rèn)為ARM9和ARM7性能更優(yōu)越。但我想,對(duì)于初學(xué)者來(lái)說(shuō),入門時(shí)在這個(gè)問(wèn)題上的態(tài)度應(yīng)該更加理智。開(kāi)發(fā)系統(tǒng)的選擇應(yīng)基于個(gè)人在嵌入式系統(tǒng)領(lǐng)域的發(fā)展方向,無(wú)論是驅(qū)動(dòng)開(kāi)發(fā)、應(yīng)用開(kāi)發(fā),還是嵌入式系統(tǒng)硬件層設(shè)計(jì)和板級(jí)測(cè)試。
如果想在操作系統(tǒng)層面或應(yīng)用層面發(fā)展,無(wú)論是驅(qū)動(dòng)還是應(yīng)用,處理器性能越高當(dāng)然越好。然而,這方面的自學(xué)難度很大,不是幾個(gè)月、半年或一兩年就能掌握的。
從某種意義上講,ARM7與ARM9的差異主要在于功能指令集的豐富程度和主頻的提升,類似于286和386。對(duì)于用戶來(lái)說(shuō),可能感覺(jué)不到太大差異,只是感覺(jué)速度有些提升。
ARM7更適合那些想在硬件層面發(fā)展的人,因?yàn)锳RM7系列處理器內(nèi)部帶MMU的較少,且易于控制。例如,S3C44B0可以輕松關(guān)閉Cache,內(nèi)部接口寄存器易于理解,各種接口可通過(guò)硬件程序控制或AXD單步命令行指令控制?;?1單片機(jī)的思想,可以將其視為32位單片機(jī),從而解決許多51工程師想轉(zhuǎn)向嵌入式系統(tǒng)硬件ARM開(kāi)發(fā)工程師的困惑,避免被某些不真正懂嵌入式系統(tǒng)的公司誤導(dǎo),從而在嵌入式系統(tǒng)領(lǐng)域缺少人才。
嵌入式系統(tǒng)在硬件設(shè)計(jì)和軟件驅(qū)動(dòng)方面都十分注重接口部分,選擇平臺(tái)時(shí)還要考慮處理器的外部資源。接觸的外部資源越多,越熟悉它們,將來(lái)就業(yè)成功的幾率就越高。這就是招聘時(shí)所說(shuō)的“相關(guān)技能”,因?yàn)橐粋€(gè)人不可能在短短幾年內(nèi)接觸所有處理器,而招聘單位所用的處理器可能是我們從未見(jiàn)過(guò)的。例如,臺(tái)灣數(shù)十家小公司(市值幾千萬(wàn)元)生產(chǎn)的ARM類處理器也很有用,但通用性較差,使用這些處理器的公司只能招聘有相關(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之間),一做就是五年,面試過(guò)不下數(shù)百人,對(duì)這些方面有很深的體會(huì)。
我認(rèn)為三星的S3C44B0對(duì)初學(xué)者來(lái)說(shuō)比較合適,原因如下:接口資源豐富,技術(shù)成熟,資料較多,非常適合初學(xué)者。有問(wèn)題可以很容易找到人幫忙解決,因?yàn)榇蠖鄶?shù)人都很熟悉,就像51類的單片機(jī),有N多位專家級(jí)的人物可以給你幫忙,相關(guān)問(wèn)題得以快速解答。雖然業(yè)界認(rèn)為這款A(yù)RM已經(jīng)被用爛了,但對(duì)于初學(xué)者來(lái)說(shuō),這卻是件好事。
因此,開(kāi)發(fā)系統(tǒng)的選擇應(yīng)考慮個(gè)人未來(lái)的目標(biāo)方向、開(kāi)發(fā)板的接口資源以及業(yè)界的通用性。
五、關(guān)于培訓(xùn)的看法。
首先談?wù)勎易约?,我從業(yè)近十年,與國(guó)內(nèi)嵌入式系統(tǒng)行業(yè)共同起步,一直站在嵌入式系統(tǒng)行業(yè)的前沿,設(shè)計(jì)過(guò)多款高端嵌入式系統(tǒng)平臺(tái)產(chǎn)品,并為眾多公司提供過(guò)解決方案。離職前為一家從事VOIP的美資公司設(shè)計(jì)IP-PBX,歷任項(xiàng)目經(jīng)理、項(xiàng)目主管、技術(shù)總監(jiān)、*經(jīng)理,積累眾多人脈,并集多年經(jīng)驗(yàn)所得,考慮到學(xué)生就業(yè)與公司招人的不相匹配,公司想招人招不到,而學(xué)生和剛畢業(yè)的工程師想找工作也不太容易,于是創(chuàng)立了知天行科技有限公司,開(kāi)展嵌入式系統(tǒng)教育培訓(xùn)。
由于一線的科研人員和一線的教師不相接觸,導(dǎo)致國(guó)內(nèi)嵌入式人才缺乏,國(guó)外高校的技術(shù)超前于業(yè)界公司,而國(guó)內(nèi)情況是業(yè)界公司的嵌入式系統(tǒng)技術(shù)要遠(yuǎn)遠(yuǎn)領(lǐng)先于高校。為了構(gòu)建業(yè)界與高校溝通的橋梁,將先進(jìn)技能帶給高校學(xué)子,為學(xué)生在就業(yè)競(jìng)爭(zhēng)中打造一張王牌,并為業(yè)界工程師快速提升實(shí)現(xiàn)自我創(chuàng)造機(jī)遇,我辭去了外企年薪20多萬(wàn)的職位,從事嵌入式系統(tǒng)方面的培訓(xùn)。
對(duì)于培訓(xùn)來(lái)說(shuō),是花錢買時(shí)間,許多工程師都喜歡自己學(xué)習(xí),認(rèn)為培訓(xùn)不值。這也是有可能的,純?yōu)橘嶅X的培訓(xùn)當(dāng)然不會(huì)太有價(jià)值,但對(duì)于實(shí)力型的培訓(xùn),他們可能就虧大了。有這樣一筆賬,他們不知道算過(guò)沒(méi)有:如果一個(gè)一周的培訓(xùn),能帶給他們自學(xué)兩年后才能掌握的知識(shí),培訓(xùn)結(jié)束后,他們用三個(gè)月到半年時(shí)間消化培訓(xùn)內(nèi)容,這樣他們至少可以省下一年半的時(shí)間來(lái)學(xué)習(xí)其他知識(shí)或重新站在另一個(gè)高度上工作。這樣,他們最遲一年后就能拿到他們兩年后水平所對(duì)應(yīng)的工資,在工資與水平對(duì)應(yīng)的關(guān)系上比同批人縮短一年,每月按最少1000元計(jì)算,再減去培訓(xùn)費(fèi)用至少多10000元,同時(shí)也省了一年時(shí)間,無(wú)論是休閑還是繼續(xù)提高,總之是跑到了隊(duì)伍的前面。
另一方面,對(duì)于新人的培訓(xùn)相當(dāng)于他們?yōu)樽约禾崆百I了份失業(yè)保險(xiǎn),有師傅會(huì)帶領(lǐng)他們?nèi)腴T。今年暑假時(shí),班上最年輕的一個(gè)學(xué)生是大二的,今年才上大三,這學(xué)期才剛開(kāi)始學(xué)習(xí)單片機(jī),但現(xiàn)在ARM方面的編程工作已經(jīng)搞得有聲有色了。再過(guò)一年多畢業(yè),他還會(huì)失業(yè)嗎?
再者,通過(guò)培訓(xùn),你可以了解到許多業(yè)界不為常人所知的事,同時(shí)也為自己找到了一位師傅。例如,兩個(gè)工程師分別使用S3C2410和PXA255制作手持設(shè)備,兩人都工作四年,出去找工作時(shí),他們的工資可能最多相差一倍。為什么?這就是業(yè)界不為常人所知的規(guī)則,2410屬于民品,被業(yè)界用爛了,做產(chǎn)品時(shí)成本特別敏感,當(dāng)然對(duì)人才成本也特別敏感。PXA255是英特爾的產(chǎn)品,一個(gè)255 CPU可以買三個(gè)2410,一直被業(yè)界定義為貴族產(chǎn)品,使用的公司都是大公司或?yàn)檐姺椒?wù)的公司,不會(huì)在乎成本,只要把東西做好,一切都好說(shuō)。但這方面做的人也少,因?yàn)殚_(kāi)發(fā)系統(tǒng)貴。
對(duì)于為自己找到一位好師傅,我認(rèn)為是這樣的,因?yàn)橥?jí)工程師之間存在潛在的競(jìng)爭(zhēng)關(guān)系,許多人不愿意把自己知道的東西教給別人,這意味著他們將要失業(yè),也就是所謂的“教會(huì)徒弟,餓死師傅”。但對(duì)我們這些人來(lái)說(shuō),不存在這樣的關(guān)系,因?yàn)槲以谇度胧较到y(tǒng)平臺(tái)設(shè)計(jì)上已經(jīng)走到了一定程度,目前在國(guó)內(nèi)這塊的技術(shù)上已經(jīng)很難再突破自己,因此,很多東西我對(duì)大家都是開(kāi)放的。例如,下面提到的關(guān)于接口設(shè)計(jì)中所提到的時(shí)序接口內(nèi)容,如果我不講,即使高級(jí)硬件工程師,也只有10%的人能知道。
六、成為高級(jí)嵌入式系統(tǒng)硬件工程師要具備的技能。
對(duì)于硬件來(lái)說(shuō),有幾個(gè)方向,就信號(hào)來(lái)說(shuō)可以分為數(shù)字和模擬。模擬比較難搞,一般需要很長(zhǎng)的經(jīng)驗(yàn)積累。僅僅一個(gè)阻值或容值的精度不夠,就可能使信號(hào)偏差很大。因此,年輕人較少涉及這個(gè)領(lǐng)域。隨著技術(shù)的發(fā)展,出現(xiàn)了模擬電路數(shù)字化,例如手機(jī)的Modem射頻模塊,都采用成熟的套片。當(dāng)年國(guó)際上只有兩家公司有這項(xiàng)技術(shù)。自我感覺(jué)模擬功能不太強(qiáng)的人,不太適合搞這個(gè)。如果真的能搞定手機(jī)的射頻模塊,只要達(dá)到一般程度,月薪可能都在15000元以上。
另一類是數(shù)字部分,在大方向上可以分為51/ARM單片機(jī)類、DSP類和FPGA類。國(guó)內(nèi)FPGA工程師大多在IC設(shè)計(jì)公司從事IP核的前端驗(yàn)證,這部分如果不涉及到門級(jí),前途不太明朗。即使做個(gè)IC前端驗(yàn)證工程師,也要搞上幾年才能勝任。DSP硬件接口比較定型,如果不向驅(qū)動(dòng)或算法上靠攏,前途也不會(huì)太大。而ARM單片機(jī)類的內(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è)*還達(dá)不到100kbps的I2C外圍器件與之相連,必然導(dǎo)致設(shè)計(jì)失敗。這樣的情況有很多,例如,51單片機(jī)可以在總線接
LCD技術(shù)雖然廣泛存在,但為何某些LCD無(wú)法與ARM總線兼容?同樣,ARM7總線上能夠連接Winbond SD卡控制器,但為何這種控制器無(wú)法接入ARM9或Xscale處理器?這些問(wèn)題凸顯了接口并非簡(jiǎn)單的連接,它涉及時(shí)序和參數(shù)的考量。一位優(yōu)秀的硬件工程師能在無(wú)參考方案的情況下,設(shè)計(jì)出成本和性能更優(yōu)的產(chǎn)品。即便基于現(xiàn)有方案,也應(yīng)進(jìn)行合理的可行性裁剪,而非盲目更改。例如,我曾遇到一位工程師將方案中的5V DC芯片直接更換為L(zhǎng)DO,結(jié)果導(dǎo)致CPU損壞。近期,有人希望我對(duì)基于PXA255平臺(tái)的手持GPS設(shè)備進(jìn)行程序優(yōu)化。經(jīng)了解,地圖存儲(chǔ)于SD卡,而SD卡與PXA255的MMC控制器間使用SPI接口,導(dǎo)致地圖讀取速度緩慢。這顯然是設(shè)計(jì)上的缺陷,而非程序問(wèn)題。我提出了優(yōu)化建議,建議他們更新后嘗試。
要成為優(yōu)秀的工程師,需對(duì)系統(tǒng)整體性有深刻理解,對(duì)現(xiàn)有電路有透徹理解。換句話說(shuō),面對(duì)電路圖,你能看懂多少,若看不懂80%以上,說(shuō)明你離優(yōu)秀工程師還有距離。其次是電路調(diào)試和審圖能力,但最基本的能力還是原理圖設(shè)計(jì)、PCB繪制和邏輯設(shè)計(jì)。硬件設(shè)計(jì)工程師可細(xì)分為ECAD工程師和EMC設(shè)計(jì)工程師,前者專注于PCB設(shè)計(jì),后者專注于解決EMC問(wèn)題。硬件工程師之上是板級(jí)測(cè)試工程師,他們擅長(zhǎng)編寫測(cè)試程序,驗(yàn)證硬件功能。再之上是基于操作系統(tǒng)級(jí)的驅(qū)動(dòng)開(kāi)發(fā)人員。
硬件領(lǐng)域內(nèi)容繁多,只有不斷修煉,才能成為高手。我經(jīng)常評(píng)估方案,很多高級(jí)硬件工程師的設(shè)計(jì)常被我一句話否定。盡管如此,硬件領(lǐng)域仍有許多不為人知的東西,即使是高級(jí)硬件工程師也可能感到困惑。
高級(jí)硬件工程師的技術(shù)技能包括:掌握EDA設(shè)計(jì)輔助工具(如Protel、ORCAD、PowerPCB、Maplux、2ISE、VDHL語(yǔ)言)進(jìn)行電路圖繪制、PCB設(shè)計(jì)和邏輯設(shè)計(jì);具備接口設(shè)計(jì)、審圖和調(diào)試能力;若能進(jìn)行總體方案設(shè)計(jì),則基本可稱為資深工程師。
硬件設(shè)計(jì)需要經(jīng)驗(yàn)和積累,十年磨一劍,百年磨一針。
關(guān)于MBA備考,分為面試和筆試兩部分:
1. 面試:不同學(xué)校的面試流程不同,重點(diǎn)院校一般會(huì)開(kāi)設(shè)提前面試環(huán)節(jié)。考生需認(rèn)真編輯面試材料,確保邏輯嚴(yán)謹(jǐn)。面試過(guò)程中,著裝得體,回答問(wèn)題時(shí)要沉穩(wěn)。
2. 筆試:MBA筆試*統(tǒng)考,只考管理類聯(lián)考和英語(yǔ)。考生應(yīng)以真題為中心進(jìn)行復(fù)習(xí),多做練習(xí)。
一)前期準(zhǔn)備
在準(zhǔn)備考MBA之前,考生會(huì)關(guān)注學(xué)歷、畢業(yè)年限、考試科目、報(bào)名時(shí)間等問(wèn)題。例如,本科畢業(yè)需三年、專科畢業(yè)需五年,考察科目有英語(yǔ)和管理類聯(lián)考,每年10月份報(bào)名,12月第三個(gè)周末考試,一般180分能過(guò)*線。
二)備考階段
1. 提前面試:如有機(jī)會(huì)參加提前面試,建議參加,以便快速進(jìn)入學(xué)習(xí)氛圍,感受面試流程。通過(guò)提前面試后,只要過(guò)*線,基本能入學(xué)。
2. 綜合備考:推薦使用“MBA大師”APP進(jìn)行備考,其中免費(fèi)課程足以應(yīng)對(duì)考試??荚嚂r(shí)間為3小時(shí),主要考察數(shù)學(xué)、邏輯、寫作,題型包括單項(xiàng)選擇和寫作。
一:做公眾號(hào)
對(duì)于*生賺錢,公眾號(hào)是不錯(cuò)的選擇。原因如下:
1. 做公眾號(hào)能逼自己輸出內(nèi)容,提高能力。
2. 公眾平臺(tái)收益可觀。
如何盈利:找準(zhǔn)定位,分享自己喜歡或擅長(zhǎng)的領(lǐng)域,如美妝、情感咨詢等。
二:寫作賺錢
寫作賺錢的平臺(tái)很多,如知乎、百家號(hào)、大魚號(hào)、頭條號(hào)等。投稿前要熟悉平臺(tái)風(fēng)格,提高中稿率。
三:通過(guò)短視頻賺錢
情感與激勵(lì)的語(yǔ)錄視頻,網(wǎng)易云熱門評(píng)論視頻,精彩電影的混剪作品,以及富有創(chuàng)意的手繪知識(shí)視頻。這些類型的視頻制作門檻并不高,而且不需要深厚的專業(yè)技能。
在短視頻領(lǐng)域?qū)崿F(xiàn)收益的途徑主要有以下三種:
首先,合作收益。當(dāng)你的粉絲數(shù)量達(dá)到一定規(guī)模,廣告商便會(huì)主動(dòng)尋求與你合作。通常,擁有十萬(wàn)粉絲的賬號(hào),合作一條廣告的收益約為9000至11000元。
其次,櫥窗帶貨。在觀看視頻時(shí),我們經(jīng)常會(huì)遇到相關(guān)產(chǎn)品的推薦頁(yè)面。如果我們購(gòu)買這些產(chǎn)品,視頻制作者便能從中獲得一定的分潤(rùn)。這一方式的優(yōu)勢(shì)在于,你無(wú)需自己囤貨,平臺(tái)會(huì)為你提供所需的產(chǎn)品。
*,打造個(gè)人品牌。這是自媒體實(shí)現(xiàn)收益的終極方式。要想成功,你本人需要具備獨(dú)特的人格魅力和實(shí)實(shí)在在的才華。當(dāng)然,這也意味著你需要投入更多的時(shí)間和精力,全職投入到這個(gè)領(lǐng)域。
只要一個(gè)電話
我們免費(fèi)為您回電