2020-08-04

1、硬件基础:主要是数电。次要是电路、模电、物理。
2、处理器基础:主流是ARM、单片机、DSP、微机原理。
3、软件编程基础:主要是C语言。其次是C++。和驱动关系不大的是Java、C#、Objective-C。
4、操作系统基础:操作系统原理(驱动框架)、数据结构、编译原理。
总结:数电+ARM/单片机+C语言,这三样最重要。
数电:通过看数字器件的说明书(datasheetpec)知道一个数字器件的工作条件:
1、上电。2、使能。3、设不同值使器件进行不同工作。
ARM/单片机:
1、会用GPIO控制设备(比如LED)
2、会用中断(让键盘正常工作)
3、一些常用通信协议(I2C/SPI/等等)
C语言:没什么好说的,指针相关的都比较难,面试基本考这个为主。
驱动框架:比如linux驱动框架(module_init->init->probe->fops/sysfs...,device+driver+bus)等等
心得:根据我的心得和实际面试经历,有过实际的驱动经验比笔试更重要,比如用单片机或ARM调过LED、键盘、SPI设备(LCD)、I2C设备等设备会比较好。也就是买块单片机开发板会比较好。ARM的开发板往往涉及操作系统,如果不是计算机系的可能上手极难,但参加培训却能事半功倍,推荐。

所以:实际经验(调过开发板)+基础水平(笔试主要是C)+思路明确(思路、规划、行情了解)。

入职以后,好好学,多调试,如果涉及操作系统比如ANDROID或者LINUX(两者的驱动都是LINUX驱动),要有很多东西学,多请教,反正爆发出200%的热情与动力!

我是电类专业毕业,所以是从电类毕业的角度给的建议。
如果你是计算机类的,那估计操作系统那块实力要强很多,所以应该是知道数字器件的驱动就是:上电+使能+寄存器设值。

我要问你的问题:
1:你什么专业的?
2:你想做什么驱动?(1、裸板驱动:汽车电子。
2、android或linux驱动:智能手机、平板电脑、智能电视机、路由器。
3、WINCE/WP7等微软WIN驱动:同上)

行情:干5年会很牛逼

你可能感兴趣的:(2020-08-04)