职位题库

嵌入式软件工程师面试题库

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

456 道题目建议用时 1368 分钟专项面试练习

全部题目 456 道题

397

结合你观察到的新趋势或项目中的实际需求,你最想用AI改进哪项具体任务?为什么选这个方向,又如何核验和调整AI输出?

考察候选人对AI工具的实际应用意识、方向选择理由,以及核验AI输出的严谨性。
398

讲一次你为弄懂某个问题主动钻研的过程:如何查找资料,又如何用事实或尝试验证自己的理解?

考察候选人的自主学习路径、信息筛选能力,以及用实验或事实验证理解的习惯。
399

请介绍一个你负责的MCU+RTOS项目,说明芯片与系统选型、你负责的模块,以及数据从采集到发送的完整链路。

考察候选人能否把项目讲成可验证的工程链路,明确个人职责、数据流和关键设计取舍。
400

请实现一个环形缓冲区,并说明单任务写入与另一任务读取时,需要额外考虑哪些并发问题。

考察候选人能否正确实现环形缓冲区的判空判满,并进一步分析单生产者单消费者场景下的并发安全。
401

I2C 的完整通信时序是什么?起始信号、停止信号、ACK 和 NACK 怎么产生?

考察对 I2C 物理层和协议时序的掌握,以及主从设备如何产生应答信号。
402

Linux 的 platform 总线、设备和驱动之间是什么关系?设备是怎么和驱动匹配的?

考察对 Linux 设备模型的理解,尤其是 platform 总线匹配机制和设备树在其中的作用。
403

在一个新的开发板上接入 I2C 传感器,从设备树到驱动注册,大致需要做哪些工作?

考察把设备树、I2C 子系统和驱动注册串起来的完整工程能力。
404

请结合一个MCU+RTOS项目,完整讲清数据从采集到发送的处理链路,包括经过的中断、任务和缓冲区。

考察候选人能否把项目讲成可验证的数据流,而非功能罗列;关注中断、任务、缓冲区之间的协作与边界。
405

请解释C++中static关键字的含义,并说明static变量在内存中的布局。

考察对static语义(存储期、链接性、初始化时机)及程序内存分区的准确理解,避免把static误解为不可变。
406

请解释同步与互斥的区别,并举例说明在嵌入式开发中如何实现。

考察对并发基本概念的清晰理解,以及将概念映射到实际机制(锁、信号量、条件变量)的能力。
407

请解释TCP与UDP的区别,以及TCP粘包/拆包的原因和处理方式。

考察传输层协议特性理解,以及面向字节流与面向数据报对应用层组包的影响。
408

请介绍一个你印象最深、收获最大的项目,并说明你的具体贡献。

考察候选人对项目全貌的掌握程度、个人贡献的真实性以及技术深度。
返回面试题库