嵌入式八股大纲介绍

【嵌入式八股】一、语言篇https://www.nowcoder.com/creation/manager/columnDetail/mwQPeM
【嵌入式八股】二、计算机基础篇https://www.nowcoder.com/creation/manager/columnDetail/Mg5Lym
【嵌入式八股】三、硬件篇https://www.nowcoder.com/creation/manager/columnDetail/MRVDlM
【嵌入式八股】四、嵌入式Linux篇https://www.nowcoder.com/creation/manager/columnDetail/MQ2bb0
特点:
- 八股:整理上千份嵌入式面试问题,完全面向面试,不该学的没有。
- 整理:按知识点分类和先后逻辑关系整理,方便学习和记忆。
- 重点:一般题目(蓝色)次重点(橙色)重点题目(红色)。
- 联系:注明各部分知识点的联系,学的时候一起学更好。
- 推荐:较难知识点有推荐学习的博客和视频。
「作者」
赛博二哈,双非本+985 硕,24 届校招嵌入式求职者,现嵌入式全栈工程师。
「嵌入式八股整理初衷」
在求职过程中,我翻遍了市面上的嵌入式、计算机基础、C/C++ 等八股资料,发现普遍存在一个核心痛点:
内容冗杂混乱,知识点碎片化且重复堆砌,缺乏体系化逻辑,即便强行记忆也难以坚持。 这并非个例,相信许多求职者都有同感。
因此,我耗时近一年,整合各大平台数千份面经,覆盖嵌入式全方向高频考点,结合面试实战经验持续优化,形成了这套逻辑清晰、解答精炼的八股资料。
「资料概览」
精华版:161页,216题,10万+字,覆盖 60% 以上面试高频题,适合时间紧张的求职者。
完整版:805页,1000+题,30万+字(不含代码部分),构建完整知识体系,适合系统备考。
限于个人水平,资料难免存在疏漏,欢迎批评指正。
〇.简历/面试

一.语言篇

