4面 TOP10半导体大厂 问题总结
本人Linux 嵌入式开发3年 ,面试半导体TOP 10 某厂, 4次面试 ,最终拿到offer .
现将 问题总结 ,供后人参考。
1:进程的地址空间分布 ,Linux系统调用应用程序的过程 ,几大数据段?
2:i2c spi 的 驱动模型 , 如何匹配,如何probe,如何设计中断处理函数 ,上半部和下半部,如何实现下半部?
3:为何irq 不能睡眠 ?要说最关键的地方
4:内核线程的同步方式有哪些?
5:模块之间是如何同步的消息的?
6:简述 你的 bring up 屏幕的流程 , 简述下 fb 驱动框架。
7:请描述下Linux V4l2 的 应用编程 ,了解过内核的 v4l2 架构嘛 ?csi数据是如何到V4L2 的?
8:input 的 如何注册到 内核的 ?数据是如何input_event () input_sync() ,后就可以上层收到数据了? 请简述其过程 。
9:请说下你目前做的项目。
10:知道Linux的内存分配嘛? 进程切换原理看过嘛?看过内核调度方面的代码嘛?
11:请说下 i2c 的时序。
12: jni是做什么的? hal 是什么? 如何设计一个hal ? 用过HIDL 嘛? 为何要出现HIDL ?
13:了解过 Android 架构分层嘛? freamwork jni hal 关系?
14: tasklet ,软中断 ,workqueue,wait_queue 区别 ?
15:Linux C 进程通信的方式 哪些?
16:死锁的原因是什么?要达到哪些条件会死锁?
17:修改开机启动logo , 用的是什么格式的图片? 为什么是 bmp格式的?
18:自旋锁 用过嘛? 使用场景?
19:简述 list_head 的 原理 ,有哪些api?
20:container_of ?
21:DMA 用过吗? 函数是什么? 内核的kmalloc 和 vmalloc 的 区别?