Bläddra i källkod

docs: 主题清单扩充至4批46项——参考B站嵌入式面试真经44集

kekeZack 1 månad sedan
förälder
incheckning
390f5516b0
1 ändrade filer med 42 tillägg och 7 borttagningar
  1. 42 7
      求职资源/嵌入式面试/面试八股主题元学习法.md

+ 42 - 7
求职资源/嵌入式面试/面试八股主题元学习法.md

@@ -121,20 +121,38 @@
 ## 三、主题清单(进度表,AI 从这里找下一个未学主题)
 
 > 一个主题约 30-45 分钟。学完把 ☐ 改成 ✅。
+> 参考资源:B站《嵌入式面试真经》44 集(八股 1-37)+ 原有清单。视频:https://www.bilibili.com/video/BV1K57Q6iE5p/
+
+### 🔴 第一批:C 语言八股(必考,嵌入式 80% 刷人在这)
 
-### 🔴 第一批(必考,嵌入式 80% 刷人在这)
 | 勾 | 主题 | 核心判别规则(提示) |
 |:--:|------|---------------------|
 | ☐ | volatile | 变量是否被程序控制之外改变(寄存器/中断/多线程) |
 | ☐ | const 用法 | const 绑定左边最近的东西 |
 | ☐ | static | 存储期(全局/程序期)vs 作用域(局部/文件)是两回事 |
-| ☐ | 指针 vs 数组 | 声明时数组是数组,传参时退化为指针;sizeof 不同 |
+| ☐ | extern | 声明 vs 定义;跨文件共享变量 |
+| ☐ | define vs typedef | define 文本替换/无类型;typedef 给类型起别名 |
+| ☐ | 数组名 vs 指针 | 声明时数组是数组,传参退化为指针;sizeof 不同 |
+| ☐ | 数组指针 vs 指针数组 | 先看谁被 [] 修饰;`int (*p)[N]` vs `int *p[N]` |
+| ☐ | 函数指针 vs 指针函数 | 返回值是指针 vs 指向函数的指针;回调用法 |
+| ☐ | 野指针 | 未初始化/悬垂/越界;防 = 初始化+置NULL |
+| ☐ | 内存分配方式 | 静态区/栈/堆三区;各自生命周期 |
+| ☐ | 堆 vs 栈 | 谁管分配释放、速度、大小、碎片 |
+| ☐ | 内存泄露 / 内存碎片 | malloc/free 配对;碎片来源 |
+| ☐ | 程序分段 | 代码段/数据段/BSS/堆/栈各自存什么 |
 | ☐ | 结构体对齐 | 对齐规则:成员偏移 = 自身对齐值整数倍 |
+| ☐ | struct vs union | struct 累加内存;union 共用一块,大小=最大成员 |
+| ☐ | 位域 | 节省内存的字段定义;可移植性差 |
 | ☐ | 大小端 | 高字节存低地址=大端,union 可测 |
 | ☐ | 位操作宏 | SET_BIT/CLEAR_BIT/翻转 = 与/或/异或掩码 |
-| ☐ | 函数指针/回调 | 函数名即地址,回调 = 传函数指针让别人调 |
+| ☐ | sizeof vs strlen | 编译期算字节 vs 运行期数到\0;指针/数组陷阱 |
+| ☐ | 左值 vs 右值 | 有地址可赋值=左值;临时值=右值 |
+| ☐ | 原子操作 | 不可分割的操作;多任务/中断共享数据的保护 |
+| ☐ | 内联函数 | 宏 vs 内联;编译期展开免调用开销 |
+| ☐ | .c → 可执行程序 | 预处理→编译→汇编→链接;各阶段产物 |
+
+### 🔴 第二批:FreeRTOS / RTOS(必考)
 
-### 🔴 第二批(FreeRTOS 必考)
 | 勾 | 主题 | 核心判别规则(提示) |
 |:--:|------|---------------------|
 | ☐ | 任务状态机 | Ready/Running/Blocked/Suspended 谁在什么条件下切换 |
@@ -142,17 +160,34 @@
 | ☐ | 优先级反转 | 高优先级被低优先级间接阻塞;解决=优先级继承 |
 | ☐ | 临界区 | taskENTER_CRITICAL = 关中断,影响实时性 |
 | ☐ | IPC 选型 | 队列传数据/信号量传事件/互斥锁管资源/任务通知最轻 |
+| ☐ | RTOS 任务同步方式 | 信号量/事件组/任务通知各自适用场景 |
 | ☐ | ISR 通信 | 中断里只能用 FromISR 结尾的 API |
 | ☐ | 栈估算 | 栈单位是 word;用 HighWaterMark 检测 |
 
-### 🟡 第三批(STM32)
+### 🟡 第三批:STM32 / 硬件
+
 | 勾 | 主题 | 核心判别规则(提示) |
 |:--:|------|---------------------|
-| ☐ | 中断优先级 | 抢占 vs 子优先级分组,HAL 回调流程 |
+| ☐ | 中断优先级 | NVIC 抢占 vs 子优先级分组,HAL 回调流程 |
 | ☐ | DMA | 普通 vs 循环模式,什么时候用 |
 | ☐ | 时钟树 | HSI/HSE→PLL→SYSCLK→APB1/2,谁是多少 |
 | ☐ | HAL vs LL | HAL 抽象重可移植,LL 直接寄存器性能高 |
-| ☐ | I2C vs SPI vs UART | 同步/异步、主从、线数、速度 |
+| ☐ | I2C vs SPI vs UART | 同步/异步、主从、线数、速度;SPI 最少几根线 |
+| ☐ | PWM | 占空比/频率;用定时器实现 |
+| ☐ | RAM / ROM / Flash | 三者的掉电保持、速度、用途 |
+| ☐ | 嵌入式调试方法 | printf / 调试器 / 逻辑分析仪各自适用 |
+| ☐ | 交叉编译 | 在 A 平台编译跑在 B 平台(如 x86→ARM) |
+
+### 🟢 第四批:OS / 网络 / C++(加分,大厂或进阶会问)
+
+| 勾 | 主题 | 核心判别规则(提示) |
+|:--:|------|---------------------|
+| ☐ | 进程 vs 线程 | 资源隔离 vs 轻量共享;切换开销 |
+| ☐ | 僵尸/孤儿/守护进程 | 父进程未回收=僵尸;父先死=孤儿;脱离终端=守护 |
+| ☐ | TCP 如何保证可靠 | 确认/重传/序号/校验/流量控制/拥塞控制 |
+| ☐ | C++ struct vs class | 默认访问权限 public vs private |
+| ☐ | C++ 构造/析构 | 初始化/清理时机;RAII |
+| ☐ | SMP/多核 | 多核并行;缓存一致性(进阶) |
 
 ---