嵌入式面试线路
[ 2025.4.22更新 ]
嵌入式工程师面试学习线路(七阶段低层高压高精尖修炼法)
🎯 目标:掌握嵌入式开发核心技能,包括 C 语言能力、MCU 编程、外设驱动、RTOS、多任务调度、软硬件协同与系统调优,胜任中高级嵌入式研发岗位。
第一阶段:C语言与底层编程能力
目标:你的 C 语言不只是能运行,而是能运行在 32KB ROM 的芯片上。
1. C 语言硬核能力
- 指针、数组、结构体、共用体、位运算
- const/volatile/static/register 的区别与用法
- 内存对齐、字节序、大端小端
2. 编译原理浅识
- 预处理、编译、链接流程
- inline、宏定义、编译优化参数
3. 面试高频
- volatile 的作用?在哪些情况下必须用?
- 如何实现位段操作?写个宏?
第二阶段:单片机与底层硬件操作
目标:你能在没有操作系统的世界里优雅地点个灯
1. 常用芯片平台
- STM32、51、ESP32、NXP、TI 等常用 MCU
- 内部结构(Flash / SRAM / GPIO / NVIC)
2. 底层开发基础
- GPIO 控制、PWM 调速、ADC 采样、UART/USART 串口通信
- 硬件中断、轮询 vs 中断处理机制
3. 面试常问
- 如何配置一个定时器?
- NVIC 是干嘛用的?
第三阶段:驱动开发与常用外设控制
目标:你能写出不死机的设备驱动,不仅能用,还能 debug。
1. 外设控制
- I2C、SPI、CAN、USB、RS485 的区别与驱动机制
- DMA 机制、环形缓冲区管理
2. 编写驱动
- 寄存器操作 vs HAL 库 vs LL 库
- 如何封装一个传感器驱动模块
3. 面试考点
- I2C 为什么容易掉数据?
- 什么是 DMA?你用它干了啥?
第四阶段:RTOS 与多任务系统
目标:不会写 RTOS,不好意思说你搞嵌入式的
1. 常用 RTOS 体系
- FreeRTOS / RT-Thread / LiteOS / UCOS-II
- 任务调度原理、抢占式 vs 时间片、优先级反转
2. 多任务机制
- 信号量、消息队列、互斥锁、事件组
- 任务同步与通信
3. 面试必问
- 任务 A 和任务 B 同时读一个变量,你咋办?
- 说说 RTOS 如何调度任务的?
第五阶段:嵌入式 Linux 基础
目标:你不能只做“裸机人”,得学会进化成“驱动仔”
1. 嵌入式 Linux 结构
- U-Boot → Kernel → RootFS 启动流程
- BusyBox、init、udev、devfs
2. 驱动与设备树
- 字符设备驱动编写
- 设备树配置、platform driver 匹配机制
3. 面试核心
- Linux 驱动中的 probe 函数什么时候触发?
- 什么是设备树?能不能不用它?
第六阶段:调试技巧与系统优化
目标:开发不可怕,死机才是。调得明白,才叫真本事。
1. 调试方法
- JTAG/SWD 仿真调试、串口 log 打印
- 使用 GDB / ST-Link / J-Link
2. 系统优化
- 启动优化:裁剪代码体积,模块懒加载
- 运行优化:内存池管理、低功耗模式配置
3. 面试地狱题
- 死机了怎么办?如何定位?
- 堆栈溢出怎么预防和检测?
第七阶段:项目实践与系统架构能力
目标:把一个产品从需求推到板子上跑起来,然后撑得住迭代和维护
1. 项目经验
- 模块划分、驱动接口抽象、状态机设计
- bootloader 编写、OTA 升级实现
- 串口/网络协议设计(Modbus/自定义协议)
2. 系统设计能力
- 如何构建可维护、可扩展的嵌入式系统架构
- 异常容错机制设计
3. 面试综合题
- 请设计一个温湿度采集 + OLED 显示 + 蓝牙传输系统
- 怎么实现安全可靠的远程 OTA?
附录:面试高频问题 TOP 10
- volatile 是干嘛的?为什么不能少?
- I2C 通信不通了,你怎么查?
- RTOS 中任务间怎么通信?有没有用错的经验?
- 什么是优先级反转?怎么解决?
- 怎么写一个内存池?能防止内存碎片吗?
- 死机了你第一步看什么?你常用啥调试工具?
- FreeRTOS 中 Tick Hook 有什么用?
- 一个传感器挂了,怎么让系统“软报错”而不死掉?
- 你怎么做功耗优化的?用过低功耗模式吗?
- 你做过哪些和驱动相关的重构?为啥?
推荐工具 & 实战资源
- 📚《嵌入式 C 编程与实践》《深入理解 FreeRTOS》《STM32开发指南》
- 🧠 社区:CSDN 嵌入式频道、知乎 RT-Thread/STM32 标签、Gitee OpenHarmony 驱动仓库
- 🛠️ 工具链:
- Keil / STM32CubeMX / PlatformIO
- J-Link / ST-Link / OpenOCD / GDB
- 🎮 项目:
- 多任务 OLED 系统显示控制台
- FreeRTOS + MQTT 远程通信
- 嵌入式 OTA + Bootloader 升级方案