半道轉(zhuǎn)嵌入式開發(fā)適合嗎?(從事十年的我建議不要,你會后悔的)
嵌入式開發(fā)需要什么能力
要想成為一個優(yōu)秀的嵌入式開發(fā)工程師,至少需要具體6種能力:
1.了解嵌入式硬件知識,包括硬件基礎(chǔ),構(gòu)成,原理和接口技術(shù)等等。
2. 精通C語言程序設(shè)計,因為嵌入式就是靠C語言來開發(fā)應(yīng)用,所以不懂C語言,一切 免談。
3. 熟悉嵌入式系統(tǒng)知識,如時下比較流行的嵌入式linux系統(tǒng),要熟悉它的內(nèi)核代碼 ,以及運行命令,使用方法等等。了解嵌入式產(chǎn)品研發(fā)的特點、所需要掌握的技術(shù)規(guī)范和 工作要點。
4. 擁有最基本的硬件和軟件應(yīng)用開發(fā)能力,比如需要明白如何進行應(yīng)用開發(fā),如何處 理好硬件和軟件之間的兼容問題。
5. 具體良好的創(chuàng)意開發(fā)能力,這是成為優(yōu)秀嵌入式開發(fā)工程師必備的條件,也是最重 要的,最有價值的。因為我們要不斷的開發(fā)新的有創(chuàng)意的產(chǎn)品功能才能滿足今天的消費者 的口味。所以有創(chuàng)意的開發(fā)能力也是最能體現(xiàn)一個優(yōu)秀開發(fā)者能力所在。
6. 具備吃苦耐勞和不斷學習的能力,作為一個嵌入式開發(fā)工程師一是要具有吃苦耐勞 的能力、畢竟軟件開發(fā)是一個項目性很強的工作,再其次,優(yōu)秀的工程師還需要有不斷學 習的能力,軟件行業(yè)的發(fā)展速度驚人,今天還引以為傲的開發(fā)技能和經(jīng)驗,二三年后或許 就會成為明日黃花,所以要求開發(fā)人員一定要具備不斷學習接受新事物的能力。 想要成為一個優(yōu)秀的嵌入式開發(fā)工程師并非一早一夕的事,也是通過長期的學習積累 得。其實,目前這種優(yōu)秀的嵌入式開發(fā)工程師非常少,這也是很多企業(yè)重金尋求的人才。 就目前的嵌入式人才市場來看,更多的是初級的嵌入式開發(fā)人才,多是通過參加一定的嵌 入式培訓后然后再在工作中不斷的學習積累,一步步成長起來得。
嵌入式開發(fā)兩條道路選擇
第一條道路:硬件道路
第一步: pcb設(shè)計,一般為開發(fā)板的電路裁減和擴充,由開發(fā)板原理圖為基礎(chǔ),畫出PCB和封裝庫,設(shè)計自己的電路。
第二步: SOPC技術(shù),一般為FPGA,CPLD開發(fā),利用VHDL等硬件描述語言做專用芯片開發(fā),寫出自己的邏輯電路,基于ALTER或XILINUX的FPGA做開發(fā)。
第三步: SOC設(shè)計,分前端,后端實現(xiàn),這是硬件設(shè)計的核心技術(shù):芯片設(shè)計.能做到這步,已經(jīng)不屬于平凡的技術(shù)人員。
第一條道路:軟件道路
第一步:bootloader的編寫,修改, 通過這步熟悉ARM硬件結(jié)構(gòu),學習ARM匯編語言,閱讀ARM的芯片手冊,感覺就是像操作51單片機一樣操作ARM芯片.這一步最好的兩個參考資料就是:芯片手冊和bootloader源代碼。
第二步:系統(tǒng)移植, 驅(qū)動開發(fā), 我只做過linux方向,所以也推薦學習嵌入式linux系統(tǒng),作為標準體系,他開源而且可以獲得大量學習資料.操作系統(tǒng)是整個計算機科學的核心,熟悉 kernel實屬不易,kernel, 驅(qū)動開發(fā)的學習,沒有什么捷徑,只有多讀代碼,多寫代碼,熟悉系統(tǒng)API.. understanding linux kernel , linux device driver 都是不可多得的好書,值得一看。
第三步:應(yīng)用程序的編寫,各種GUI的移植,qt , minigui都被大量采用,兩種思想都類似,熟悉一種就可以。
軟件道路中,驅(qū)動,系統(tǒng)應(yīng)該是最深入的部分,不是短時間可以掌握的,需要有勇氣和耐心。嵌入式開發(fā),軟硬結(jié)合,因為硬件條件比PC差很多,所以肯定會遇見不少問題,因此實踐的勇氣更加重要.有問題就解決問題,無數(shù)次的實驗,也許是解決問題的必由之路。
建議做嵌入式開發(fā)嗎?
作為工作近十年的嵌入式工程師而言,如果需要買房結(jié)婚,家里沒礦。那么,建議別搞嵌入式,嵌入式真心待遇不行,真的待遇不行。別看什么所謂大牛啥的,互聯(lián)網(wǎng)軟件金融算法之類開發(fā),如果你做到那個層次,薪水是同等嵌入式的一倍或者幾倍,另外,有幾個做到那個層次的?還有就是,現(xiàn)在芯片公司把驅(qū)動甚至底層封裝的越來越好了,比如海思的,廠家只需要把demo板裁剪裁剪,然后應(yīng)用玩出花就好了,這樣子和嵌入式已經(jīng)關(guān)系不大了。最后,現(xiàn)在,嵌入式應(yīng)用,尤其出名c的開發(fā)機會,已經(jīng)被qt,c++擠占了很多。總而言之,嵌入式,尤其純c的,薪水,工作機會越來越少,和差了。
哪怎么打破這些困擾呢?
接下來聽我一一道來。
主要從
操作系統(tǒng)原理專題
進程管理專題
內(nèi)存管理專題
網(wǎng)絡(luò)協(xié)議棧專題
設(shè)備驅(qū)動專題
內(nèi)核組件專題
文件系統(tǒng)專題
內(nèi)核項目實戰(zhàn)專題
等等。。。
全方面系統(tǒng)全面的講解底層原理開發(fā)技術(shù):
操作系統(tǒng)原理/匯編專題

