Appearance
考点清单
- [x] 嵌入式系统组成与特征
- [x] 冯诺依曼结构与哈佛结构
- [x] 微处理器分类(MCU/MPU/DSP/SOC)
- [x] 多核处理器(SMP/AMP、全局队列/局部队列调度)
- [x] 嵌入式软件分类与 BSP(BootLoader + 设备驱动程序)
- [x] 嵌入式操作系统(EOS)特点
- [x] 实时操作系统(RTOS)— 硬实时/软实时
- [x] 嵌入式数据库系统(EDBMS)
- [x] 交叉开发环境(交叉编译/交叉调试)
笔记
历年考情:本章节偶尔考到,一般占 3~5 分。第二版教材描述简略,实际考试约 50% 超纲。
一、嵌入式系统组成与特征
组成:嵌入式处理器 + 相关支撑硬件 + 嵌入式操作系统 + 支撑软件 + 应用软件
八大特征:
| 特征 | 说明 |
|---|---|
| 专用性强 | 面向特定应用,把板卡任务集成到芯片内部,利于小型化 |
| 技术融合 | 计算机、通信、半导体、电子技术与行业应用结合 |
| 软硬一体软件为主 | 软件是主体,硬件软件均量体裁衣去除冗余 |
| 比通用计算机资源少 | 只完成少数任务,管理资源少、成本低、结构简单 |
| 程序代码固化在非易失存储器 | 软件固化在 ROM/Flash 中,非磁盘存储 |
| 需专门开发工具和环境 | 本身不具备开发能力,需交叉开发环境 |
| 体积小、价格低、实时性强 | 系统配置要求低 |
| 安全性和可靠性要求高 | 常运行在恶劣环境下 |
系统分层(5 层):硬件层 → 抽象层 → 操作系统层 → 中间件层 → 应用层
系统分类:
- 按用途:嵌入式实时系统 / 嵌入式非实时系统
- 按安全性:安全攸关系统 / 非安全攸关系统
二、嵌入式微处理器
冯诺依曼结构 vs 哈佛结构
| 对比维度 | 冯诺依曼结构 | 哈佛结构 |
|---|---|---|
| 存储方式 | 程序和数据共用一个存储空间 | 程序和数据存储在不同的存储空间 |
| 总线 | 单一的地址及数据总线 | 两套独立的地址总线和数据总线 |
| 并行性 | 指令和数据串行访问 | 一个机器周期内同时获取指令字和操作数 |
| 效率 | 高速运算时传输出瓶颈 | 数据吞吐率提高 1 倍,执行速度更快 |
| 典型应用 | 传统通用计算机 | DSP、嵌入式处理器 |
微处理器分类
按字长宽度:
- 16 位及以下 → 嵌入式微控制器(MCU)
- 32 位及以上 → 嵌入式微处理器(MPU)
按系统集成度:
- 一般用途型微处理器(仅 CPU)
- 单芯片微控制器(CPU+ROM+RAM+I/O 集成)
按用途分类:
| 类型 | 特点 | 典型应用 |
|---|---|---|
| MCU(微控制器) | 典型代表:单片机。片上外设资源丰富,体积小、功耗低成本低、可靠性高。嵌入式系统工业主流 | 控制类应用 |
| MPU(微处理器) | 由通用 CPU 演变,32 位以上,保留嵌入式相关功能硬件,去除冗余。体积小、重量轻、成本低、可靠性高 | ARM、MIPS、PowerPC |
| DSP(数字信号处理器) | 专门用于信号处理,哈佛结构 + 流水线处理,处理速度比最快 CPU 还快 10-50 倍 | 数字滤波、FFT、谱分析 |
| SOC(片上系统) | 追求最大包容的集成器件,实现软硬件无缝结合,片内嵌入操作系统代码模块 | 专用集成电路 |
三、多核处理器
多核指多个微处理器内核,将两个或更多的独立处理器封装在一起,集成在一个电路中。多核与多 CPU 相比,很好的降低了计算机系统的功耗和体积。
两种协调方式:
| 方式 | 特点 |
|---|---|
| SMP(对称多处理) | 2 颗完全一样的处理器封装在一个芯片内,达到双倍性能,节省运算资源 |
| AMP(非对称处理) | 2 个处理内核彼此不同,各自处理特定功能,软件协调分担不同计算任务 |
⚠️ 多核处理器结构选择必须考虑硬件组成差异。
多核 CPU 调度:
| 调度方式 | 机制 | 优点 |
|---|---|---|
| 全局队列调度 | 操作系统维护一个全局任务等待队列,CPU 空闲时从中选取任务执行 | CPU 核心利用率高 |
| 局部队列调度 | 每个 CPU 内核维护独立的局部任务等待队列 | 无需在多个 CPU 之间切换 |
四、嵌入式软件与 BSP
软件分类:
| 类别 | 说明 |
|---|---|
| 系统软件 | 控制和管理嵌入式系统资源,如设备驱动程序、嵌入式操作系统、嵌入式中间件 |
| 应用软件 | 上层软件,定义设备主要功能和用途,负责与用户交互 |
| 支撑软件 | 辅助软件开发的工具,如系统分析设计工具、在线仿真工具、交叉编译器 |
嵌入式软件特点:规模较小、开发难度大、实时性和可靠性要求高、要求固化存储。
板级支持包(BSP)
BSP 是介于主板硬件和操作系统中驱动层程序之间的一层,属于操作系统一部分。为上层的驱动程序提供访问硬件设备寄存器的函数包。
功能:
- 单板硬件初始化(主要是 CPU 初始化)
- 为操作系统提供设备驱动程序和系统中断服务程序
- 定制操作系统的功能,提供实时多任务的运行环境
- 初始化操作系统,为正常运行做好准备
两大特点:① 硬件相关性 ② 操作系统相关性
BSP 两大组成部分:
| 组成 | 说明 |
|---|---|
| BootLoader(引导加载程序) | 加电后运行的第一段软件代码 |
| 设备驱动程序 | 对硬件进行初始化和管理 |
BootLoader 三阶段
| 阶段 | 内容 | 性质 |
|---|---|---|
| 片级初始化 | 微处理器初始化:设置核心寄存器、控制寄存器、工作模式及局部总线模式 | 纯硬件初始化 |
| 板级初始化 | 微处理器以外的硬件初始化:LED、定时器、中断控制器、串口、内存控制器、建立内存空间地址映射 | 软硬件结合的初始化 |
| 加载内核(系统级初始化) | 将操作系统和应用程序映像从 Flash 复制到内存,跳转到系统内核第一条指令 | — |
设备驱动程序
设备驱动程序是一组库函数,用来对硬件进行初始化和管理,向上层软件提供良好访问接口。无论是否有操作系统,驱动程序都必不可少。
基本功能:硬件启动、硬件关闭、硬件停用、硬件启用、读操作、写操作。
五、嵌入式操作系统(EOS)
| 特点 | 说明 |
|---|---|
| 微型化 | 运行平台资源少(内存小、无外存),必须小巧、占用尽量少资源 |
| 代码质量高 | 存储空间宝贵,代码要尽量精简 |
| 专业化 | 硬件平台多样、处理器更新快,要有好的适应性和移植性,支持多种开发平台 |
| 实时性强 | 广泛应用于过程控制、数据采集、通信等要求实时响应的场合 |
| 可裁减和可配置 | 能根据应用特点和具体要求灵活配置和合理裁减 |
⚠️ 嵌入式操作系统支持多任务,RTOS 可以针对硬件变化进行结构与功能上的配置及裁剪。
六、实时操作系统(RTOS)
嵌入式实时系统要求系统在投入运行前即具有确定性和可预测性。提供及时响应和高可靠性是 RTOS 的主要特点。RTOS 的首要任务是调度一切可利用的资源来完成实时控制任务。
| 类型 | 要求 |
|---|---|
| 硬实时 | 必须在规定时间内完成操作,操作系统设计时保证 |
| 软实时 | 按照任务优先级,尽可能快地完成操作即可 |
RTOS 三大特征:
| 特征 | 说明 |
|---|---|
| 高精度计时系统 | 精确确定实时操作或执行任务的时间点,依赖于硬件时钟精度和操作系统高精度计时功能 |
| 多级中断机制 | 处理多种外部信息或事件,建立多级中断嵌套处理机制,确保紧迫程度高的实时事件及时响应 |
| 实时调度机制 | 在调度策略和算法上保证优先调度实时任务,建立更多"安全切换"时间点保证及时调度 |
七、嵌入式数据库系统(EDBMS)
使用环境特点:
- 设备随时移动性
- 网络频繁断接
- 网络条件多样化
- 通信能力不对称(下行 >> 上行)
系统组成:主数据库、同步服务器、嵌入式数据库、连接网络
关键问题:数据的一致性(复制性)、高效的事务处理、数据的安全性。
八、交叉开发环境
嵌入式系统的开发需要借助宿主机(通用计算机)来编译出目标机的可执行代码。宿主机与目标机之间需要建立物理连接(以太网、USB、串口等)。
交叉编译: 在宿主机上采用交叉编译器生成目标机的可执行代码。不同体系结构有不同的指令系统,需要相应编译器。
交叉调试: 调试器运行在宿主机上,被调试进程运行在目标机上,通过串口/网络进行通信。
开发工具链:
- 编辑器:VS、eclipse、keil、vim 等
- 编译器 gcc:GNU/C/C++,支持多种宿主机/目标机组合
- 调试器 gdb:GNU 开源强大程序调试工具
⚠️ 在宿主机上必须采用交叉编译器来生成目标机的可执行代码。调试器与被调试程序可以安装在不同机器上。