传音控股

C/C++ 开发工程师(驱动)一面、二面面经

完整信息

33 条问法 · 31 道题

本篇目录

岗位是C/C++开发工程师(驱动),高通方向,base重庆。

8月21日投递,9月14日一面,9月16日二面,9月28日查到未通过。

一面当天就过了,第二天紧接着二面,结果二面之后等了差不多两周,最后还是挂了。

一面:Linux驱动和摄像头问得挺细

一面先是自我介绍,确认了一下岗位,随后就开始围绕实习项目提问。

  1. 介绍一下实习项目,尤其是影像相关的部分。
  2. 分离屏端的性能优化具体做了什么?分离和组合时有哪些优化?
  3. 分离屏和主机怎么保证操作和状态一致?
  4. 实习主要做的是上层开发,还是底层驱动?
  5. 应用层开发时,怎么处理多线程同步和竞态问题?
  6. 除了互斥锁,还了解哪些同步机制?知道无锁编程吗?
  7. MCU开发中用过哪些通信协议?各自有什么特点?
  8. 为什么从原来的专业转到嵌入式和驱动开发?
  9. 介绍一下V4L2。如果要添加一个摄像头设备,应该做哪些工作?
  10. 如果现在有两个CMOS,应该怎么调试?
  11. 自己有没有实际写过摄像头驱动?
  12. 摄像头不出图,应该从哪里开始排查?
  13. 排查之前,是不是应该先确认设备有没有成功挂载?
  14. 有没有使用过MIPI接口的Sensor?
  15. 了解摄像头3A吗?
  16. 如果摄像头过曝,应该调哪些参数?
  17. 是否了解CMOS成像原理,以及常见参数的含义?
  18. EV是什么?
  19. 了解哪些图像格式?YUV、RGB、NV12有什么区别?
  20. YUV为什么可以减少色度数据量?

这一串下来,感觉面试官对摄像头这块还是比较关注的。

其中我觉得最值得单独准备的是V4L2和摄像头不出图的排查。

先说V4L2。

如果简历里写过Linux摄像头驱动,最好别只知道几个ioctl命令。

至少要把Sensor驱动、V4L2框架、Video设备、videobuf2和用户态采集流程之间的关系理清楚。

比如用户态通过VIDIOC_REQBUFS申请缓冲区,再用VIDIOC_QBUF入队,通过VIDIOC_STREAMON启动采集,最后用VIDIOC_DQBUF取得完成的缓冲区。

这些步骤为什么存在,驱动和硬件分别负责什么,最好能串起来讲。

当然,实际驱动的注册流程会随具体平台和设备架构变化,不能认为所有摄像头都按同一份模板写。

再说摄像头不出图。

这道题我觉得特别典型。但真排查的时候,得先确认问题到哪一层。

设备有没有识别成功?Sensor供电、时钟、复位和控制总线是否正常?初始化寄存器配置对不对?MIPI CSI链路有没有错误?后面的缓冲区有没有正常完成?

一面最后还问了Android、HAL层、AI使用情况,以及部分简历经历。

当晚一面通过,第二天安排二面。

二面:开始重点聊项目

原本以为二面会继续深挖内核或者驱动实现,结果这一轮主要聊项目经历。

问题整理如下:

  1. 自我介绍。
  2. 从竞赛和实习项目里,挑一个印象最深或者最有成就感的项目介绍。
  3. 分离屏的UI性能优化具体怎么做?怎么发现性能瓶颈?优化效果用什么指标评价?
  4. 什么是脏矩形?
  5. 实习期间最大的收获是什么?
  6. 平时怎么使用AI?
  7. 怎么看AI对软件开发的影响?
  8. 有没有跟同事沟通不顺畅、需求没对齐的时候?怎么处理?
  9. 课外看过哪些技术书籍?
  10. 本科到硕士之间为什么有一年的空档?
  11. 为什么选择现在的学校?
  12. 相比其他候选人,觉得自己有哪些优势?讲三点。

后面就是反问环节。

UI性能优化,到底怎么证明自己优化过?

这道题至少要想清楚三个问题。

第一,性能瓶颈是怎么找到的?

不能看到界面卡顿,就直接认为是渲染太慢。

有可能是事件处理耗时,也可能是控件更新、布局计算或者真正的绘制阶段出了问题。

比较直接的办法就是针对各阶段做耗时统计,有条件再结合性能分析工具查热点。

第二,具体做了什么优化?

如果是重复绘制太多,那就考虑减少不必要的刷新。

如果是某个操作阻塞了UI线程,就得考虑是不是应该调整任务执行方式。

不同原因对应的优化方法不一样。

第三,怎么证明有效?

最好选固定场景,对比优化前后的平均帧率、单帧耗时、卡顿次数等。

只说“现在感觉流畅多了”,显然不太够。

两轮下来,感觉有几个点挺值得注意

首先,这个岗位虽然叫驱动开发,但一面不是只考Linux内核。

多线程、MCU通信协议、摄像头驱动、图像格式、影像基础都有涉及。

这也跟候选人自己的经历有关。他有影像相关实习,也写过摄像头驱动,面试官自然会顺着这些内容问。

准备的时候,如果发现有些基础点一直解释不清,也可以看看这篇文章,结合自己的项目查漏补缺。

目前 9w+ 同学在看,3700+ 订阅。数据摆这儿,口碑自己说话,也感谢大家的支持,几乎0差评也说明大家也得到了自己想要的答案。

适合面经基础薄弱、想一次性系统梳理的同学。越早订越划算,内容只会越来越全,价格也只会越涨越高。

🔗 专栏直达:https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM

先整理这么多。

本篇目录
  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
  6. 06
  7. 07
  8. 08
  9. 09
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
    分离屏的UI性能优化具体怎么做?怎么发现性能瓶颈?优化效果用什么指标评价?
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33

同作者面经

相关公司