kekeZack 390f5516b0 docs: 主题清单扩充至4批46项——参考B站嵌入式面试真经44集 1 month ago
..
README.md 9777b6f4f3 docs: 双轨策略 v6——MCU实习立即投+Linux持续学,里程碑加速至2026年内实习 1 month ago
面试八股主题元学习法.md 390f5516b0 docs: 主题清单扩充至4批46项——参考B站嵌入式面试真经44集 1 month ago

README.md

嵌入式面试准备

嵌入式 C、Linux、RTOS、STM32 面试题库和学习资源。


面试题库

项目 星数 说明 链接
Embedded-Systems-and-Linux-Interview-Questions 64 嵌入式系统、Linux BSP、内核、ARM 架构、C 语言面试题合集 https://github.com/vishnumotghare/Embedded-Systems-and-Linux-Interview-Questions
everything-about-c-for-embedded-systems 8 C 语言嵌入式系统完整学习路径:基础→固件→Linux 系统编程→驱动→RTOS https://github.com/ashwini1890/everything-about-c-for-embedded-systems
awesome-embedded-linux 416 ✨嵌入式 Linux 精选资源合集,含构建系统、调试、驱动、测试、安全等 https://github.com/fkromer/awesome-embedded-linux
Awesome-Embedded 25 🔥嵌入式学习工作室全系列教程和子仓库索引(中文) https://github.com/Awesome-Embedded-Learning-Studio/Awesome-Embedded
interview(C/C++) 经典 C/C++ 面试知识总结:指针、内存、编译、链接、面向对象、STL https://github.com/huihut/interview
CS-Notes 经典 计算机基础面试全家桶:OS、网络、数据库、算法、系统设计 https://github.com/CyC2018/CS-Notes

按方向复习路线

C / C++ 基础(你当前 2 级,目标 3 级)

等级 能做什么 推荐资源
1-2 级 能写基本函数,指针理解有限 《C Primer Plus》前10章 + 面试基础50题
2-3 级 能写链表、结构体,理解指针和内存分配 《C和指针》 + huihut/interview C部分
3-4 级 能处理回调函数、函数指针、编译链接过程 《C专家编程》 + 阅读 Linux 内核代码片段
4-5 级 能分析段错误、栈溢出、字节对齐、缓存一致性 CSAPP + Linux 内核源码

操作系统基础(你当前 1 级,目标 2-3 级)

  • 进程 vs 线程、上下文切换、调度算法
  • 内存管理:虚拟内存、分页、分段、MMU
  • 同步与互斥:信号量、互斥锁、条件变量、死锁
  • 文件系统:VFS、inode、文件描述符
  • 中断与异常、用户态 vs 内核态
  • 推荐:CS-Notes 操作系统篇 + 《Linux 内核设计与实现》

计算机网络(你当前 1 级,目标 2 级)

  • TCP 三次握手 / 四次挥手、状态机
  • TCP 流量控制、拥塞控制(慢启动、拥塞避免、快速重传)
  • UDP vs TCP 适用场景
  • HTTP / HTTPS / DNS 基本流程
  • Socket 编程模型(阻塞、非阻塞、多路复用 select/epoll)
  • 推荐:CS-Notes 网络篇 + 《TCP/IP 详解 卷1》

嵌入式 Linux 面试高频

主题 关键考点
Bootloader U-Boot 启动流程、设备树传递
Linux 内核启动 内核解压、init 进程、initrd
驱动模型 字符设备注册、file_operations、设备树匹配
内存管理 slab、kmalloc/vmalloc、DMA、cache 一致性
中断 上半部/下半部、tasklet、workqueue、线程化中断
调试 printk、kdump、kgdb、strace、perf
交叉编译 工具链、Makefile 交叉编译、根文件系统构建
RTOS vs Linux 实时性、调度策略、优先级反转

通信协议面试

协议 应掌握内容
UART 波特率、起始/停止位、奇偶校验、硬件流控 RTS/CTS
I2C SCL/SDA、7位/10位地址、ACK/NACK、多主机仲裁、时钟拉伸
SPI 全双工、4线模式、片选、时钟极性(CPOL)/相位(CPHA)
CAN CAN 2.0 帧格式、仲裁机制、错误处理
TCP/IP 三次握手、四次挥手、滑动窗口、拥塞控制

推荐刷题平台

平台 用途
LeetCode 热题 100 / 剑指 Offer 算法面试基础(你计划刷最热200题)
牛客网嵌入式面试面经 嵌入式真实面试题目汇总
huihut/interview C/C++ 八股文速查

MCU/FreeRTOS 面试专项(2026 实习方向)

如果你已做完 ZET6 FreeRTOS 项目,以下是你面试 MCU 岗位最可能被问到的。

C 语言(嵌入式面试 80% 在这里刷人)

主题 考点 自检问题
const const int/int const/const int* const 区别 写个函数参数用 const 保护传入数据
volatile 用于寄存器变量、中断共享变量 为什么中断里用的变量要加 volatile
static 局部/全局/函数 static 的区别 static 局部变量存在哪个段
结构体对齐 #pragma pack, 内存对齐规则 sizeof(struct) 是多少,怎么算的
字节序 大端小端 写个 union 判断系统是大端还是小端
函数指针 回调函数、函数指针数组 用函数指针实现 switch-case 的替代
位操作 宏定义置位/清位/翻转 #define SET_BIT(reg, bit) 怎么写
malloc 嵌入式能不能用 为什么 FreeRTOS 有自己的 pvPortMalloc
指针 vs 数组 sizeof 区别、传参区别 char a[] vs char *p, sizeof 各是多少

FreeRTOS(MCU 嵌入式岗必考)

主题 考点
任务状态机 Ready/Running/Blocked/Suspended 各自什么条件下切换
调度算法 抢占式什么时候触发、时间片怎么分配
优先级反转 什么是优先级反转?怎么解决(优先级继承协议)
临界区 taskENTER_CRITICAL 做了什么(关中断)、对实时性有什么影响
IPC 选型 队列 vs 信号量 vs 互斥锁 vs 事件组 vs 任务通知——各适合什么场景
任务通知 为什么任务通知比信号量更快(直接传递事件,不经过队列)
堆栈估算 任务栈大小怎么确定、uxTaskGetStackHighWaterMark 怎么用
中断与任务通信 中断里怎么给任务发数据(xQueueSendFromISR、xSemaphoreGiveFromISR)

STM32

主题 考点
中断优先级 NVIC 分组、抢占优先级 vs 子优先级、HAL 中断回调流程
DMA 传输模式(普通/循环/存储器到存储器)、DMA 中断
时钟树 HSI/HSE/PLL 的关系、SYSCLK/AHB/APB1/APB2 频率配置
HAL vs LL HAL 重(抽象好移植)、LL 轻(直接寄存器、性能高),何时选哪个
I2C/SPI/UART 三者的区别、何时选哪个、有没有遇到过通信失败的问题

刷题资源

资源 说明
huihut/interview C/C++ 八股速查
牛客网嵌入式面经 真实面试题目汇总
LeetCode 热题 100 算法基础(嵌入式岗考得少,但大厂会考)

2026-07-30 更新:新增 MCU/FreeRTOS 实习面试专项。