01. 常问基础
•关键字:static/extern/const/volatile 等 16 组关键字的底层原理与应用场景
•基本函数:strcpy/strncpy/sprintf/memcpy/memmove/strlen/strstr/strcat/strcmp 等函数的安全使用与实现差异
•预处理:头文件包含规则、宏定义技巧(条件编译、字符串化 / 连接操作)
02. 内存分配
•C 内存模型:栈 / 堆 / 静态存储区分配机制、内存泄漏排查方法
•C++ 内存管理:new/delete 底层实现、智能指针(unique/shared/weak)原理
•硬件相关:大小端转换、数组越界防护、字节对齐规则(#pragma pack)
03. 指针体系
•指针操作:类型转换(void*/const 指针)、多级指针(指针的指针)
•指针与实体:指针与数组 / 函数 / 结构体的关联应用
•进阶问题:野指针预防、智能指针与 RAII 原则、指针和引用的本质区别
04. C++ 核心
•基础概念:函数默认参数 / 重载、类与对象模型(this 指针)
•面向对象:封装 / 继承 / 多态(虚函数表)、友元 / 运算符重载
•高级特性:模板(函数 / 类模板)、STL 容器(vector/map/set)
•C++11 新特性:lambda 表达式、右值引用、移动语义
二.计算机基础篇

01. 计算机组成原理
•系统架构:数据表示(原码 / 反码 / 补码、浮点数 IEEE754)、CPU 流水线机制
•存储系统:Cache 分级结构(一致性协议)、主存与虚拟内存分页机制
•指令系统:指令周期流程、中央处理器(ALU / 控制单元)工作原理
•输入输出:DMA 传输、中断处理流程
02. 操作系统
•进程与线程:组成结构、通信方式(管道 / 共享内存)、调度算法(FCFS/SJF/ 优先级)
•内存管理:基础概念、覆盖与交换技术、分配算法(伙伴系统)、虚拟内存(页面置换)
•设备管理 :IO 控制方式(程序查询 / 中断 / DMA)、缓冲技术
03. 计算机网络
•分层模型
•应用层:HTTP/HTTPS 协议(GET/POST 区别、SSL/TLS 握手)、DNS 解析流程、Cookie/Session 机制
•传输层:TCP/UDP 对比(报文格式、三次握手 / 四次挥手、可靠性保证)
•网络层:IP 协议、路由选择算法
•拓展问题:TCP 与 HTTP 的关系、常见网络攻击(DDoS/SQL 注入)原理
04. 数据结构
•线性结构:数组 / 链表 / 栈 / 队列的基本操作与性能对比
•非线性结构:二叉树遍历(前 / 中 / 后序)、哈希表(冲突解决)
•算法专题:回溯算法、动态规划(背包问题)、单调栈、排序算法(快排 / 归并)、贪心算法、图论基础
05. 手撕算法整理
•嵌入式高频算法:(嵌入式手撕和纯软手撕侧重点不同,精选104 道高频考题)数组操作、链表操作、哈希应用、字符串处理、栈与队列、二叉树算法、回溯 / 动规 / 排序专题、DFS 搜索、滑动窗口等
三.硬件篇

01. 硬件基础
•数字电路:门电路(与 / 或 / 非)、时序逻辑(触发器 / 计数器)
•模拟电路:放大电路(共射 / 共集)、滤波电路、ADC/DAC 转换原理
•PCB 设计:布线规则、信号完整性、EMC 防护设计
02. ARM 架构
•体系结构:Cortex-A/R/M 系列差异、7 种工作模式(用户 / 系统 / 中断等)
•寄存器组:37 个寄存器功能分组(通用 / 程序状态寄存器)
•指令系统:ARM/Thumb 指令集编码、机器码格式
•中断与异常:异常向量表、中断处理流程
03. 单片机开发
•基础概念:最小系统设计(晶振 / 复位电路)、程序烧录方式(ISP/IAP)
•外设开发:GPIO/ADC/PWM/UART 等基本功能驱动
04. 实时操作系统(RTOS)
•核心基础:RTOS 特性、移植要点
•任务管理:调度算法(优先级抢占 / 时间片轮转)、状态转换
•同步通信:信号量 / 互斥锁 / 消息队列原理与应用
05. 接口协议
•串行总线:UART/I2C/SPI 协议(时序图、通信速率)、单总线(1-Wire)
•工业总线:RS232/485/422、CAN 总线(帧结构)、SDIO
•高速接口:USB/PCIe/MIPI/LCD 接口、EtherCAT(工业以太网)
四.嵌入式Linux篇
四、嵌入式 Linux
01. Linux 应用开发
•系统编程:多进程 / 多线程编程、信号处理、IO 多路复用 (select/poll/epoll)
•网络编程:socket API(TCP/UDP)、网络编程模型(C/S 架构)
•界面开发:QT 框架基础、控件使用
•脚本编程:shell 脚本(变量 / 流程控制 / 函数)、特殊硬件接口编程
02. Linux 内核原理
•内核分析:启动流程、模块机制(加载 / 卸载)
•中断机制:上半部 / 下半部处理、中断共享
•并发控制:自旋锁 / 互斥锁 / 信号量、阻塞 / 非阻塞 IO、同步 / 异步机制
•内存管理:物理内存分配、虚拟内存映射
03. Linux 内核驱动
•初级驱动:内核模块开发、字符设备驱动、平台设备与设备树绑定、GPIO/pinctrl/ 输入子系统、I2C/SPI 子系统
•高级驱动:网络设备驱动、摄像头驱动、图像系统、LCD 显示驱动、USB/PCIe 驱动、块设备驱动
04. Linux 系统移植
•开发环境:虚拟机配置、Ubuntu 必备工具、交叉编译器安装、SSH 远程调试、tftp/NFS 网络服务
•启动移植:U-Boot 配置与调试、Linux 内核移植(裁剪 / 配置)
•文件系统:BusyBox 构建、Buildroot/Yocto 工具链、Linux 发行版定制、RAMDISK 虚拟磁盘
以上只列出了相关框架大致内容,具体请于各专栏中查看
内容持续更新,欢迎关注赛博二哈。
查阅整理上千份嵌入式面经,将相关资料汇集于此,主要包括: 0.简历面试 1.语言篇【本专栏】 2.计算机基础 3.硬件篇 4.嵌入式Linux (建议PC端查看)