砺算科技 嵌入式软件 二面
🗓:10-12
无手撕;项目+八股,感觉八股为主。
看到我有一个 Linux 的驱动相关项目,所以我有很多 Linux 相关的驱动内容,以及一些底层的实现原理。
- S01:支持一个新的字符设备时,驱动注册、资源管理和并发访问需要考虑什么?
- S02:应用层通过哪些接口与字符设备驱动交互?
- S03:多个进程同时访问设备时,用户态锁与内核同步各能保证什么?
- S04:V4L2 加 mmap 的多缓冲采集如何工作?
- S05:如何管理生产者消费者队列中的待处理数据与回收缓冲?
- S06:如何用互斥锁和条件变量正确实现入队、出队与阻塞等待?
- S07:单生产者单消费者无锁队列如何设计?改造现有队列要考虑哪些条件?
- S08:为什么同一进程内的多硬件流水线仍然需要 DMA-BUF?
- S09:用户态如何申请和访问 DMA-BUF?
- S10:不同硬件设备共享缓冲区时,如何确认上一阶段完成并进行同步?
- S11:内核如何根据 DMA-BUF 的 fd 找到共享对象并建立设备映射?
- S12:DMA-BUF 底层内存的位置由什么决定?
- S13:如何判断 auto 变量实际推导出的类型?
- S14:static_cast 表示什么?
- S15:Linux 常见进程间通信方式有哪些?共享内存的底层原理是什么?
- S16:多核 CPU 写入普通用户态内存时,地址翻译与缓存一致性如何工作?
- S17:设备写入共享内存后,CPU 何时以及如何取得最新数据?
- S18:CPU 访问 DMA 缓冲前后做同步,是否意味着 Cache 完全没有作用?
评论
?
参与讨论