嵌入式工程师技术面试有哪些注意事项
时间:2025-11-27 来源:华清远见
1. 夯实基础,构建知识体系
嵌入式开发的核心是“软硬结合”,以下知识点必须牢固:
C/C++语言:
关键字与语法:static, const, volatile 的作用和区别(volatile必考)。
指针:指针与数组的区别、函数指针、多级指针、void *的作用。
内存管理:堆与栈的区别、内存布局(代码段、数据段、BSS段等)、内存泄漏、内存碎片。
预处理器:宏定义(带参数的宏、宏的副作用)、条件编译。
结构体:字节对齐、位域。
微处理器与体系结构:
ARM架构:了解Cortex-M/R/A系列的区别和应用场景(MCU常用Cortex-M)。
中断机制:中断流程(保存现场、处理、恢复现场)、中断向量表、中断嵌套、中断延迟。
存储系统:ROM、RAM、Flash(Nor/Nand)的特点和区别。
外设与接口:
必须熟练掌握:UART, I2C, SPI, GPIO。
了解其工作原理:USB, CAN, Ethernet。
能说出协议细节,如I2C的起始/停止信号、ACK/NACK,SPI的四种模式等。
操作系统:
Linux内核:进程/线程调度、同步机制(互斥锁、信号量、自旋锁)、内核空间与用户空间、系统调用、设备树。
实时操作系统:至少精通一种,如FreeRTOS, uC/OS。
任务调度机制(优先级、时间片)。
任务间通信(队列、信号量、事件标志组、互斥量)。
内存管理(堆管理、静态分配)。
优先级反转问题及解决方案(如优先级继承)。
底层驱动与调试:
能看懂原理图、数据手册。
知道如何配置寄存器来控制外设。
调试手段:熟练使用示波器、逻辑分析仪排查硬件问题;熟练使用JTAG/SWD调试器;掌握printf/日志调试法。
2. 深入复盘个人项目
这是面试的重中之重,决定了你的经验成色。
使用STAR法则 准备1-2个你最熟悉的项目:
S:项目背景和目标。(为什么做这个?)
T:你的具体任务和职责。(你负责什么?)
A:你采取的行动和关键技术决策。(你是怎么做的?用了什么芯片、什么OS、什么协议?遇到什么具体问题?如何分析并解决的?)
R:项目的最终结果和你的贡献。(性能提升了多少?功耗降低了多少?稳定性如何?)
突出亮点:在项目中你做的最复杂、最具挑战性的部分。例如:
优化了Bootloader启动时间。
解决了某个棘手的内存溢出问题。
设计了一个高精度的定时/计数方案。
调试通了一个不稳定的I2C通信。
3. 动手能力与编程练习
手写代码:准备在白板或纸上写代码。
常考题:字符串操作、链表操作、位操作、简单的数据结构(如环形缓冲区)。
注意代码风格、边界条件检查、错误处理。
理解编译过程:从源代码到可执行文件的步骤(预处理、编译、汇编、链接)。
二、 面试中的表现与沟通
1. 清晰的沟通与表达
先总后分:回答问题时,先给出结论或概要,再展开细节。
不懂就问:如果问题描述不清晰,一定要主动询问,确认需求,这本身也是解决问题能力的体现。
承认知识的边界:遇到完全不会的问题,不要瞎猜。可以说“这个领域我了解不深,但我猜测可能是……,如果需要,我可以后续学习研究”。诚实比虚伪更有价值。
2. 展现解决问题的思路
面试官更看重你如何思考,而不仅仅是答案本身。
分析问题:当被问到一个复杂问题时,不要急于回答。可以边思考边说出你的分析过程。
“这个问题可能和中断有关,因为……”
“我先检查一下内存使用情况,可能是……”
从简单到复杂:提出多种解决方案,并分析其优缺点。例如,优化性能时,可以先说软件优化,再说硬件加速方案。
3. 代码编写的规范性
在手写代码环节:
先理清思路:和面试官确认函数接口、输入输出。
写注释:关键步骤写上注释。
检查:写完后再检查一遍,特别是边界条件(空指针、数组越界等)。
三、 常见技术问题举例
基础概念类:
static 关键字在C语言中有哪几种用法?
const 和 volatile 可以一起用吗?为什么?
什么是内存对齐?为什么需要内存对齐?
中断服务程序里为什么不能调用printf或进行动态内存分配?
场景分析类:
一个产品偶尔会死机,你如何定位和解决?
在测量一个脉冲宽度时,发现读数不稳定,可能是什么原因?(可能涉及中断延迟、信号抖动、软件去抖算法等)
如何设计一个高效的、多任务共享的环形缓冲区?
编程实现类:
写一个函数,实现字符串反转。
写一个宏,计算数组的元素个数。
用C语言实现一个简单的位图管理。
四、 面试结尾的提问环节
不要只说“我没有问题了”。这是你了解公司和团队的好机会。
可以问的问题:
“我应聘的这个岗位,目前团队遇到的最大技术挑战是什么?”
“团队目前主要使用的技术栈是什么?(如主控芯片、RTOS/Linux、开发环境)”
“新员工入职后,会有怎样的培训或导师制度?”
“产品的开发流程是怎样的?( Agile/Waterfall?)”
避免问的问题:
直接问薪资、加班费(这些通常由HR谈)。
在公司官网能轻易查到的信息。
五、总结


