项目加八股拷打:
1. 项目写了个什么样的驱动
2. 介绍 Linux 总线设备驱动模型
3. 驱动里面的 probe 函数是什么时候被调用
4. 设备资源在什么时候注册
5. 字符设备驱动编写的流程是怎样的,函数流程
6. Linux 中断有了解多少
7. 中断的实现机制是怎样的,比如有一个任务执行时间比较长,也可能需要睡眠,这种情况下中断应该怎么写(不会)
8. 中断下半部分有哪几种实现方式(不会)
9. 单片机用过哪些外设
10. 定时器有哪几种用法
11. 说一下对 SPI 串口 I2C 三者的理解
12. I2C 的速度大概是多少
13. 说一下 DMA
14. IO 口有哪些模式
15. 如果是 I2C 的话设置成什么模式
16. 硬件 I2C 的话设置成什么模式
17. 说一下 volatile ,你在什么场景下会使用
18. 如果在一个中断里面有一个变量,其他线程里面需要读取这个变量要注意什么(没懂)
19. 位操作,如果设置一个 bit 怎么操作
20. 说一下函数指针
21. 描述一下函数指针是怎么定义的
22. 结构体对齐,一个结构体第一个变量是 short,第二个是 int ,在32位操作系统下sizeof是多少
23. C 语言内存分为哪些区
24. C++ 会吗
25. 你是偏向于做驱动还是应用开发
26. 说一下自旋锁、信号量和互斥量的区别
27. 自旋锁在单核与多核的情况下的区别(不会)
28. Linux 内存管理
29. 为什么需要虚拟地址
30. Linux 进程的通信方式有哪些
31. 有哪些是异步的通信方式
32. 反问环节