嵌入式秋招准备重点:一份可执行的复习清单

秋招不是“把书看完”,而是让面试官在 30–60 分钟内相信:你能独立Bring-up一块板子、能定位问题、能在约束下写出可靠代码。下面按优先级整理准备重点,并给出可落地的复习方式。

一、先搞清楚:秋招嵌入式到底考什么

常见岗位方向会分叉,但底层能力高度重叠:

MCU/裸机/RTOS

嵌入式软件、单片机开发

C语言、外设、中断/DMA、RTOS、调试

Linux嵌入式

嵌入式Linux、驱动开发

C、Linux基础、驱动模型、设备树、内核常识

软硬结合

嵌入式系统、FPGA协作

协议、时序、原理图阅读能力、联调经验

准备策略:主投 1 个主方向 + 1 个备选方向,不要三条线同时浅尝辄止。简历和项目叙事也要跟着主方向走。

二、必须打牢的“硬通货”

1. C 语言(几乎每场必考)

重点不是语法背诵,而是:

  • 指针、数组、结构体、内存布局(栈/堆/全局)
  • const / volatile / static 的含义与使用场景
  • 位操作、宏、内联、对齐与 sizeof
  • 常见坑:野指针、越界、未初始化、重复释放、整数溢出

自测题方向:给定一段代码,问输出、问 UB、问如何改得更安全。

嵌入式大厂面试题,基础八股文资料合集整理:

https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk

2. 计算机基础(决定你能不能把话说清楚)

  • 数据结构与算法:链表、栈队列、排序查找;LeetCode 以“简单+中等”为主,嵌入式不必刷到竞赛水平,但要写得出来、讲得清复杂度。
  • 计网(IoT/网关岗更重):TCP/UDP、三次握手、粘包、超时重传概念即可。
  • 操作系统概念:进程/线程、调度、互斥锁、死锁、优先级反转——RTOS 和 Linux 都会用到同一套语言。

3. MCU 与外设(MCU 岗核心)

按“能画图、能写初始化顺序、能排错”来准备:

GPIO/时钟/复位

能说明上电后时钟树、外设使能顺序

中断/NVIC

优先级、嵌套、ISR 里该做什么不该做什么

UART

波特率计算、环形缓冲、printf 重定向

SPI/I2C

模式、时序、多从机、常见芯片读写流程

Timer/PWM

频率计算、输入捕获、输出比较

ADC/DAC

采样、滤波、DMA 搬运

DMA

内存↔外设、双缓冲、Cache 一致性(Cortex-M7 必考)

Flash

擦写粒度、磨损、OTA 基本概念

面试高频:中断 vs 轮询 vs DMA 怎么选?为什么 ISR 要短?HardFault 怎么查?

4. RTOS(FreeRTOS 最常见)

  • 任务、就绪表、时间片、调度时机
  • 信号量、互斥量、队列、事件组的使用场景
  • 优先级反转、死锁、栈溢出检测
  • 中断里能否调用 FromISR API

项目加分:能讲清楚“为什么用 RTOS、任务怎么划分、栈大小怎么估”。

5. Linux 与驱动(Linux 岗核心)

  • 用户态:文件 IO、select/poll/epoll、多线程、进程间通信概念
  • 内核态:字符设备、platform 驱动、中断顶半部/底半部、内核锁
  • 设备树:节点、属性、compatible、与驱动匹配关系
  • 调试:dmesg/procftrace、逻辑分析仪/示波器联调经验

不必背完整内核源码,但要能从应用一路追到驱动再到硬件。

三、项目:秋招里最能拉开差距的部分

什么样的项目算“能打”

面试官更认这类项目:

  1. 有完整链路:需求 → 方案 → 实现 → 测试 → 问题复盘
  2. 能讲清 trade-off:为什么用 DMA、为什么选这个协议、为什么这样分任务
  3. 有踩坑故事:Cache 导致读错、SDRAM 时序不稳、LTDC 花屏、CAN 丢帧等——以及你怎么定位的

推荐项目类型(选 1–2 个做深)

  • 基于 RTOS 的数据采集 + 上位机/云端上报
  • 显示屏(LTDC/RGB 或 SPI屏)+ 触摸 + GUI(LVGL)
  • 电机控制(FOC 可加分,但要真懂,别只跑通例程)
  • OTA、Bootloader、双分区
  • Linux 驱动:传感器/显示屏/定制外设

项目讲述模板(背熟结构,内容用自己的)

背景是什么 → 我负责哪块 → 架构图(3 层以内)→ 关键技术点 2–3 个 → 最难的 bug 1 个 → 结果指标(延迟、帧率、稳定性)→ 如果重做会怎么改

切忌:简历写“熟悉 XX”,面试却说不清寄存器/时序/线程模型。

四、简历与投递:别在筛简历阶段就出局

  • 一页为主,项目 2–3 个,每个 3–5 条 bullet,写结果+技术,不要写“参与开发”。
  • 技能栏只写能经得住追问的,宁可少写。
  • 关键词对齐 JD:RTOS、Linux、驱动、STM32、协议、低功耗、CI 等。
  • 开源/博客/示波器截图/性能数据,都是加分项,但别堆砌无关证书。

五、面试题型与应对

1. 基础问答

  • C 语言、指针、内存、位操作
  • 中断、DMA、Cache、MPU(Cortex-M7 高频)
  • 通信协议:UART/SPI/I2C/CAN 区别与选型

2. 手写/白板代码

  • 链表反转、环形队列、位操作、状态机
  • 驱动里常见:寄存器读写封装、延时、CRC

3. 项目深挖

  • “你这块如果换芯片/换屏参/换时钟,要改什么?”
  • “最坏情况下内存/CPU 占用多少?”

4. 场景题

  • 数据丢了怎么查?死机了怎么看 PC/LR?
  • 两个任务抢同一资源怎么设计?

准备方法:每个项目准备 5 个“追问答案”,写在笔记里,面试前过一遍。

六、时间线建议(按秋招节奏倒推)

基础巩固

3–4 月

C + 数据结构 + 一门 MCU 外设通练

项目打磨

5–6 月

1 个主项目做深,文档+演示

投递预热

7 月

简历定稿、提前批、模拟面试

正式秋招

8–10 月

笔试+技术面+HR,边面边补弱项

补录/春招备选

11 月后

针对挂掉的环节专项突破

每天建议:算法 1 题 + 基础复习 30 分钟 + 项目复盘 15 分钟,比周末突击更有效。

七、不同方向的“加分明细”

MCU/RTOS 向

  • 能画内存 map、能讲 Boot 流程
  • 熟悉一种 GUI(LVGL)或一种工业协议(Modbus/CANopen)
  • 会用逻辑分析仪/示波器讲清一次通信时序

Linux/驱动向

  • 能写一个简单的 char 驱动 + 用户态测试程序
  • 懂设备树、中断、DMA、mmap
  • 了解 Yocto/Buildroot 或交叉编译链(了解即可,深问再准备)

软硬结合向

  • 能看懂原理图电源/时钟/复位
  • 能解释 SDRAM/LTDC/QSPI 等高速外设的“为什么这样接线、为什么这样配时序”

八、常见翻车点

  1. 只会调库,不会原理:一问 Cache/中断优先级就卡壳。
  2. 项目堆砌:三个项目都只有“调通例程”的深度。
  3. 算法完全放弃:大厂笔试仍会卡人,简单题要稳。
  4. 不会讲调试:只会说“重新烧录就好了”。
  5. 薪资/城市/方向没想清楚:面试后期心态崩盘。
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务