|
ARM嵌入式工程師入門門檻高,而且很多職位需要你有項目經(jīng)驗。所以,有一部分同學(xué)最終只能轉(zhuǎn)行:轉(zhuǎn)而做單片機或APP開發(fā)等相對簡單的技術(shù)領(lǐng)域。
但是,ARM嵌入式工程師所處位置非常好,向下跟硬件工程師打交道,向上跟APP工程師打交道,可以參與整個系統(tǒng)的開發(fā),可以充當(dāng)項目多面手的角色。
我是個技術(shù)宅男,只能舉身邊的例子:我在中興時從事嵌入式系統(tǒng)的同事,發(fā)展都很不錯。
我的科長,擁有專業(yè)的Linux底層知識的同時,極具大局觀,他向上研究APP的相關(guān)知識、相關(guān)協(xié)議,上下兼通,是中興的產(chǎn)品經(jīng)理、總工了。
同事A,早年從因POS機開發(fā)(用單片機),在中興里天天加班深研Linux技術(shù),現(xiàn)在在創(chuàng)業(yè)公司里當(dāng)技術(shù)頭頭,有股份。加班多,但是收入高。
同事B,在中興里是做APP開發(fā),后跳槽到OPPO后,深研底層開發(fā),早幾年單是年終將就是我的年薪,現(xiàn)在自己創(chuàng)業(yè)。
做單片機產(chǎn)品的公司,產(chǎn)品升級的話必定要用Linux,到時你就是公司掌握先機的人;做APP的話,如果跟硬件相關(guān),你的嵌入式Linux知識會提供很多幫忙。
ARM裸機就是單片機,在把能運行Linux系統(tǒng)的板子先當(dāng)作單片機來使用,熟悉芯片功能、硬件操作,為后續(xù)的Linux學(xué)習(xí)作準(zhǔn)備。
我們講解的ARM裸機,特殊之處在于:不使用IAR/KEIL/MDK等軟件,而是在純粹的Linux環(huán)境下從0寫代碼。這些好用的開發(fā)工具屏蔽了太多的技術(shù)細(xì)節(jié),比如:位置無關(guān)碼、重定位、中斷環(huán)境的保存與恢復(fù)、鏈接腳本。而這些細(xì)節(jié),在后續(xù)的bootloader學(xué)習(xí)中是需要的。
除上述細(xì)節(jié)外,ARM裸機的學(xué)習(xí)目的在于:掌握如何編寫程序來控制硬件。后續(xù)的“Linux驅(qū)動=軟件框架+硬件操作”,我們先在單純的裸機學(xué)習(xí)中掌握硬件操作,在后面的學(xué)習(xí)中就可以把精力放在驅(qū)動軟件框架上。
在技術(shù)層面,Linux系統(tǒng)工程師回頭從事單片機開發(fā),輕而易舉;但是現(xiàn)在不開始著手Linux的學(xué)習(xí),后續(xù)轉(zhuǎn)型很麻煩。2004年我們使用51單片機從事車載電話開發(fā),所做的軟件已經(jīng)算是單片機層面頂尖水平了──我們可以在單片機上開發(fā)自己的操作系統(tǒng)。但是,我們同事紛紛感覺到了危機,單片機能做的事情太單一了,單片機弱爆了!當(dāng)年流行wince,Linux剛起步,我們選擇學(xué)習(xí)Linux,現(xiàn)在wince已經(jīng)沒人提及,而Linux仍如日中天。中興公司也是在2005年才全面從vxwork切換到Linux的,我有幸進(jìn)入中興與他們一起研究Linux。
在發(fā)展方面,有了Linux知識,幾乎通吃所有產(chǎn)品。我從事過網(wǎng)絡(luò)會議系統(tǒng)、監(jiān)控攝像頭、樓宇對講系統(tǒng)、安防、廣告機方面的開發(fā),我只是開發(fā)底層系統(tǒng),不是開發(fā)APP,這些產(chǎn)品通通使用Linux,F(xiàn)在興起的機器人、人工智能,它們要落地的話,運行Linux系統(tǒng)的硬件是必選項。
就身邊事例而言,我是2008年離開中興,隨后幾年里有幾個同科室的同事也都離開了,他們都做Linux系統(tǒng);現(xiàn)在都做得很不錯。有人在聯(lián)想做Android開發(fā),有人在做POS機,有人自己創(chuàng)業(yè),他們或是團(tuán)隊領(lǐng)導(dǎo),或是有股份。
|
|