做驱动一直是我的梦想,但是梦想与现实总会存在差异,但是这个梦想在我心中任未破灭。
今天下午和公司部门一前辈聊了他从事多年驱动开发的经验总结,受益匪浅啊!
1. linux驱动入门
从各个模块在linux内核中的结构熟悉起,这个随着时间的增多,慢慢都会很熟。当然还有linux中很多小工具,shell,gcc,gdb....还有一点很重要就是:要熟悉linux内核,熟悉linux的架构和整个流程,还有各个模块的工作原理。
2. 要懂硬件相关知识
从前辈给出的遇到真实例子得知,很多问题会是硬件和驱动配合的问题。他总结的过程是这样的,前期是硬件的问题--->驱动的问题--->硬件+驱动配合问题。做一个模块要对这个模块硬件工作原理要很清楚,这样后续很多问题才能很好的解决,要不然,出了问题不知道怎么定位。
3. 做了多年驱动,怎么体现差距?
这个问题很高深,驱动程序都可以正常工作,但是效率就是不一样,这个主要体现在驱动工程师对算法和编译原理的理解上,这是内功,不是一朝一夕可以练成的,要对自己手上的芯片原理和架构有很深的理解,还要对算法有深刻的理解,才能写出高效的驱动。
谈了很多,简单记录如上,我要继续努力啊!