这几年嵌入式开发的面试风向变得特别快。前两年大家还在疯狂背八股文式的C语言笔试题,到了2025年,我明显感觉到面试官开始问“你用AI写代码时怎么保证质量”、“你的设备树裁剪后启动时间优化了多少”、“NPU上INT8量化精度掉了怎么调”这类实战到骨子里的问题。说白了,市场不缺只会调接口的人,缺的是能把项目真正跑稳、把性能榨干的人。
这篇内容我梳理了2025到2026年嵌入式面试里出现频率最高的一批知识点,覆盖C语言底层细节、Linux应用与驱动、设备树与系统裁剪、算法部署和性能调优,以及AI辅助开发带来的新考点。我会尽量用“面试官到底想考什么”的角度来拆解,而不是单纯罗列知识点。无论是准备秋招春招的应届生,还是想跳槽的在职工程师,这篇都值得花半小时认真看一遍。
1. 底层基础:C语言修饰符与内存布局,仍然是第一轮的“筛子”
嵌入式面试的第一步几乎永远是C语言。但2025年的C语言考察侧重点明显变了,面试官不再问“const和#define有什么区别”这种入门题,而是把修饰符放进具体场景里,考察你写底层代码时是否真的有安全意识。
1.1 高频修饰符的“组合拳”用法
const、volatile、static、extern这几个修饰符,单独拿出来谁都认识,但组合在一起才是真正的考点。
以const volatile组合为例,这在寄存器映射场景里极其常见。比如读取硬件状态寄存器,你希望这个变量不能被程序修改(const),又希望编译器不要优化掉每次都重新读取(volatile),所以就有了const volatile uint32_t *reg这种写法。面试官只要看到你能主动说出“const保护变量不被代码误写,volatile保证每次都是从硬件地址真实读取”,这个问题基本就过了。
另一个常考的是static在模块化驱动里的作用。一个.c文件里的全局变量加上static,相当于告诉整个工程“这个变量只属于本模块”,这既是为了防止命名冲突,也是驱动开发里的封装惯例。面试时我建议你主动补一句:static修饰函数也有同样的隐藏作用,内核里大量static函数就是靠这个实现模块内私密性的。
1.2 指针、内存对齐与大小端——笔试题的重灾区
指针这块,2025年的面试题越来越倾向于“运行结果类”的代码阅读题。比如char *p = "hello"; p[0] = 'H';到底会不会崩?你要能迅速反应出字符串字面量存储在只读区,修改它会产生段错误。这类题考的是对进程内存分布(栈、堆、全局区、只读区、代码区)的理解是否扎实。
结构体对齐更是年年必考。#pragma pack和默认对齐规则的计算,面试官喜欢让你现场算一个结构体的大小。这里有个经验:默认情况下,结构体大小等于最大成员对齐值的整数倍,成员按声明顺序依次放置,每个成员的偏移量必须是自身大小的整数倍。比如:
struct { char a; // 偏移0 int b; // 偏移4,因为int需要4字节对齐 short c; // 偏移8 } // 总大小12,而不是7算完之后建议主动解释为什么需要对齐——因为CPU访问自然对齐的数据只需一次内存访问,不对齐可能触发异常或者降低性能,这在嵌入式平台上尤其敏感。
大小端也是老生常谈,但2025年不少面试官会加深一层:让你写一套可移植的代码,在两种字节序的平台上都能正确解析数据。我一般会给出联合体判断法或是指针判断法,然后强调实际工程里要用__BYTE_ORDER__这类宏做编译期判断,而不是运行时判断。
1.3 内存泄漏、栈溢出与安全编程意识
现在的嵌入式面试越来越重视安全编码意识。栈溢出是个高频场景:中断服务函数里定义一个大数组,到底安不安全?正确答案是不安全,因为中断栈往往有限制。更典型的是递归,嵌入式里默认禁止无界递归,因为栈空间经不起折腾。
内存泄漏方面,面试官常问“一个长时间运行的嵌入式设备,发生内存泄漏怎么排查”。这时候要能说出valgrind在嵌入式板子上的局限(太慢、太耗内存),更适合用dmalloc、自己实现内存池统计、或者定期查看/proc/meminfo和/proc/slabinfo来缩小范围。能答到这一层,说明你真的调过问题,而不是只会背概念。
2. 嵌入式Linux应用开发:从进程线程到网络并发,考察“工程落地能力”
只懂C语言而没有Linux环境下的开发经验,在2025年的嵌入式面试里是走不远的。尤其是嵌入式Linux应用开发岗位,面试官非常看重你对进程线程模型的理解,以及对并发问题的敏感度。
2.1 进程、线程与同步机制
进程和线程的区别人人都能背两句,但面试官会让你结合场景选型。我遇到的一个典型问题是:一个数据采集系统,需要同时采集8路传感器数据并实时上传,你会怎么设计线程模型?这时候要能说出“每路传感器一个采集线程+一个统一的上传线程,采集线程通过线程安全队列把数据交给上传线程”这类方案,并且主动分析锁粒度、队列入口阻塞等问题。
同步机制的高频考点是互斥锁、读写锁、信号量、条件变量之间的区别和选型。2025年流行出这种对比题:读多写少应该选什么?答案是读写锁;生产者消费者模型需要什么?条件变量+互斥锁配合使用。面试官特别喜欢追问“条件变量为什么要配互斥锁”,答案要能落到:条件变量本身不保护共享数据,它只是让线程在条件不满足时休眠,而检查条件和修改条件的过程必须用锁保护,防止竞态。
2.2 进程间通信(IPC)的实际选型
IPC 是另一个绕不开的大块。管道、FIFO、消息队列、共享内存、信号、Socket,面试官会让你根据业务场景实地选型。一个很典型的题:两个进程需要高频交互大量数据,用什么?共享内存最合适,因为没有内核态到用户态的拷贝开销。但紧接着就会问:共享内存怎么解决同步?这时候要能答出semget/semop信号量配合,或者mmap加原子操作。
另外有名信号量和无名信号量的区别也是热门。进程间同步用有名信号量(fcntl或sem_open),线程间同步可以用无名信号量(sem_init)。这里我建议大家准备一个自己实际做过的IPC案例,比如用共享内存+信号量实现的双进程日志系统,能画出示意图并说清楚每一步流程,得分会非常高。
2.3 网络编程与并发模型
嵌入式Linux应用开发绕不开网络。TCP三次握手和四次挥手属于送分题,但2025年开始流行问“TCP粘包问题你怎么解决”。这是很多新手在实际项目里被坑过的问题。我能给出的方案通常是:定义应用层协议,每个数据包包含固定的包头(魔数、包长、校验)加包体,接收端按包头解析包长,再循环读取直到收完一整个包。
并发模型上,select、poll、epoll三兄弟的对比依然是超高频。epoll为什么快?因为它使用事件驱动,只把就绪的文件描述符返回给用户,不需要每次全量遍历。面试官还喜欢追问ET(边沿触发)和LT(水平触发)的区别,尤其会让你说实际项目里选哪个、为什么。我个人的经验是:ET模式配合非阻塞I/O可以充分利用事件驱动优势,但编程复杂度高,容易漏读数据;LT模式相对宽容,适合稳定性优先的项目。在面试中,能结合自己的项目说出选型理由比背出官方定义重要得多。
3. 驱动开发与设备树:从字符设备到平台总线,考查内核理解深度
想冲击嵌入式Linux驱动开发岗位的,这部分是分水岭。纯应用开发者可以跳过细节,但至少要理解设备树的概念和基本结构,因为现在连单片机级别的项目都在往设备树的方向靠。
3.1 设备树语法与匹配机制
2025年面试问设备树,几乎不考语法背诵,而是考“如果你新加了一个I2C触摸屏芯片,需要修改哪些文件、完成哪些配置”。正常流程是:设备树里新增I2C子节点,定义compatible(用于匹配驱动)、reg(I2C地址)、interrupts(中断引脚,有时会用到interrupt-parent)、reset-gpios(复位引脚)等属性;内核里新增或启用对应的I2C客户端驱动,实现probe函数,并在驱动中声明of_match_table。
面试官常挖的一个深坑是compatible属性匹配优先级问题。你要能解释:设备树节点的compatible会和驱动里的of_device_id表逐一匹配,优先使用of_match_table里排序靠前的项;同时要说明struct device_driver的name字段和设备名的匹配是老式写法。能讲清楚这些,说明你真正理解设备驱动模型的注册机制。
3.2 字符设备驱动与platform驱动
字符设备驱动的流程几乎必考:注册设备号(或动态分配)、cdev_init、cdev_add、创建设备类和设备节点、实现file_operations结构体里的open/read/write/release。面试官一般会让你现场写出关键代码骨架,或者给你一段残缺代码找出错误。
platform驱动则是Linux设备模型里连接设备树和驱动的桥梁。2025年的高频问法是:platform_driver、platform_device的匹配过程是怎样的?probe函数什么时候被调用?答案要落到:设备树解析出platform_device,驱动注册时通过bus_type的match函数检查compatible或name是否匹配,匹配成功后调用驱动的probe。这里建议准备一个实际编写过的platform_driver代码,说清楚dts、driver、device三个文件之间的联动关系。面试官听到你能主动说“dts里加节点、驱动里注册platform_driver、两者通过compatible匹配”,基本就认可这段项目经验是真实的。
3.3 中断、并发与锁,驱动开发的硬骨头
任何驱动开发岗位都会问中断处理。常见问题包括:中断上下文为什么不能调用sleep或mutex_lock?工作队列和软中断的区别?request_threaded_irq的threaded irq机制解决了什么问题?
并发控制方面,自旋锁和信号量在驱动中的选择是一个经典考题。简单说:中断上下文或临界区极短且不能睡眠时用自旋锁,可以睡眠的上下文用信号量或互斥锁。不过2025年也开始流行考察更细粒度的RCU机制,以及atomic_t原子变量在驱动中的使用场景。
我个人的建议是:准备一个自己做过或者源码精读过的驱动案例,比如GPIO按键驱动,把中断触发、debounce处理、通过input子系统上报按键事件的全流程梳理清楚。这个案例在面试里几乎能应对一半以上的驱动类问题,因为它的知识点覆盖了中断、定时器、并发、阻塞与非阻塞I/O、设备模型等多个层级。
4. 系统裁剪与优化:启动时间调优、文件系统瘦身,面试中的“加分杀手锏”
系统裁剪优化是2025年嵌入式面试的热门方向,尤其是物联网和边缘计算岗位。这一块面试官关注的核心指标是:启动速度、内存占用、存储占用和功耗。能够拿出一套具体的裁剪优化数据,比如“我们把启动时间从8秒降到了2.3秒”,比任何华丽的描述都管用。
4.1 内核裁剪与配置要点
内核裁剪的高频考点是:如何根据实际硬件定制内核?menuconfig里怎么选?哪些子系统必须保留,哪些可以关闭?
经验上,裁剪的核心原则是“最小化”。比如一个纯粹的工业控制设备,如果不需要USB设备功能,就关闭CONFIG_USB;不需要蓝牙,就关CONFIG_BT。但要注意:裁剪不是盲目关功能,而是对照硬件实际使用的IP列表来核对驱动开关。还有一个很容易被忽略的点:内核打印日志级别loglevel,把启动的输出级别从7降到4,屏幕打印少了,启动速度也会有可感知的提升,因为串口输出本身很慢。
另一个加分点是内核initcall机制的优化。启动时间主要花在内核初始化和驱动probe上。如果你能把一部分驱动从内核态编译成模块并延迟加载,或者调整驱动的initcall等级(如subsys_initcall改成device_initcall),都能优化启动顺序。面试时能说出“我们通过调整initcall优先级,把非关键驱动延后加载,启动时间减少了1.2秒”,这个工程经验非常有含金量。
4.2 根文件系统与存储布局优化
文件系统裁剪方面,2025年的热点是initramfs与挂载外部存储的切换时机。面试题常问:为什么要先用initramfs再切到真正的根文件系统?因为initramfs能把硬件初始化和存储驱动加载过程提前完成,之后再switch_root到外部存储上的根文件系统,这样可以提高启动兼容性和稳定性。
存储空间的瘦身也有讲究。如果设备用的eMMC容量很小,要考虑去掉不必要的locale、时区数据、多余的busyboxapplet,甚至用strip去掉二进制文件的调试符号。还有一点是glibc换成musl libc,体积能减少30%左右,内存占用也更低——2025年很多轻量级设备都转向musl了。
4.3 启动时间优化的经典三板斧
启动优化方面,“三板斧”在面试里非常受欢迎:第一斧是bootloader阶段减少延时,比如U-Boot的bootdelay从默认的3秒改成0;第二斧是内核阶段裁剪驱动、降低打印级别、开启CONFIG_CC_OPTIMIZE_FOR_SIZE;第三斧是用户态阶段,把串行启动的服务改成并行启动,或者在业务允许的情况下用systemd的socket activation延迟启动非关键服务。
我一个实际做过的方案是:用perf和bootchart、bootgraph工具定位各部分耗时,然后按照耗时排序逐个优化。这个方法你能在面试中口述出来,分量和光背结论完全不同。
5. 算法部署与性能调优:NPU、量化、内存带宽,嵌入式AI的高墙
AI嵌入式开发是2025年热度最高的话题之一。现在的岗位描述里普遍要求“熟悉深度学习模型在嵌入式平台的部署流程,了解NPU/DSP/GPU加速原理,掌握INT8量化方法”。面试题也从“什么是TensorRT”这种概念题,变成了“如果模型在开发板上推理速度只有5 FPS,要求提升到30 FPS,你怎么调优”。
5.1 模型部署的完整流程
模型部署的高频考点不是模型训练,而是转换和优化流程。典型的流程是:训练框架(PyTorch/TensorFlow)导出模型,转成ONNX,再转成目标平台的IR格式(比如RKNN的.rknn、地平线的.bin等),然后做精度验证和性能测试。面试官会追问“ONNX转RKNN的过程中遇到算子不支持怎么办”。这时候要能回答出几种常用解法和取舍:算子融合、用CPU回退、修改模型结构替换算子,甚至重新训练一个更适配目标平台的轻量网络。
这里建议准备一个端到端的部署案例,比如把一个YOLOv5s检测模型部署到RK3588或者地平线旭日X3上,跑通检测并记录帧率和精度数据。这个案例在面试算法部署岗位时几乎是万能的,因为它覆盖了模型导出、格式转换、量化、后处理、性能调优完整链路。
5.2 INT8量化与精度损失排查
量化的考点很密集:什么是动态量化、静态量化?PTQ和QAT有什么区别?INT8量化后精度掉了怎么办?
2025年的面试官普遍很实际,会给你一组数据:某个分类模型INT8量化后accuracy从92%降到85%,你如何分析?这里要能说出排查思路:首先检查每层激活值的分布,找出量化误差大的层;然后看一下是否需要为敏感层保留FP16计算(混合量化);再检查校准数据集是否具有代表性;最后实在不行就上QAT,在训练阶段就让模型适应量化噪声。能答出这套思路,面试官会觉得你确实踩过算法部署的坑,而不是随手背了些理论。
5.3 CPU/GPU/NPU侧的性能调优手段
性能调优方面,面试官常问:模型在嵌入式设备上跑得慢,如何定位瓶颈?建议分三步走:第一步看模型结构,计算量(FLOPs)和访存量是否平衡;第二步用profile工具看每一层的耗时,找出耗时大户;第三步针对耗时大户做优化,常用手段包括算子融合、内存复用、多线程或异步流水线。
内存带宽是2025年新的热门话题。很多模型在嵌入式平台上慢,不是因为算力不足,而是数据搬运占了大部分时间。要能说清楚“卷积算子的计算密度足够高时,访存开销相对较小,但如果像Concat、Reshape这种对内存搬运敏感的操作太多,整体性能就会被拉下来”。能主动提到“我们通过算子融合把三个小算子合成一个,DDR访问量降低了40%”,这是非常亮眼的项目亮点。
6. 开发工具链与AI辅助开发:VSCode插件、CLion、AI编程工具,面试中的“隐藏加分项”
2025年嵌入式面试有个趋势很值得注意:面试官开始关心你用的是什么工具链,以及你怎么用AI工具提高开发效率。这背后其实考察的是一个人的工程化能力和学习曲线——工具选型能反映你是不是一个跟得上节奏的工程师。
6.1 VSCode嵌入式开发常用插件配置
VSCode在嵌入式开发里已经成了标配编辑器,面试时被问到“你常用的插件有哪些”别只回答一个C/C++插件。一个完整的VSCode嵌入式开发环境通常包括:
C/C++(微软官方,提供IntelliSense、调试支持)Cortex-Debug(用于ARM Cortex-M系列的调试,配合OpenOCD或J-Link)Embedded IDE(国产优秀插件,能直接管理STM32等嵌入式工程,支持SDK下载和编译烧录)clangd(如果你更喜欢LLVM系的代码补全和诊断,可以用它替换微软的IntelliSense,速度更快)Remote-SSH(开发板作为远程服务器,直接在板子上编辑、编译和调试)QEMU相关插件(需要在本地模拟ARM环境时很有用)CMake与CMake Tools(现代嵌入式工程基本都迁到CMake了)GitLens(代码审查和提交记录追踪,团队协作必备)
如果你用的是STM32CubeMX生成工程,配合Embedded IDE可以直接在VSCode里完成开发,完全可以摆脱Keil或IAR的图形界面。面试时能主动说出“我们团队现在统一用VSCode+CMake+Cortex-Debug做开发,编译用arm-none-eabi-gcc,调试用OpenOCD”,会显得你非常专业。
6.2 CLion在嵌入式项目中的实战体验
如果你做的是比较大型的嵌入式Linux项目,CLion也是一个值得重点准备的话题。CLion对CMake的原生支持比VSCode更强,重构和代码分析能力在大型代码库里优势非常明显。JetBrains系的Clion Embedded Development插件配合OpenOCD,能提供完整的板载调试体验。此外CLion对WSL和远程开发(Remote Dev)的支持也很成熟,Linux驱动模块代码可以直接放到服务器上编译,本地做代码索引。
面试时如果被问到“为什么用CLion而不是VSCode”,一个合理的说法是:VSCode胜在轻量、插件生态丰富,适合快速开发和单文件编辑;CLion胜在智能分析和重构能力,适合大型项目的代码维护。这种“工具选型是有意识权衡的结果”的表述,比只吹一个工具高级得多。
6.3 AI辅助嵌入式开发:新考点的应对策略
AI辅助嵌入式开发是2025年兴起的新面试点。面试官会问:你在开发中用AI工具吗?怎么用的?它帮你解决了什么问题?
这里需要有一说一。AI在嵌入式开发里确实能提升效率,但它不是万能的。我的使用经验是:AI尤其擅长处理领域内成熟代码的生成和优化,比如写一个标准的外设驱动初始化代码、查一个file_operations的标准写法、提供CMakeLists的模板,这些AI做得又快又准。但涉及具体硬件寄存器的配置、内核特定版本的API差异、跨平台编译的兼容问题,AI经常会给“看起来对但其实不能用”的代码。这是2025年面试官特别想考察的点——你能不能分辨AI生成代码的质量,能不能在嵌入式的边界约束下修正它。
一个很好的面试应答结构是:先说明你用AI完成的工作(比如让AI帮你生成函数A的循环展开优化版本),再说明你怎么做验证(单元测试、板端跑分、内存检查),最后说一次AI出错你怎么排查的案例(比如AI推荐了usleep在原子上下文使用,你指出这会导致内核异常)。能这样回答,说明你是真正在工程里用AI提升效率的工程师,而不只是一个会“用”工具但不会“判断”工具的初级使用者。
7. 项目经验准备:从“演示demo”到“可量化落地”的升级思路
面试环节里最拉分的就是项目经历。2025年的嵌入式面试,面试官普遍变得非常警惕“包装型简历”——项目一听就是买来的开发板例程或者网课作业。他们反感的不是项目简单,而是候选人说不清楚项目里“为什么这样做”和“遇到问题怎么排查”。
7.1 如何把普通项目讲出亮点
即使是相对简单的项目,也可以靠讲述技巧加分。核心技巧是:项目必须有可量化的结果。不要只说“我写了一个温湿度采集系统”,要说“我用STM32+ESP8266实现了一个低功耗温湿度采集节点,采用Modbus RTU协议与上位机通信,3.3V电池供电下待机功耗12μA,平均工作电流33mA,实测续航9个月”。
面试官听到具体数字,马上会跟进问很多细节,比如:功耗怎么测的?低功耗模式用的什么?唤醒方式是什么?Modbus的CRC校验你怎么实现的?如果你都能对答如流,项目可信度就立住了。所以准备面试时,一定要给每个项目列出“性能指标列表”,包括并发数、延迟、吞吐量、内存占用、功耗、启动时间、裁剪体积等具体数值。
7.2 经典项目选题与面试应答设计
2025年比较吃香的嵌入式项目类型包括:边缘AI视觉识别(如RK3588运行YOLOv5)、低功耗物联网数据采集节点、工业现场总线设备(基于CANopen或Modbus)、音视频采集推流设备、基于Linux的智能家居网关、电机FOC矢量控制、以及设备驱动优化项目。
具体到应答设计,我建议每个项目都按这样的框架准备:
- 项目背景与目标:解决什么业务问题
- 技术选型与原因:为什么用A不用B
- 核心模块拆分:分了几层、每层的职责
- 关键挑战与解决方案:至少三个“踩坑后解决”的案例
- 性能指标与最终效果:用数据说话
- 可优化空间:如果能重来,哪里会改进
这个框架能帮你在面试中把项目讲得像一个真正的工程案例,而不是“我跟教程做了一遍”。
7.3 面试中应对“项目深挖”的三原则
项目深挖阶段,面试官会故意问一些让你压力很大的问题,比如“你这个方案的瓶颈在哪里”“如果数据量再大十倍怎么办”“这部分代码有BUG吗”。应对原则有三个:
第一,诚实承认未覆盖的场景,但立刻补上分析和改进思路。比如问“如果同时1000个设备连接你的网关怎么办”,你说“目前只测了100设备的场景,1000的话我考虑用epoll替换原来的select实现,并且引入消息队列做异步处理”,比硬撑“一定能支持”要好得多。
第二,主动把话题引到你已经准备好的知识点上。当面试官问数据库相关而你不太熟时,可以坦诚说数据库不是我的强项,但在嵌入式里我们更关心存储的持久性怎么做,比如用掉电保护日志和双分区备份方案。这种“把问题转化为自己的主场”的能力很重要。
第三,讲到具体代码时,不要只报函数名,要说出参数、返回值、错误处理逻辑。比如面试官让你介绍你用过的环形缓冲区库,你就可以顺手写一段buf_write的骨架,说明当缓冲区满时返回-ENOMEM,配合中断下半部处理逻辑。能动手写代码的项目介绍,可信度是最高的。
8. 学习路线规划:不同阶段的嵌入式开发者,2025年怎么规划成长路径
最后这部分写给不同基础的读者。嵌入式学习路线在2025年已经有了比较清晰的分层,我按“入门、进阶、资深”三个阶段给出建议。
8.1 入门阶段:硬件基础、C语言、单片机三件套
刚入门的朋友,三个月内主攻三件事:C语言内存模型与指针、常用外设(GPIO、UART、I2C、SPI、定时器、PWM)的使用、一款主流MCU的实际动手(STM32是首选,有官方库和强大的社区资源,后续也可以接触ESP32这样自带WiFi蓝牙的芯片)。这个阶段不要贪多,能独立做一个温湿度采集+串口上报+OLED显示的小项目就是合格的入门。
2025年入门有个新的学习渠道——AI工具辅助入门。你可以让AI解释一段STM32外设代码,快速弄懂每条语句的作用。但一定要注意:不要直接把AI生成的代码烧进板子然后发现不能用,一定要学会读懂寄存器手册和数据手册。AI很难替代读手册的能力,而读手册恰恰是嵌入式工程师的基本功。
8.2 进阶阶段:Linux应用与驱动、系统移植
进阶阶段的目标是从MCU开发跳到嵌入式Linux。建议先用QEMU模拟器跑一个完整的嵌入式Linux系统,了解启动流程、文件系统、脚本执行;接着在真实板卡(树莓派、瑞芯微开发板、全志开发板等)上做交叉编译、内核模块开发、字符设备驱动编写。这个阶段推荐的学习项目是:在开发板上移植一个自定义的RTC驱动,通过设备树描述硬件,并写一个应用层程序通过/dev/rtc0读取时间。这个小项目能把设备树、驱动模型、应用层调用串起来,性价比非常高。
进阶阶段还要刻意训练系统裁剪能力。用Buildroot构建一个最小系统,把不需要的包全部剔除,观察启动时间和内存占用变化。2025年由于边缘设备激增,系统裁剪优化已经成了中高级岗位的重要加分项。
8.3 资深方向:边缘AI、底层调优、系统架构
想冲击资深工程师或者技术专家方向,2025年的主赛道非常明确:边缘AI部署和性能调优。这条路上要掌握的东西包括:主流NPU平台的工具链(Rockchip RKNN、地平线工具链、晶晨Amlogic工具链等)、模型量化方法(PTQ/QAT)、编译器优化、算子融合、异构计算。此外,Linux内核的电源管理(cpuidle、cpufreq)、调度器调优、实时性改造(PREEMPT_RT)也都是资深岗位的考试范围。
这个阶段的面试准备,不要把精力花在背书上。我强烈建议做一两个“大而深”的项目,比如把一个目标检测模型从PyTorch导出到RKNN,运行在RK3588上,实现30 FPS以上的实时检测,并且在项目中解决过至少一个精度或性能问题。有真实调优经验的人,面试时讲的细节和深度完全不同。
9. 2025-2026年嵌入式面试趋势总结与备考节奏建议
这一节相当于给你一个总览性的备考地图,方便你在冲刺阶段对照自检。
现在的嵌入式面试有四个明显趋势:第一,纯C语言题比重下降,但难度上升,更侧重内存安全、并发和工程场景;第二,Linux相关考察从“会调用API”转向“理解内核机制和源码级行为”;第三,AI和嵌入式结合的趋势已从加分项变为部分岗位的必选项;第四,面试官更看重项目真实性,习惯性追问“数据哪来的”“这个方案有对比过其他方法吗”。
备考节奏上,建议分三阶段:第一阶段(两周)主攻C语言和Linux应用基础,把高频笔试题刷透;第二阶段(四周)结合两个核心项目做深度复盘,确保每个项目都能讲出性能数据和调优细节;第三阶段(两周)做模拟面试,重点练习追问环节的临场反应和用词准确性。
另外提醒一个2025年特别常见的坑:很多人简历里写了“熟悉设备树”,但问到他“如果两个设备树的节点有相同的compatible,内核会怎样处理”,直接答不上来。这种基础概念的不扎实,在资深面试官面前很容易被识破。所以宁可少写几个技能标签,也一定要保证写在简历上的每个技术点,都能经得起至少连续三个追问的考验。