嵌入式高频考点总结:面试官最爱问的都在这里
嵌入式岗位的面试,有一个非常明显的特点:考点高度集中、重复率极高。很多人项目做了一堆,但一到面试却频频翻车,本质原因不是不会做,而是对“基础高频点”掌握不扎实。
这篇文章帮你系统梳理嵌入式面试中最常见、最核心的考点,按模块拆解,一次吃透。
一、C语言:嵌入式的“地基”
1. 指针(必考中的必考)
常见问题:
- 指针和数组的区别?
- 野指针、悬空指针是什么?
- 二级指针的使用场景?
- 函数指针怎么用?
👉 面试本质:考你是否真正理解内存模型。
2. const、volatile、static
- const:只读语义 vs 编译期常量
- volatile:防止编译器优化(硬件寄存器必备)
- static:局部:延长生命周期全局:限制作用域
👉 高频追问:volatile为什么在中断和寄存器中必须使用?
3. 内存管理
- 栈 vs 堆
mallocvsfree- 内存泄漏如何排查?
👉 嵌入式加分点:
- 为什么很多嵌入式系统不用malloc?
- 内存碎片问题怎么解决?
核心嵌入式面试八股文总结:https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk
4. 结构体与对齐
- 结构体内存对齐规则
sizeof计算- 位域(bit-field)
👉 常见坑:不同编译器对齐策略不同。
二、操作系统(RTOS):进阶分水岭
1. 任务(Task)与调度
- 任务状态:就绪 / 运行 / 阻塞
- 抢占式 vs 时间片轮转
👉 高频问题:高优先级任务为什么会“饿死”低优先级任务?
2. 进程 vs 线程(必问)
- 资源分配 vs 调度单位
- 地址空间是否共享
👉 标准答案关键点:
- 进程:独立内存
- 线程:共享内存
3. 线程同步与互斥
- 互斥锁(Mutex)
- 信号量(Semaphore)
- 事件组
👉 高频陷阱:
- 死锁产生的四个条件
- 如何避免死锁?
4. 中断机制
- 中断响应流程
- 上下文保存与恢复
- 中断 vs 轮询
👉 面试核心点:
- 为什么中断里不能做复杂操作?
- 为什么中断里不能用printf?
三、硬件基础:拉开差距的关键
1. GPIO
- 输入 / 输出模式
- 上拉 / 下拉电阻作用
👉 高频问题:为什么需要上拉电阻?
2. 常见通信协议
UART(串口)
- 异步通信
- 波特率
SPI
- 主从模式
- 全双工
I2C
- 起始位 / 停止位
- ACK机制
👉 面试常问:
- SPI和I2C区别?
- 哪个更快?为什么?
3. 定时器 / PWM
- 定时器原理
- PWM生成方式
👉 实战问题:
- 如何用PWM控制电机速度?
4. ADC / DAC
- 模数转换原理
- 分辨率 vs 精度
四、嵌入式系统核心能力
1. Boot流程(非常高频)
- 上电 → Bootloader → Kernel → 应用
👉 常见问题:
- Bootloader的作用?
- 可以没有Bootloader吗?
2. 驱动开发基础
- 字符设备驱动
- 文件操作接口(open/read/write)
👉 加分点:
- Linux驱动模型(设备树)
3. 内存映射
- MMIO(Memory Mapped IO)
👉 高频问题:
- 为什么外设可以像变量一样访问?
4. 看门狗(Watchdog)
- 防止系统死机
👉 面试常问:
- 如果程序跑飞,看门狗如何处理?
五、常见“综合类问题”(压轴题)
这些问题最能区分水平:
1. 系统卡死怎么排查?
优秀回答思路:
- 是否死循环
- 是否死锁
- 是否内存耗尽
- 是否中断异常
2. 如何优化系统性能?
可以从:
- 算法优化
- 减少中断时间
- 使用DMA
- 优化任务优先级
3. 功耗优化怎么做?
- 低功耗模式
- 外设按需开启
- 降低主频
六、面试官真正想考什么?
总结一下,所有问题的核心其实就三点:
1. 你是否理解底层?
不是会用API,而是知道:
- 为什么这样设计?
2. 你是否具备工程思维?
不是“能跑”,而是:
- 稳定吗?
- 可扩展吗?
- 出问题怎么办?
3. 你是否有调试能力?
嵌入式最重要的能力之一:
👉 定位问题 > 写代码
结语:抓住高频点,比盲目做项目更重要
嵌入式面试不是“考偏题”的领域,而是一个:
谁基础扎实,谁就赢一半
与其做10个重复项目,不如把这些高频考点真正吃透。
当你能把每一个问题讲清楚“原理 + 场景 + 解决方案”,你就已经超过大多数面试者了。

查看6道真题和解析