职位题库

嵌入式开发工程师面试题库

面向嵌入式开发工程师相关面试,围绕C语言、RTOS、中断、DMA、内存管理等主题展开练习,结合题目考察点、回答思路、参考答案和常见误区,梳理知识要点并练习清晰表达。

212 道题目建议用时 636 分钟专项面试练习

全部题目 212 道题

169

你在项目中使用 FreeRTOS 的锁或信号量时,它到底保护了什么?如果去掉会怎样?

考察候选人是否理解并发保护的对象、临界区边界和错误现象,而不是只会调用 API。
170

请说明你项目中 UART/SPI/I2C 的时序关键点,以及错误处理和 DMA 的使用取舍。

考察候选人是否真正理解总线时序、主从关系、错误恢复,以及轮询、中断、DMA 的适用场景。
171

你的项目写了“实时”,请说明最坏执行路径和任务优先级是如何设计的。

考察候选人是否理解实时性的可度量含义,能否识别最坏路径、优先级分配和阻塞来源。
172

如果项目需求变更后出现偶发异常,你会如何从内存、时序和并发三个方向定位?

考察候选人是否具备系统化排错框架,能否把现象映射到内存、时序、并发和启动链路。
173

从复位到进入 main 函数之间,系统经历了哪些关键环节?

考察候选人是否理解启动链路,而非只会写应用层代码。
174

UART 从发送一个字节到线上电平变化,中间经过哪些环节?

考察外设工作机制与时序理解,而非只会调库。
175

项目里写了“实时”,你如何说明最坏执行路径和优先级设计?

考察候选人是否真正做过实时系统设计,而非把“实时”当标签。
176

结构体为什么会出现解析错位?如何从内存和对齐角度排查?

考察 C 语言内存模型与实际问题定位能力。
177

volatile 关键字在嵌入式项目中的实际使用场景是什么?请结合你的项目说明为什么某个变量需要加 volatile,不加会出现什么现象。

考察候选人是否真正在代码中使用过 volatile,理解其解决的实际问题,而非仅背诵定义。
178

DMA 传输中,如果 CPU 还没处理完上一批数据,下一批数据又到了,你会怎么设计缓冲?请说明双缓冲的思路和取舍。

考察候选人对 DMA 与 CPU 并发访问缓冲区的理解,以及双缓冲设计的实际掌握程度。
179

队列满了的时候,你会丢新数据还是丢旧数据?请结合具体场景说明你的选择和理由。

考察候选人对异常路径的设计思路,以及在资源受限场景下的取舍能力。
180

设备升级过程中断电,重新上电后你如何保证系统能恢复到可用状态?请说明你的设计思路。

考察候选人对升级异常路径的设计能力,包括状态管理、校验与回滚机制。
返回面试题库