機(jī)遇:我是如何走向Linux驅(qū)動的
哈嘍,大家好!我是小冉老師。怎樣才能做到Linux驅(qū)動這個崗位。今天就聊聊我是怎么走向Linux驅(qū)動的吧 機(jī)遇 和大家一樣,我只是一個很普通的人。要說優(yōu)秀的話,比我優(yōu)秀的人那可太多了。起初上課學(xué)習(xí)Linux驅(qū)動時,我聽的一頭霧水,考試也只不過是背背題,其實(shí)并不懂,考過就忘了。那時我覺得,能做Linux驅(qū)動的人,他的理論知識、對底層技術(shù)的了解得有多深。真的很佩服能做這樣工作的人。我列舉了我學(xué)過的東西:stm32、ucos、Linux應(yīng)用開發(fā)、Linux驅(qū)動開發(fā)、java、安卓、網(wǎng)頁、jsp。。。 我專業(yè)是電子信息工程,雖然也學(xué)了一點(diǎn)前端、安卓這些純軟件的,也看到過嵌入式不如純軟等觀點(diǎn),但我貌似對嵌入式更感興趣一點(diǎn),于是我還是選擇了走嵌入式,因?yàn)槿绻x其他的路,我的技術(shù)棧貌似也不太完善?;谖覍W(xué)過的東西,那就只有三條路能走了:單片機(jī)、linux應(yīng)用、linux驅(qū)動。當(dāng)時聽說單片機(jī)天花板低,技術(shù)不深,很多人都勸退,所以我也沒選單片機(jī)。linux驅(qū)動的話,我貌似學(xué)了可能連皮毛都不到的知識,所以我的選擇只能是linux應(yīng)用了。于是我的簡歷中,項目都是linux的,沒有單片機(jī)項目。但出于僥幸心理,想著往項目加點(diǎn)驅(qū)動開發(fā)的東西,覺得可能會有些優(yōu)勢,于是我加了點(diǎn)驅(qū)動的內(nèi)容在項目中。雖然我加了點(diǎn)驅(qū)動內(nèi)容在里面,但我準(zhǔn)備的主要是面向linux應(yīng)用,并沒有朝著linux驅(qū)動開發(fā)崗位投。所以如果面試官問我職業(yè)規(guī)劃,我都是說先做linux應(yīng)用,如果有機(jī)會再轉(zhuǎn)向驅(qū)動深入。 我面試的,問的都是Linux應(yīng)用方面的知識,直到有家公司,面試官問我:你對驅(qū)動感興趣嗎?我說感興趣,然后驅(qū)動部門的主管開始問我:你對驅(qū)動了解多少,項目的這個驅(qū)動是怎么實(shí)現(xiàn)的。。。然后我就巴拉巴拉瞎扯,最后過了。。。 到了選擇的時候,我手上有三個offer,三家其實(shí)都是芯片原廠,但只有一家是讓我做linux驅(qū)動。猶豫如何選的時候,心想:既然做linux應(yīng)用的人,如果他對技術(shù)有點(diǎn)追求的話,最終都會走向驅(qū)動,那現(xiàn)在做驅(qū)動的機(jī)會就擺在我眼前,為何還要等到幾年后呢?況且,做linux應(yīng)用,幾年后也未必有機(jī)會轉(zhuǎn)向驅(qū)動崗 簡單來說,就是芯片流片前,我們在fpga或者硬仿上,把uboot、kernel、文件系統(tǒng)等跑起來,所有的這些都要自己弄,因?yàn)樾酒康尿?yàn)證都是裸機(jī)。流片回來后,負(fù)責(zé)bringup,確保系統(tǒng)能在芯片上跑,然后就給到驅(qū)動部門開發(fā)項目相關(guān)的一些驅(qū)動, 而我們提供支持。 也是這些經(jīng)歷讓我明白了一些東西:uboot并不是第一跑的程序,第一個跑的程序是芯片內(nèi)的bootrom代碼。 燒錄工具的存在,絕不僅僅是燒錄。 芯片有安全啟動的說法,并不是代碼燒進(jìn)去了就能跑。 即便不燒錄任何代碼,芯片上電后串口和ddr就已經(jīng)初始化好了,因?yàn)閎ootrom會做。 底層開發(fā),是一條道走到黑的路,沒有捷徑可走,只有不斷地學(xué)習(xí)、積累和沉淀。但沉淀過后,也絕非別人可以一朝一夕超越你、替代你。 最后 感興趣的話,可以加我微信。與小冉老師一起探討嵌入式,嵌入式軟件和嵌入式硬件都可以,同時小冉老師最近也在給嵌入式培訓(xùn)機(jī)構(gòu)做線上答疑,也有幾部培訓(xùn)課程,小伙伴們可以私