华勤嵌入式Linux驱动开发二面面经

参加了华勤通信嵌入式Linux驱动开发岗位的二面,依旧是视频面试,面试时长大概 50 分钟左右。相较于一面偏重基础和项目入门,二面更侧重于 项目细节深挖 + 八股文延伸考察,整体氛围比较专业。

1. 项目深挖

面试一开始,面试官继续围绕简历上的项目展开,问题明显比一面更具体:

  • 驱动开发中的移植经验:问到我在 BSP 移植和驱动适配过程中,最难的问题是什么,具体是怎么解决的。
  • 设备树调试:深入问了 compatible 匹配失败时的定位思路,以及在 probe 函数中如何确认设备树解析正确。
  • 中断驱动案例:提到过做过 GPIO 中断驱动,面试官会继续追问:如何避免中断抖动?为什么中断回调函数里不能调用睡眠函数?如果中断频率过高,你会怎么优化?
  • 内核调试方法:比如在驱动调试中,printk、trace_printk、debugfs 分别适合在哪些场景下使用。

可以看出,二面重点验证你对 驱动开发全流程是否真正做过,而不是停留在“写了个 demo”。

2. 八股文考察

这一部分问题覆盖面更广,细节更深,基本属于驱动开发岗位的“高频八股”。

  • 内核模块与驱动框架insmod 和 modprobe 的区别,modprobe 为何能自动加载依赖模块?platform_driver 和 i2c_driver 框架的差异。
  • 内存管理与 DMAkmalloc 和 vmalloc 的底层区别。为什么 DMA 需要一致性内存?cache 与物理地址映射时的注意事项。
  • 锁与并发机制spinlock 和 mutex 的区别,分别使用在什么场景?为什么中断上下文不能使用信号量?原子操作(atomic_t)的常见使用场景。
  • 文件操作接口file_operations 里 poll / mmap 的作用。用户态如何通过 select/poll/epoll 与驱动交互?
  • 用户态通信方式ioctl 的优缺点。sysfs 节点和 procfs 的区别。

3. 实际问题分析

和一面类似,二面也给了一个场景题:

假设一个外设驱动在加载时可以正常 probe,但应用层访问设备文件时始终返回 -ENODEV,可能的原因有哪些?

我从以下角度回答:

  • 字符设备号是否正确注册,设备节点是否存在;
  • file_operations 里 open 是否正确实现;
  • 用户空间调用时权限问题;
  • probe 虽然执行了,但资源初始化是否完整,比如中断申请失败;
  • dmesg 和 strace 的调试思路。

面试官会不断往下追问,比如:如果 open 返回失败,具体会在哪些环节报错?

4. C语言与底层理解

最后依旧有一些基础 C 语言问题:

  • 指针和数组的区别。
  • memcpystrcpy 的区别。
  • volatile 在寄存器映射中的作用。
  • static 在内核函数/变量中的用法。

这类问题都比较基础,但如果答得不清楚,会让人怀疑你底层功底是否扎实。

总结

二面整体感觉:

  • 比一面更“刨根问底”,项目经历里写的东西都会被细问。
  • 八股文更加偏向内核机制和驱动框架,不仅要会背,还要结合实际讲清楚。
  • 建议大家准备的时候,不仅要熟悉 驱动框架与 API,还要总结自己在项目中的 调试案例,做到“能讲故事”。

总体上,华勤的二面并不刁钻,但非常考验候选人 动手实践的深度对底层机制的理解

全部评论
校招问这么难
点赞 回复 分享
发布于 09-02 16:36 陕西
秋招吗还是社招
点赞 回复 分享
发布于 08-30 10:19 湖北

相关推荐

昨天 01:26
已编辑
门头沟学院 嵌入式软件开发
投完大概一个礼拜多约面,会先登记一个信息。一面自我介绍完就开始让详细讲一个自己觉得最有收获的项目,然后根据项目里的内容结合八股深挖,问的比较细,后面项目问完就开始普通八股了,无手撕。1.详细介绍一下收获最多的项目,然后结合八股深挖项目2.项目中遇到的最大的问题3.介绍一下FreeRTOS4.知不知道其他操作系统5.FreeRTOS中内存分配方式有几种,分别是怎么样的6.怎么分配任务空间,每个任务的堆栈分配多少,为什么7.项目中遇到的其他问题8.为什么任务中不能用hal_delay,用了会怎么样,有没有细究原理9.FreeRTOS中任务如何通信10.什么情况会导致栈溢出纯八股:11.内存四区12.全局变量和局部变量的区别13.static14.volatile15.do while 和while do的区别16.sizeof和strlen的区别(给定一个指向字符串的指针,问两个结果是怎样的,这里埋了坑)17.sizeof一个数组结果是什么18.结构体的内存对齐,结构体如何减小内存19.你觉得嵌入式软件开发和普通软件开发有什么区别20.意向工作地,工作规划等后续:大概隔了个周末就收到二面了二面50min话题很散,主要问你的项目经历,项目来源啥的,然后比较详细的问了实习的事情,像是在了解你实习期间学到了什么,实习做的东西能不能全部理清,项目/实习中遇到的难题,怎么解决...。后续问你职业规划、期望地点等等,还有之后能不能提前来实习这种问题。技术问题似乎只问了编译的过程。最后还出了道智力题...
查看23道真题和解析
点赞 评论 收藏
分享
评论
3
20
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务