嵌入式系统设计师考试大纲内容整理
1、异常与中断
一、核心总纲
异常 = CPU 正常执行流被强制打断的事件,核心分 2 大类:
- 同步异常:由 CPU 当前执行的指令直接触发,和指令强绑定
- 异步异常(中断):由外部事件触发,和当前执行指令无关
二、同步异常(3 类,速记:陷、故、终)
表格
| 类型 | 核心特点 | 记忆点 |
|---|---|---|
| 陷阱 | 主动触发、可恢复,返回下一条指令 | 主动调用,如系统调用、断点调试 |
| 故障 | 被动出错、可修复,返回当前指令重跑 | 指令跑错,如缺页、权限违规 |
| 终止 | 致命错误、不可恢复,直接终止程序 | 硬件崩了,救不回来 |
三、异步异常(中断)2 大类
- 可屏蔽中断(IRQ):可通过开关关闭,绝大多数普通外设中断(串口、定时器、按键等)都属于这类
- 不可屏蔽中断(NMI):关不掉、优先级最高,仅用于掉电、致命硬件错误等极端紧急事件
四、中断核心规则(2 个)
- 中断优先级:给中断分等级,多中断同时触发时,优先级高的先响应
- 中断嵌套:高优先级中断可打断正在执行的低优先级中断,前提是开启了总中断
2、嵌入式系统存储体系
一、核心总纲
嵌入式存储体系的核心目标:平衡速度、容量、成本三大矛盾,解决 CPU 运算快、存储访问慢的性能瓶颈,核心由 3 部分构成:存储器层级结构、Cache、MMU。
二、存储器系统的层次结构
核心金字塔层级(从上到下)
表格
| 层级 | 核心特点 | 记忆点 |
|---|---|---|
| CPU 寄存器 | 速度最快、容量最小、成本最高 | 离 CPU 最近,随取随用 |
| Cache(高速缓存)(SRAM) | 速度极快、容量极小 | CPU 和主存之间的高速中转站 |
| 主存(RAM/SDRAM) | 速度中等、容量中等,掉电丢数据 | 程序运行时的临时存放地 |
| 外存(Flash/EMMC/SD 卡) | 速度最慢、容量最大、成本最低,掉电不丢数据 | 固件、程序、数据的永久仓库 |
一句话记忆:越靠近 CPU,越快越小越贵;层级互补,用最低成本拉满整体访问性能。
三、高速缓存 Cache
- 核心作用:填平 CPU 运算速度和主存访问速度的巨大差距,大幅提升系统运行效率。
- 核心原理:基于局部性原理
- 时间局部性:刚用过的数据,大概率很快会再用
- 空间局部性:用到一个数据,它相邻的数据大概率也会用到
- 记忆点:提前把 CPU 常用的数据缓存起来,让 CPU 不用每次都去慢的主存里找;硬件自动管理,对程序员透明,无需手动操作。
四、内存管理单元 MMU
- 核心定位:操作系统内存管理的核心硬件支撑,是跑 Linux 等复杂 OS 的必备硬件。
- 两大核心功能
- 地址翻译:完成虚拟地址→物理地址的转换,让每个程序都有独立的虚拟地址空间,互不干扰,不用关心物理内存的实际分布。
- 内存保护:给内存块设置读写执行权限,防止程序越界、非法访问,避免一个程序崩溃搞垮整个系统。
- 记忆点:MMU 是虚拟内存、多进程隔离的硬件基石,没有它,复杂操作系统根本跑不起来。
3、ROM 的种类与选型
ROM(Read-Only Memory,只读存储器)是非易失性存储器,断电后数据不丢失,主要用于存储固定程序 / 参数。
联想记忆法
ROM 类(手机存储空间)
PROM:一次性可编程,谐音记「P = 碰一次,终身定」
EPROM:紫外线擦除,记「E = 紫外线 Erase,要晒才能擦」
EEPROM:电可擦除,支持字节级读写
常见 ROM 类型对比
| 类型 | 典型特征 | 关键区别 |
|---|---|---|
| PROM | 可编程只读存储器,出厂时为空白,用户可一次性写入数据,写入后无法修改 | 只能烧录一次,不可擦除,成本低但灵活性差 |
| EPROM | 可擦除可编程只读存储器,需用紫外线照射芯片窗口擦除数据,擦除后可重新编程 | 擦除需要外部紫外线设备,操作不便,且擦除次数有限 |
| E²PROM(EEPROM) | 电可擦除可编程只读存储器,可通过电信号按字节擦除和改写数据,无需专用设备 | 可在线擦写,支持单字节操作,擦写次数远高于 EPROM,成本相对较高 |
4、Flash Memory 的种类与选型
Flash Memory(闪存)是基于浮栅晶体管的非易失性存储器,兼具 ROM 的断电保存和 RAM 的可擦写特性,分为 NOR 和 NAND 两种主流架构。
联想记忆法:
NOR:Read not wait :读不需要等,说明读快
NOR vs NAND Flash 对比
| 特性 | NOR Flash | NAND Flash |
|---|---|---|
| 读写方式 | 支持随机地址访问,可直接执行代码(XIP),读速度快 | 按页 / 块读写,不支持直接执行代码,需先加载到 RAM |
| 擦写粒度 | 以扇区为单位擦除,擦除速度慢 | 以块为单位擦除,擦除速度快,写入效率高 |
| 存储密度 | 单元结构复杂,密度低,单芯片容量小 | 单元结构简单,密度高,单芯片容量大,成本低 |
| 典型应用 | 存储启动代码、固件(如 BIOS、嵌入式系统 Bootloader) | 大容量数据存储(如 U 盘、SSD、手机存储) |
| 可靠性 | 无坏块管理,稳定性高 | 存在坏块,需 ECC 校验和坏块管理算法 |
5、RAM 的种类与选型
RAM(Random Access Memory,随机存取存储器)是易失性存储器,断电后数据丢失,主要用于临时运行程序和缓存数据。
常见 RAM 类型对比
• RAM 类(手机运行内存)
SRAM(S:死贵):静态随机存储器,无需刷新,速度快,成本高
DRAM(D:动):动态随机存储器,需定时刷新,容量大,成本低
DDRAM(DD:double):双倍速率 DRAM
NVRAM(N:牛不丢):非易失性 RAM,掉电不丢数据
| 类型 | 典型特征 | 关键区别 |
|---|---|---|
| SRAM | 静态随机存储器,用触发器存储数据,无需刷新,速度极快 | 无需刷新,功耗高、成本高,容量小,常用于 Cache、寄存器 |
| DRAM | 动态随机存储器,用电容存储数据,需定期刷新维持电荷 | 结构简单、成本低、容量大,需刷新电路,速度比 SRAM 慢 |
| DDRAM(DDR SDRAM) | 双倍数据率 DRAM,在时钟上升沿和下降沿各传输一次数据 | 是 DRAM 的升级,数据传输率翻倍,是 PC / 手机的主流内存 |
| NVRAM | 非易失性 RAM,兼具 RAM 的高速读写和 ROM 的断电保存特性 | 断电不丢数据,常用于掉电需保存关键数据的场景(如实时时钟) |
6、外存
外存(辅助存储器)属于非易失性存储,断电后数据不丢失,核心作用是长期存储程序、数据和文件,特点是容量大、成本低,但读写速度远低于内存(RAM)。
一、常见外存种类核心对比
以下是磁盘、光盘、CF 卡、SD 卡的关键特征对比:
表格
| 外存类型 | 核心原理 | 典型容量范围 | 读写速度 | 抗震动性 | 成本 | 典型应用场景 |
|---|---|---|---|---|---|---|
| 磁盘(机械硬盘 HDD) | 磁记录,通过磁头读写盘片磁信号 | 500GB ~ 20TB | 中等(顺序读写约 100~200MB/s) | 差(机械结构怕摔、怕震动) | 低(单位容量成本最低) | 台式机 / 笔记本存储、服务器数据备份 |
| 光盘(CD/DVD/ 蓝光) | 光学记录,激光读取盘片凹坑 / 平面信号 | CD:700MBDVD:4.7GB蓝光:25~100GB | 慢(数倍速,如 DVD 8 倍速≈10MB/s) | 中(防磁但怕刮花) | 极低(空白盘片几分~几元) | 早期软件分发、档案归档、音视频存储 |
| CF 卡(CompactFlash) | 基于 NAND Flash 的固态存储,并行接口 | 128MB ~ 2TB | 快(支持 UDMA 模式,可达 160MB/s+) | 优(无机械结构,抗震动性强) | 中高 | 专业相机、工业设备、嵌入式工控机 |
| SD 卡(Secure Digital) | 基于 NAND Flash 的固态存储,串行接口 | 128MB ~ 2TB(含 microSD) | 中~快(Class10/UHS-I 可达 10~100MB/s+) | 优(无机械结构,抗震动性强) | 低 | 消费类相机、手机、行车记录仪、嵌入式设备 |
二、关键区别与选型要点
1. 机械 vs 固态(磁盘 vs CF/SD)
- 磁盘(HDD):依赖机械部件(盘片 + 磁头),速度受物理限制,怕震动但容量大、成本低,适合非移动场景的大容量存储。
- CF/SD 卡:纯电子结构,无机械部件,抗震动、耐高低温,速度快,适合移动设备、工业 / 嵌入式场景。
2. CF 卡 vs SD 卡(固态外存的核心差异)
表格
| 对比维度 | CF 卡 | SD 卡 |
|---|---|---|
| 接口类型 | 并行接口(早期 IDE 协议) | 串行接口(SPI/SDIO 协议) |
| 体积 | 较大(标准卡尺寸约 43×36mm) | 小(标准 SD 32×24mm,microSD 仅 15×11mm) |
| 稳定性 | 工业级设计,抗干扰、抗震动能力更强 | 消费级为主,工业级型号稳定性提升,但弱于 CF |
| 功耗 | 较高 | 低(适合便携 / 低功耗设备) |
| 成本 | 较高 | 低,普及度广 |
| 嵌入式适配 | 部分老设备直接支持 IDE 协议,兼容性好 | 主流嵌入式设备多支持 SDIO 接口,驱动成熟 |
3. 光盘的特殊定位
光盘的核心优势是防磁、防潮、保存时间长(理论可达百年),但容量小、速度慢,现在仅用于档案归档、少量数据备份,已不再是主流存储介质。
7、嵌入式系统知识
二、3.2.1 嵌入式操作系统体系结构
嵌入式 OS 的 3 种经典架构,核心差异在于内核功能的拆分、模块间的耦合度,以及适用场景。
表格
| 架构类型 | 核心设计 | 核心特点 | 优缺点 | 典型代表 |
|---|---|---|---|---|
| 单体结构(宏内核) | 所有 OS 核心功能(进程管理、内存管理、文件系统、驱动等)都运行在内核态的同一个地址空间 | 模块间直接函数调用,耦合度高,无用户态 / 内核态的频繁切换 | 优点:执行效率高、响应快缺点:可维护性差、扩展性弱,一个模块崩溃会导致整个内核宕机 | 早期 Linux、uC/OS-II、FreeRTOS 经典版本 |
| 分层结构 | 将 OS 功能按依赖关系分层,上层只能调用下层的接口,单向依赖 | 分层解耦,每层只和相邻层交互,逻辑清晰 | 优点:可维护性、可扩展性优于单体结构,便于调试和移植缺点:层级调用会有一定的性能损耗,分层设计难度高 | 早期 Windows、TCP/IP 协议栈、部分嵌入式 RTOS |
| 微内核结构 | 仅将最核心的功能(任务调度、中断管理、进程间通信)放在内核态,其余功能(文件系统、驱动、网络协议栈)都放在用户态独立服务进程 | 内核极简,服务间通过消息通信,隔离性强 | 优点:高可靠性、高扩展性,单个服务崩溃不影响内核和其他服务,适合高安全场景缺点:用户态 / 内核态频繁切换,性能开销大 | QNX、VxWorks 微内核版本、Minix、鸿蒙微内核 |
三、3.2.2 任务管理(嵌入式 OS 核心考点)
任务管理是 RTOS / 嵌入式 OS 的灵魂,核心是实现多任务的并发执行、资源分配与有序调度。
1. 多道程序技术
- 核心定义:内存中同时存放多道相互独立的程序,在 OS 的控制下交替在 CPU 上运行,宏观上并行,微观上串行。
- 核心价值:解决单道程序 CPU 空闲等待的问题,大幅提升 CPU 利用率和系统吞吐量,是多任务 / 多进程系统的基础。
- 嵌入式场景:是实现多任务并发的底层基础,让 MCU/MPU 可以同时执行传感器采集、电机控制、数据上传等多个任务。
2. 进程、线程、任务的核心概念
表格
| 概念 | 核心定义 | 核心特点 | 嵌入式场景定位 |
|---|---|---|---|
| 进程 | 资源分配的最小单位,拥有独立的地址空间、内存、文件句柄等资源 | 进程间相互隔离,切换开销大,稳定性高 | 带 MMU 的嵌入式 Linux/Android 等通用嵌入式 OS,用于隔离不同的应用程序 |
| 线程 | 程序执行的最小单位,隶属于进程,共享进程的地址空间和资源 | 线程间切换开销极小,通信成本低,但一个线程崩溃会导致整个进程崩溃 | 通用嵌入式 OS 中,进程内的并发执行单元;部分 RTOS 也支持线程模型 |
| 任务 | 嵌入式 RTOS 中的核心执行单元,等价于「线程」,是 RTOS 调度的最小单位 | 每个任务有独立的栈、优先级、状态,共享系统的内存和硬件资源,切换开销极低 | 无 MMU 的 MCU(STM32 等)的 RTOS(FreeRTOS、uC/OS)中,最核心的并发执行单元 |
3. 任务的实现
核心是 OS 如何管理和描述一个任务,包含 4 个核心部分:
- 任务的层次结构:嵌入式 OS 中,任务通常按优先级分层,高优先级任务优先调度;部分 OS 支持任务嵌套、父子任务结构。
- 任务控制块(TCB):OS 用于描述和管理任务的核心数据结构,是任务存在的唯一标志。存储任务的所有信息:任务优先级、任务栈指针、任务状态、PC 寄存器值、资源持有情况等,OS 通过 TCB 链表管理所有任务。
- 任务的状态及状态转换(高频考点)嵌入式 RTOS 中,任务的 4 种核心状态:
- 就绪态:任务已经具备运行条件,等待 CPU 调度执行
- 运行态:任务正在 CPU 上执行
- 阻塞态(挂起态):任务因等待某一事件(信号量、消息、延时)而放弃 CPU,不参与调度
- 休眠态 / 停止态:任务被终止,或未被启动,不参与调度核心转换逻辑:
- 就绪态 → 运行态:任务被调度器选中,获得 CPU 使用权
- 运行态 → 就绪态:高优先级任务抢占、时间片用完,主动放弃 CPU
- 运行态 → 阻塞态:任务主动调用延时、等待信号量 / 消息等接口
- 阻塞态 → 就绪态:等待的事件到达,任务具备运行条件
- 任务队列:OS 为了管理不同状态的任务,建立的对应链表,常见的有:就绪队列(按优先级排序)、阻塞队列(按等待事件分类)、挂起队列。
4. 任务调度
任务调度是 OS 的核心,决定哪个任务获得 CPU 的使用权。
- 调度核心分类
- 不可抢占调度(非抢占式):任务一旦获得 CPU,就会一直执行,直到任务主动放弃 CPU(主动阻塞、任务结束),即使有更高优先级任务就绪,也不能抢占 CPU。优点:实现简单,缺点:实时性差。
- 可抢占调度(抢占式):只要有更高优先级的任务就绪,调度器会立即暂停当前正在执行的低优先级任务,将 CPU 分配给高优先级任务。是嵌入式 RTOS 的默认调度方式,核心优势是实时性强,响应快。
- 通用调度算法
表格
算法 核心逻辑 特点 适用场景 先来先服务(FCFS) 按任务就绪的先后顺序调度,先就绪的先执行,直到任务主动放弃 CPU 公平、实现简单,属于不可抢占调度,短任务可能被长任务阻塞,响应性差 批处理系统,极少用于嵌入式 RTOS 短作业优先(SJF) 优先调度执行时间最短的任务 平均周转时间最短,吞吐量高;缺点是长任务可能饥饿,无法预估任务执行时间 批处理系统,不适合实时嵌入式场景 时间片轮转算法(RR) 给每个就绪任务分配固定的时间片,任务用完时间片后,回到就绪队列尾部,等待下一轮调度 公平,每个任务都能获得均等的 CPU 时间,属于可抢占调度,响应性好 通用 OS 的分时系统,嵌入式 GUI、非实时任务调度 优先级调度算法 给每个任务分配优先级,调度器始终选择就绪队列中优先级最高的任务执行 实时性强,是 RTOS 的核心算法;分为静态优先级(固定不变)和动态优先级(可动态调整) 绝大多数嵌入式 RTOS(FreeRTOS、uC/OS、VxWorks) - 调度算法的核心性能指标:CPU 利用率、系统吞吐量、任务周转时间、带权周转时间、响应时间(实时系统最核心指标)。
5. 实时系统及任务调度(硬实时嵌入式系统核心考点)
实时系统的核心要求:任务必须在规定的截止时间内完成,分为硬实时(截止时间绝对不能错过,否则会产生严重后果,如汽车电子、航空航天)和软实时(允许偶尔错过截止时间,如音视频播放)。两个经典实时调度算法:
- RMS(速率单调调度)
- 核心逻辑:静态优先级调度算法,任务的优先级由任务的周期决定,周期越短(执行频率越高),优先级越高。
- 核心前提:任务是周期性的、独立的,任务的执行时间固定,截止时间等于周期。
- 特点:实现简单,稳定性强,是工业界最常用的硬实时调度算法,可调度性有理论保障。
- EDF(最早截止时间优先)
- 核心逻辑:动态优先级调度算法,任务的优先级由任务的截止时间决定,截止时间越早,优先级越高,动态调整。
- 特点:CPU 利用率理论上可以达到 100%,比 RMS 的 CPU 利用率更高;缺点是实现复杂,过载时会出现任务多米诺骨牌式超时,稳定性弱于 RMS。
6. 任务间通信
多任务系统中,任务之间需要传递数据、交换信息,核心通信方式如下:
表格
| 通信方式 | 核心原理 | 特点 | 适用场景 |
|---|---|---|---|
| 共享内存 | 多个任务共享同一块内存区域,通过读写内存实现数据交换 | 速度最快,无数据拷贝;缺点是需要配合同步互斥机制,否则会出现数据竞争 | 大量数据的高速传输,同进程内的线程 / 任务间通信 |
| 消息队列 | 任务之间通过内核提供的队列,以「消息」为单位进行数据收发,异步通信 | 解耦性强,支持多发送者 / 多接收者,自带同步机制,FIFO 顺序;缺点是有数据拷贝,开销比共享内存大 | RTOS 中最常用的任务间通信方式,适合中等数据量的异步通信 |
| 管道 | 单向的字节流通信通道,分为匿名管道和命名管道 | 面向字节流,自带同步机制,实现简单;缺点是只能单向通信,半双工 | 父子进程间通信,Linux 嵌入式系统常用 |
| 信号(软中断) | 异步通知机制,内核 / 任务向目标任务发送信号,目标任务中断当前执行,处理对应的信号处理函数 | 异步、响应快;缺点是不适合传递大量数据,处理函数有严格的限制 | 异常处理、事件通知,如任务超时、硬件中断通知 |
7. 同步与互斥
多任务系统中,多个任务会竞争共享资源,同步与互斥就是为了解决资源竞争的问题,保证系统的正确性。
- 核心基础概念
- 竞争条件:多个任务同时访问共享资源,最终的执行结果取决于任务的执行顺序,导致结果不可预期,出现数据错误。
- 临界区:访问共享资源的代码片段,同一时间只能有一个任务进入临界区执行。
- 互斥:保证同一时间,只有一个任务进入临界区,访问共享资源,解决竞争条件的核心手段。
- 同步:多个任务按照约定的顺序执行,保证任务间的协作逻辑正确,如生产者 - 消费者模型。
- 核心实现手段:信号量信号量是 OS 提供的核心同步互斥机制,分为两类:
- 二值信号量(互斥信号量):取值只有 0 和 1,用于实现互斥,保证临界区的独占访问,可解决优先级反转问题。
- 计数信号量:取值可以是 0~N,用于实现同步,如生产者 - 消费者模型、资源计数。
- 死锁
- 核心定义:多个任务互相等待对方持有的资源,导致所有任务都无法继续执行,永远阻塞的状态。
- 死锁产生的 4 个必要条件:互斥条件、请求与保持条件、不剥夺条件、循环等待条件。
- 死锁的处理:预防(破坏 4 个必要条件之一)、避免(银行家算法)、检测与解除。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)