职位题库

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

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

383 道题目建议用时 1149 分钟专项面试练习

全部题目 383 道题

253

进程和线程有什么区别?各自的通信方式有哪些?

考察操作系统基础,以及能否清晰区分进程/线程的资源和通信机制。
254

互斥量和信号量有什么区别?分别用在什么场景?

考察对同步原语本质区别的理解,以及在实际 RTOS 场景中的选型能力。
255

Linux 的进程调度是怎么工作的?schedule 函数什么时候被调用?

考察对 Linux 内核调度器工作机制和调度时机的理解,属于二面深度问题。
256

请解释Flash为什么写之前要先擦除,页和块分别是什么,为什么不能按字节随便擦?

考察对Flash物理特性的理解,是否知道擦除粒度、页/块结构以及写前擦除的根本原因。
257

文件调用write返回成功,数据就一定进存储介质了吗?请结合page cache、脏页、后台回写和fsync说明。

考察对文件系统写路径和持久化语义的理解,是否知道write成功不等于落盘,以及fsync的作用和边界。
258

DMA读写缓冲区时为什么要考虑Cache一致性?如果CPU已改缓存但DMA读到旧数据,怎么处理?

考察对DMA与Cache交互的理解,是否知道CPU访问Cache而DMA访问内存导致的数据不一致,以及常见处理方法。
259

请实现一个固定大小的环形缓冲区,不允许动态申请内存,支持写入、读取,并能判断空和满;如果中断里写、任务里读,如何保证数据不乱?

考察C编码能力、环形缓冲区边界处理,以及在中断与任务并发场景下的同步设计。
260

面试官问你“你怎么确定那次采样间隔不稳定,跟串口打印有关?”时,你会怎么回答?

考察候选人能否针对具体排查问题给出结论先行的回答,并展示从现象到验证的完整定位过程,而非泛泛介绍项目背景。
261

请介绍一下你的项目,并说明你自己主要负责哪部分。

考察候选人能否用简短结构介绍项目,突出个人职责而非罗列全部功能,并能根据面试官兴趣灵活展开。
262

当面试官的问题有歧义时,你会怎么确认并回答?

考察候选人能否在不确定问题指向时先澄清再回答,避免抢答和答非所问,同时不过度仪式化。
263

请简单介绍一下你自己。

考察候选人的自我认知、表达能力和与岗位的匹配度。
264

你发表的论文主要做了什么?

考察候选人的科研能力、技术深度以及表达复杂问题的能力。
返回面试题库