嵌入式秋招各轮面试考察重点复盘(笔试到 HR 面)
- 轮次
- 多轮面试合集
- 时间
- 2026-10
- 来源
- 牛客网
《面试题目》
原帖没有记录某一场面试的具体题目,而是按轮次总结了嵌入式岗位的考察范围与高频考点,这里照实整理,不做补充。
笔试 / 机考:以算法题为主,加一部分 C 语言选择题;高频类型是数组、字符串、链表、栈与队列、双指针、哈希;机考需要自己处理输入输出。
一面(约 50 分钟至 1 小时):自我介绍 → 挑一个项目讲 → 一批基础题 → 手撕。高频考点包括 volatile、static、const 与指针的几种写法、内存对齐与结构体大小、堆与栈、指针相关(野指针、二级指针、函数指针)、malloc/free、大小端;外设部分是中断、定时器,以及 I2C、SPI、UART 三者的对比;手撕除了反转链表、字符串处理,还常考结合场景的环形缓冲区与寄存器位操作。
二面(一小时以上):操作系统(进程调度、上下文切换具体做了什么、虚拟内存与 MMU、页表)、RTOS(任务切换保存了什么、优先级反转、FromISR 为什么存在)、锁与并发(自旋锁与互斥锁的区别、中断上下文为什么只能用自旋锁、原子操作怎么实现、内存屏障)、Linux 驱动(设备驱动模型、中断上下半部、copy_to_user),以及「讲一个项目里最难定位的 bug,怎么定位的」。
三面 / 交叉面(约 40 分钟):为什么投这个方向、怎么看这个行业、一个系统里某个模块崩了怎么保证整体不出问题、代码质量怎么保证、有没有看过开源项目源码、以后想往底层还是应用走;以及开放排查题,比如设备现场出问题了怎么定位、有什么手段能捞信息回来。
HR 面(约 30 分钟):意向城市、能否接受加班、有没有别的 offer 怎么排序、期望薪资、职业规划,以及行为面问题(讲一次最有成就感的事、遇到过的最大困难怎么解决)。
《参考解析》
为什么每一轮的准备方式必须不同。这是这篇复盘最有价值的一条:一面考广度、二面考深度、三面考视野、HR 面考匹配,用同一套准备打所有轮次必然在某一轮翻车。一面的淘汰逻辑是「有没有明显的洞」,面试官问得密但不深,一道题问完就走;二面的淘汰逻辑是「同一个知识点往下追两层你还答不答得上来」,比如一面问 volatile 是防止编译器优化就过了,二面会问它保不保证原子性、能不能用来做多线程同步、中断与主循环共享变量为什么非加不可;一面问互斥量与信号量的区别,二面会问信号量释放之后内核怎么决定唤醒哪个线程。三面几乎不考细节,考的是系统视角与自我认知;HR 面考稳定性、意愿与薪资匹配。按轮次分配准备时间,比平均用力更有效。
一面高频题库的复习方式。C 语言部分要能脱口而出:volatile/static/const 的语义与用法、内存布局(代码段、数据段、BSS、堆、栈)、结构体对齐与 sizeof 计算、指针的各种形态(野指针、悬空指针、二级指针、函数指针与指针函数)、malloc/free 的配对与碎片、大小端与联合体判断。外设部分要能把中断(触发、向量表、现场保存、上下半部)、定时器(周期、PWM、输入捕获)、以及 I2C/SPI/UART 的线数、速率、拓扑、有无 ACK 与时钟同步做成一张对比表。手撕题要注意嵌入式特有题型:环形缓冲区(读写下标、满与空的判断、volatile 与内存屏障)、位操作改寄存器(清位、置位、读改写要防打断)。可以把每个点写成「一句话定义 + 一个使用场景 + 一个踩过的坑」,面试时按这个结构输出。
二面要往哪些方向做深度准备。按出现频率排序:操作系统(进程与线程的本质差别、CFS 与实时调度、上下文切换的开销与触发点、虚拟内存与 MMU 的四级页表、缺页处理、内存分配器)、RTOS(任务状态机、就绪位图与调度、任务切换保存哪些寄存器、优先级反转与继承、中断中可用的 API、栈大小的确定)、锁与并发(自旋锁与互斥锁的适用边界、为什么中断上下文不能睡眠、原子操作的实现与内存屏障、无锁队列的 ABA)、驱动(字符设备与设备树匹配、probe 流程、中断上下半部、用户态与内核态的数据拷贝)。准备方法就是把每个「我会」的题目问自己三层:它底层怎么实现的、为什么这么设计、失效会怎样。作者「一面能有 Offer、二面连着挂」的经历说明:深挖是嵌入式岗位最常见的挂点。
项目与 bug 题怎么讲。二面必问「讲一个项目里最难定位的 bug」,这题骗不了人。结构仍然是:现象(可复现的条件与观测到的异常)、初步判断与走了哪些弯路、定位手段(日志、示波器、调试器、二分注释、加断层拷贝)、根因(要能落到具体机制,比如缓存一致性、竞态、栈溢出、时序违例)、修法与验证(怎么证明修好了、有没有加防护)。照着例程改参数的人在这题上会立刻暴露,因为讲不出「为什么最初判断错了」。
笔试与三面、HR 面的应对。笔试的关键提醒是自己处理输入输出:平时刷题平台给了函数框架,机考要自己写 scanf/getline 与循环,一定要提前练;嵌入式岗位也会考 C 语言选择题,别只刷算法。三面准备两件事就够了:为什么选这个方向(要有具体理由,不是「喜欢硬件」)、手上那个项目从系统角度还能怎么优化;开放排查题答「思路 + 手段 + 信息回收」的框架,不懂的老实说不懂。HR 面要注意不在无意中暴露不稳定信号(更想去别的地方、可能考研),期望薪资提前查行情并按城市生活成本给区间;反问环节问团队在做什么、新人怎么带、直属领导的技术背景,比问福利有价值。作者最后总结的三句话可以直接当准备清单:一面别有短板,二面往深里扎,三面想清楚自己要什么。