机遇:我是如何走向Linux驱动的
哈喽,大家好!我是小冉老师。怎样才能做到Linux驱动这个岗位。今天就聊聊我是怎么走向Linux驱动的吧 机遇 和大家一样,我只是一个很普通的人。要说优秀的话,比我优秀的人那可太多了。起初上课学习Linux驱动时,我听的一头雾水,考试也只不过是背背题,其实并不懂,考过就忘了。那时我觉得,能做Linux驱动的人,他的理论知识、对底层技术的了解得有多深。真的很佩服能做这样工作的人。我列举了我学过的东西:stm32、ucos、Linux应用开发、Linux驱动开发、java、安卓、网页、jsp。。。 我专业是电子信息工程,虽然也学了一点前端、安卓这些纯软件的,也看到过嵌入式不如纯软等观点,但我貌似对嵌入式更感兴趣一点,于是我还是选择了走嵌入式,因为如果选其他的路,我的技术栈貌似也不太完善。基于我学过的东西,那就只有三条路能走了:单片机、linux应用、linux驱动。当时听说单片机天花板低,技术不深,很多人都劝退,所以我也没选单片机。linux驱动的话,我貌似学了可能连皮毛都不到的知识,所以我的选择只能是linux应用了。于是我的简历中,项目都是linux的,没有单片机项目。但出于侥幸心理,想着往项目加点驱动开发的东西,觉得可能会有些优势,于是我加了点驱动的内容在项目中。虽然我加了点驱动内容在里面,但我准备的主要是面向linux应用,并没有朝着linux驱动开发岗位投。所以如果面试官问我职业规划,我都是说先做linux应用,如果有机会再转向驱动深入。 我面试的,问的都是Linux应用方面的知识,直到有家公司,面试官问我:你对驱动感兴趣吗?我说感兴趣,然后驱动部门的主管开始问我:你对驱动了解多少,项目的这个驱动是怎么实现的。。。然后我就巴拉巴拉瞎扯,最后过了。。。 到了选择的时候,我手上有三个offer,三家其实都是芯片原厂,但只有一家是让我做linux驱动。犹豫如何选的时候,心想:既然做linux应用的人,如果他对技术有点追求的话,最终都会走向驱动,那现在做驱动的机会就摆在我眼前,为何还要等到几年后呢?况且,做linux应用,几年后也未必有机会转向驱动岗 简单来说,就是芯片流片前,我们在fpga或者硬仿上,把uboot、kernel、文件系统等跑起来,所有的这些都要自己弄,因为芯片部的验证都是裸机。流片回来后,负责bringup,确保系统能在芯片上跑,然后就给到驱动部门开发项目相关的一些驱动, 而我们提供支持。 也是这些经历让我明白了一些东西:uboot并不是第一跑的程序,第一个跑的程序是芯片内的bootrom代码。 烧录工具的存在,绝不仅仅是烧录。 芯片有安全启动的说法,并不是代码烧进去了就能跑。 即便不烧录任何代码,芯片上电后串口和ddr就已经初始化好了,因为bootrom会做。 底层开发,是一条道走到黑的路,没有捷径可走,只有不断地学习、积累和沉淀。但沉淀过后,也绝非别人可以一朝一夕超越你、替代你。 最后 感兴趣的话,可以加我微信。与小冉老师一起探讨嵌入式,嵌入式软件和嵌入式硬件都可以,同时小冉老师最近也在给嵌入式培训机构做线上答疑,也有几部培训课程,小伙伴们可以私