嵌入式软件工程师的面试,既考查技术深度,也注重实际经验和表达能力。本文整理了一套典型的12题嵌入式面试题,逐一进行深入解析,帮助大家系统梳理知识、规范表达方式、增强答题自信。
1. 自我介绍怎么说?
建议结构化表达,突出关键词:
- 当前/过往工作方向(如Linux驱动开发、RTOS调度、BSP定制);
- 熟悉的平台或芯片(如NXP i.MX系列、STM32);
- 项目中负责的模块(如电源管理、外设驱动、系统移植);
- 补充团队合作能力、学习能力或技术分享经历。
示例模板:
“主要从事嵌入式系统开发工作,熟悉Linux和RTOS平台,曾独立完成多个BSP开发、驱动移植与电源优化项目。对底层调试、系统架构有较强的理解能力,注重代码质量和系统稳定性。”
2. 多核异构是什么?
**多核异构(Heterogeneous Multi-core)**是指一个SoC中包含多种不同架构或能力的核心,例如:
- Cortex-A系列:高性能,运行Linux等操作系统;
- Cortex-M系列:低功耗,运行RTOS,用于实时控制任务。
典型平台如 NXP i.MX8MP:
- A核跑Linux系统,适合图形界面、网络通信等复杂任务;
- M核跑RTOS,负责采样控制、电机驱动等对时序要求高的场景;
- 两者通过共享内存、中断、RPMsg等机制通信。
3. RTOS 与 Linux 同时要使用 I2C,怎么协调控制权?
核心问题是避免两个系统同时访问同一 I2C 控制器,造成总线冲突。
常见解决方案:
- 主从结构(推荐):Linux作为主控,RTOS通过共享内存/RPMsg发送I2C请求,由Linux完成实际访问。
- 时间分片使用:RTOS与Linux访问不同设备,或通过信号同步、锁机制,保证访问互斥。
- 物理隔离:系统中存在多个 I2C 控制器,分别绑定给 Linux 与 RTOS。
4. Linux 下 I2C 驱动框架怎么理解?
I2C 驱动模型由三层组成:
层级 | 功能描述 | 结构体 |
---|---|---|
Adapter | 控制器驱动,操作寄存器 | i2c_adapter |
Client | 表示连接的I2C设备(如EEPROM) | i2c_client |
Driver | 驱动逻辑,负责probe、读写 | i2c_driver |
通过设备树匹配 compatible
字段,系统在启动时完成设备与驱动的自动绑定。
5. 有没有处理过系统调度问题?
常见的调度问题如:
- UI卡顿;
- 后台任务耗时高;
- 实时任务被延迟。
处理方法包括:
- 调整线程优先级或使用实时调度策略(如
SCHED_FIFO
); - 使用 CPU 亲和性避免高负载线程集中在某个核心;
- 用
top
、htop
、perf
工具分析瓶颈来源。
6. 系统卡顿,怎么排查?
排查思路五步走:
- CPU负载:
top
查看是否高占用; - 内存问题:是否频繁swap或发生OOM;
- IO问题:
iotop
查看是否某进程读写阻塞; - 中断/驱动问题:查看
/proc/interrupts
、dmesg
日志; - 使用perf分析函数耗时:查找热点函数或系统调用瓶颈。
7. 对 RTOS 的实时性了解多少?
RTOS(如FreeRTOS、ThreadX)特点是:
- 响应时间可控,满足硬实时要求;
- 支持任务优先级调度;
- 中断响应快,任务切换延迟低(μs级);
- 适合采样、控制等时间敏感任务。
举例:一个定时200Hz的电机控制任务,RTOS可以保持周期稳定、延迟小于50us。
8. 遇到过比较复杂的问题吗?
答题建议:
- 表达清楚问题、过程、定位、解决;
- 展示逻辑能力、分析手段。
实例:
触摸屏偶尔断连,初判为硬件故障,后用逻辑分析仪发现SPI片选信号提前释放,驱动中补充片选延时后解决。体现了软硬结合调试思维。
9. 电机控制一般怎么实现?
常见控制手段:
- PWM 控制速度;
- GPIO 控制方向;
- 编码器 获取反馈;
- PID 控制器 实现闭环控制。
结合RTOS调度定时任务 + 外设中断读取编码器,是常见的电机控制实现方案。
10. 有做过电源管理相关的吗?功耗怎么优化?
常见的功耗优化手段:
- PMIC 配置:控制输出电压、顺序;
- Regulator 框架:在Linux中动态启停供电;
- DVFS:根据负载调整CPU频率/电压;
- Runtime PM:设备空闲时自动挂起;
- 休眠唤醒流程调试:使系统进入 suspend 节能状态。
应用中通常能将系统功耗从几瓦降至亚瓦级。
11. 加班能接受吗?
建议表达方式:
“可以接受适度加班,特别是在项目节点或问题集中阶段,重视效率与结果导向。”
12. 有什么想了解的?
可从以下角度提问:
- 团队协作模式(是否Code Review、CI/CD流程);
- 项目开发周期与交付方式;
- 公司对嵌入式/边缘AI/车载/低功耗方向的发展规划;
- 岗位是否有横向学习或平台支持机制。
总结
这12个问题覆盖了嵌入式岗位常见的技术、项目与软技能考察点。建议结合自身经验准备个性化答案,同时掌握通用答题框架,灵活应对各种面试场景。
欢迎分享给身边的嵌入式朋友,也欢迎在评论区讨论你的高频面试题!
📺 视频教程请关注 B 站:嵌入式 Jerry
📘 更多技术资料可关注同名公众号“嵌入式 Jerry”获取