EE学生一枚
别焦虑,你STM32的硬件和寄存器基础其实是优势,很多驱动工程师缺这个。学习路线建议分三步,每一步都要产出。第一步:用一周,在Ubuntu虚拟机上熟悉内核模块的编写、编译和加载卸载,理解Makefile和Kconfig。第二步:核心攻坚,用两周时间,基于一个具体硬件(比如用QEMU模拟的或你自己有的一个简单外设,如LED),完成一个字符设备驱动,包含open、read、write、ioctl等基本操作,并尝试加入设备树描述。这一步遇到的所有问题(比如设备号申请、cdev添加、文件操作结构体绑定)都要搞懂。第三步:用一周,学习驱动中必须的并发与竞态处理(信号量、完成量等),并看看内核中一些典型驱动的简单源码(如LED驱动)。面试官通常不会问太深的内核机制,但会围绕你做的项目,问你为什么这么设计,某个函数的作用,以及设备树、平台设备驱动模型这些概念。所以,一个亲手做的、能讲清楚的项目是你的王牌。书(LDD)可以作为遇到具体概念时的参考手册,而不是从头读到尾。