進程管理專題

內(nèi)存管理專題


網(wǎng)絡(luò)協(xié)議棧專題

設(shè)備驅(qū)動專題

內(nèi)核組件專題

文件系統(tǒng)專題

內(nèi)核項目實戰(zhàn)專題

由于篇幅有限,這里以圖片的形式給大家展示一部分。 相信它會給大家?guī)砗芏嗍斋@的,可以進【865977150】群領(lǐng)取或者系統(tǒng)課程學習咨詢QQ微信【2207032995】,備注一下(911)
內(nèi)核資料直通車:Linux內(nèi)核源碼技術(shù)學習路線+視頻教程代碼資料
學習直通車:Linux內(nèi)核源碼/內(nèi)存調(diào)優(yōu)/文件系統(tǒng)/進程管理/設(shè)備驅(qū)動/網(wǎng)絡(luò)協(xié)議棧-學習視頻教程-騰訊課堂
適合于
Linux 內(nèi)核優(yōu)化、內(nèi)存管理 ,內(nèi)核開發(fā)崗位、定制化自己OS
深入系統(tǒng)內(nèi)核研究、網(wǎng)絡(luò)安全逆向分析
提升自己能力,為了更好做應(yīng)用層開發(fā)提供核心依據(jù)
跳槽面試大廠(騰訊、華為、中興、中微、中芯等等)
從事業(yè)務(wù)開發(fā)多年,對底層原理理解不夠深入的在職工程師
從事嵌入式方向開發(fā),想轉(zhuǎn)入內(nèi)核開發(fā)的在職工程師
從事Qt/MFC等桌面開發(fā)的,薪資多年漲幅不大的在職工程師
從事非開發(fā)崗位(算法崗,運維崗,測試崗),想轉(zhuǎn)內(nèi)核開發(fā)崗位的在職工程師

