职位题库

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

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

388 道题目建议用时 1164 分钟专项面试练习

全部题目 388 道题

97

请举一个你真实遇到困难或逆境的例子,讲清背景、你的应对动作,以及从中学到了什么。

考察候选人的抗压能力、问题解决方式和复盘学习能力。
98

如果任务多且相互冲突,你会怎么判断优先级、安排节奏、同步风险,确保关键交付不失控?

考察候选人的任务管理、优先级判断和风险同步能力。
99

MCU上电运行后,代码、常量、已初始化数据、未初始化数据和临时运行数据一般分布在哪些区域?各区域分别承担什么职责,地址安排通常有什么规律?

考察候选人对MCU内存分区(Flash、RAM、栈、堆、BSS、Data等)的理解,以及链接脚本和启动流程的基本认知。
100

在资源受限的嵌入式系统中,函数调用产生的临时空间与动态申请得到的空间,在分配方式、释放时机、生存期、速度以及潜在风险上有哪些本质区别?

考察候选人对栈和堆在嵌入式环境下的差异理解,包括分配效率、碎片化、确定性和安全性。
101

如果设备偶发死机、复位或进入异常处理,怀疑与调用栈被破坏有关,可以从哪些运行时指标、填充检测、异常现场信息入手排查?工程上怎样降低这类风险?

考察候选人排查栈破坏的实战思路,包括栈填充、水位检测、异常寄存器分析和工程预防措施。
102

长期运行的固件出现可用动态内存越来越少、最终分配失败的情况,通常如何定位和预防?为什么MCU项目更倾向于用静态区域、内存池或固定缓冲来替代频繁动态申请?

考察候选人对长期运行固件内存泄漏和碎片问题的定位能力,以及静态分配、内存池等替代方案的理解。
103

FreeRTOS任务运行一段时间后触发硬件异常,怎样逐步判断根因是否与任务栈余量不足有关?会关注哪些栈水位、溢出检测钩子、异常寄存器或现场信息?

考察候选人对FreeRTOS任务栈管理、溢出检测和硬件异常联动的排查能力。
104

请介绍你在实习中负责的具体工作内容,以及你实际完成的部分。

核实实习经历的真实性与深度,判断候选人是否真正参与过嵌入式开发工作,而非仅做边缘性事务。
105

请解释EB(Embedded Builder)配置的作用,并说明你在项目中如何完成EB配置。

考察候选人对AUTOSAR开发工具链的掌握程度,以及是否具备实际配置MCAL/BSW模块的经验。
106

请描述芯片从上电到应用程序运行的启动流程。

考察候选人对嵌入式系统底层启动机制的理解,包括复位向量、启动代码、时钟初始化、内存初始化和跳转到main函数等关键环节。
107

请解释内存泄露和栈溢出的区别,并说明在嵌入式系统中如何检测和避免它们。

考察候选人对嵌入式内存问题的理解,能否区分堆内存泄露与栈溢出,并掌握常见的检测与预防手段。
108

请说明MPU(内存保护单元)的作用,以及在嵌入式系统中如何配置和使用MPU。

考察候选人对MPU硬件机制的理解,包括区域划分、权限设置、异常处理,以及在实际项目中如何利用MPU提升系统可靠性。
返回面试题库