计算机系统基础知识(十三):软件篇之嵌入式系统及软件详解(下篇)
本文深入探讨嵌入式系统架构设计的关键技术与发展趋势,重点涵盖嵌入式软件架构模式(层次化/微内核)、多核异构系统设计(SMP/AMP架构、RPMsg通信)、实时操作系统(RTOS)核心特征与国产化实践(ReWorks/RT-Thread/鸿蒙)。通过解析历年真题和行业案例,系统梳理了嵌入式开发中的交叉编译、功能安全设计(DO-178B/ISO26262)等核心考点,并展望了边缘AI、RISC-V等前
📝 前言
在上篇中,我们系统梳理了嵌入式系统的基础概念、组成结构、处理器体系结构、BSP与BootLoader等内容。本篇将继续深入探讨嵌入式软件架构、多核异构系统、实时操作系统以及国产化发展趋势,并结合历年真题和前沿实践,帮助你在系统架构设计师考试中全面掌握嵌入式系统知识。
嵌入式系统是考试中超纲率较高的部分,仅靠教材远远不够。下篇将补充大量实战性内容,尤其是多核异构架构、RPMsg通信机制、国产RTOS(ReWorks、RT-Thread、鸿蒙) 等热点,这些都在近年考试和行业实践中频繁出现。
一、嵌入式软件架构
嵌入式软件架构是嵌入式系统的骨架,决定了系统的可维护性、可扩展性和可靠性。
1.1 层次化软件架构
层次化架构是嵌入式软件最经典的架构模式,从上到下分为:
┌─────────────────────────────────────┐
│ 应用层(App) │
├─────────────────────────────────────┤
│ 中间件层 │
├─────────────────────────────────────┤
│ 操作系统层(RTOS) │
├─────────────────────────────────────┤
│ 硬件抽象层(HAL) │
├─────────────────────────────────────┤
│ 硬件层 │
└─────────────────────────────────────┘
层次化架构的优势:
-
关注点分离:每一层只关注特定的功能,降低复杂度
-
可移植性强:只需更换硬件抽象层,即可适配不同硬件平台
-
可测试性高:每一层可以独立测试和验证
-
复用性好:核心业务逻辑可以在不同项目中复用
1.2 递归/嵌套模式
递归/嵌套模式是指系统内部存在多个层次相似的子系统,每层均可独立调度。这种模式常见于复杂嵌入式系统,如航空电子系统中的“分区”架构。
典型应用:
-
ARINC 653:航空电子应用软件标准接口,定义分区操作系统(Partition OS)
-
多核调度:每个核上运行独立的RTOS实例,通过虚拟化层管理
1.3 微内核架构在嵌入式中的应用
微内核架构将操作系统核心功能(调度、IPC、内存管理)精简到最小,其他服务(文件系统、网络)作为用户态进程运行。
微内核在嵌入式中的优势:
-
高可靠性:服务崩溃不影响内核
-
高安全性:服务之间通过IPC隔离,可独立配置安全策略
-
可裁剪性:根据应用需求选择加载的服务
典型产品:
-
QNX:微内核RTOS,广泛用于汽车仪表盘、医疗设备
-
L4微内核:学术研究,用于构建安全攸关系统
二、多核与异构嵌入式系统
随着性能需求的提升,嵌入式系统已从单核向多核、异构方向发展。
2.1 多核架构分类
| 架构类型 | 特点 | 典型应用 |
|---|---|---|
| 对称多处理(SMP) | 所有CPU核共享内存,操作系统统一调度 | 高端嵌入式Linux |
| 非对称多处理(AMP) | 每个核运行独立的操作系统,核间通过通信协议协作 | 汽车域控制器、异构SoC |
SMP与AMP的区别:
| 维度 | SMP | AMP |
|---|---|---|
| OS实例 | 单一OS管理所有核 | 每个核独立OS |
| 资源分配 | 动态均衡 | 静态划分 |
| 实时性 | 受OS调度影响 | 可独立保证实时性 |
| 复杂度 | OS调度复杂 | 核间通信复杂 |
2.2 异构多核与RPMsg通信
现代嵌入式SoC(如NXP i.MX8、瑞萨R-Car)通常集成了不同架构的核,例如:
-
Cortex-A核:运行Linux,处理UI、网络等
-
Cortex-M核:运行RTOS,处理实时控制
-
GPU/NPU:处理图像、AI推理
RPMsg(Remote Processor Messaging) 是Linux内核提供的核间通信机制,用于AMP系统中不同核之间的消息传递。
RPMsg的特点:
-
共享内存:通过预定义的共享内存区域传递消息
-
VirtIO:基于VirtIO虚拟化标准,提供高效的通信通道
-
非对称设计:主核(Linux)与从核(RTOS)之间采用主从通信模式
RPMsg通信流程:
-
从核(RTOS)通过共享内存发送消息,触发中断通知主核
-
主核(Linux)在中断服务程序中读取消息
-
主核处理完成后,通过共享内存回复消息,触发中断通知从核
2.3 多核嵌入式系统的设计挑战
| 挑战 | 说明 | 解决方案 |
|---|---|---|
| 核间通信延迟 | 消息传递开销 | 使用共享内存、硬件邮箱 |
| 缓存一致性 | 多核访问同一内存区域 | 使用硬件一致性协议(如MESI)或软件管理 |
| 实时性保障 | AMP系统中不同OS的调度互不影响 | 核间中断隔离、资源分区 |
| 调试复杂性 | 多核并行调试困难 | 使用JTAG多核调试器,支持核间断点 |
三、实时操作系统(RTOS)
实时操作系统是嵌入式系统的核心软件,负责任务调度、资源管理和时间保障。
3.1 RTOS的核心特征
| 特征 | 说明 |
|---|---|
| 确定性的任务调度 | 任务切换时间、中断响应时间可预测 |
| 基于优先级的抢占式调度 | 高优先级任务可抢占低优先级任务 |
| 可预测的中断延迟 | 中断响应时间有上界 |
| 资源互斥机制 | 信号量、互斥锁、消息队列 |
| 内存管理 | 静态内存分配,避免动态分配带来的不确定性 |
3.2 RTOS任务调度算法
| 算法 | 特点 | 适用场景 |
|---|---|---|
| 优先级抢占式 | 最高优先级任务立即执行 | 强实时系统 |
| 时间片轮转 | 同级任务轮流执行 | 弱实时系统 |
| 单调速率调度(RMS) | 周期短的任务优先级高 | 周期性任务系统 |
| 最早截止时间优先(EDF) | 截止时间早的任务优先级高 | 动态实时系统 |
考试提示:RMS和EDF是实时调度理论中的经典算法,需要掌握其适用条件和优缺点。
3.3 国产RTOS实践
近年来,国产RTOS在工业控制、航空航天、物联网领域快速发展,成为考试的热点。
ReWorks:工业级国产RTOS
ReWorks是由中国电科集团研发的自主可控实时操作系统,广泛应用于国防、工业控制等领域。
技术特点:
-
支持多核SMP和AMP架构
-
支持标准POSIX API
-
提供分区调度机制,保障关键任务隔离
-
已适配龙芯、飞腾、申威等国产处理器
应用案例(2025年《集成电路与嵌入式系统》期刊):
基于ReWorks的无人智能控制系统,采用多核异构架构,实现无人机飞控与任务管理的实时协同。系统通过RPMsg机制实现ARM核(运行Linux)与DSP核(运行ReWorks)之间的通信,任务调度延迟小于50微秒。
RT-Thread:开源物联网RTOS
RT-Thread是国内最成熟的开源物联网RTOS,支持丰富的组件和中间件。
技术特点:
-
支持ARM、RISC-V、MIPS等多种架构
-
提供完善的设备框架和网络协议栈
-
支持SMP多核调度(RT-Thread Smart)
-
社区活跃,生态完善
应用场景:
-
智能家居网关
-
工业控制器
-
消费电子
鸿蒙(HarmonyOS):分布式操作系统
华为鸿蒙系统面向全场景(手机、平板、IoT、汽车)提供统一的操作系统平台。
嵌入式特性:
-
分布式软总线:自动发现和连接附近设备
-
轻量化内核:LiteOS内核,支持RAM最小128KB
-
多核调度:支持SMP和AMP混合架构
-
安全可信执行环境:基于TEE的机密计算能力
3.4 RTOS选型考虑因素
| 因素 | 说明 |
|---|---|
| 实时性要求 | 微秒级实时选择硬实时RTOS;毫秒级可选择Linux+RT补丁 |
| 硬件平台 | 是否支持目标处理器架构 |
| 开发工具 | 是否提供完善的IDE、调试器、仿真器 |
| 中间件生态 | 文件系统、网络协议栈、GUI等是否齐全 |
| 许可协议 | 开源(GPL、BSD)或商业授权 |
| 国产化要求 | 是否满足自主可控需求 |
四、嵌入式系统开发过程
4.1 交叉开发环境
嵌入式系统通常采用交叉开发模式:在宿主机(PC)上编写、编译、调试代码,生成目标机可执行文件,然后下载到目标机运行。
交叉开发工具链:
-
编译器:arm-none-eabi-gcc(ARM裸机)、aarch64-linux-gnu-gcc(ARM Linux)
-
调试器:GDB配合OpenOCD、J-Link等调试器
-
仿真器:QEMU模拟目标硬件
4.2 嵌入式软件测试
嵌入式软件测试面临硬件依赖、实时性等挑战,常用方法:
| 测试类型 | 工具 | 说明 |
|---|---|---|
| 单元测试 | CppUTest、Unity | 在宿主机上运行,通过桩函数模拟硬件 |
| 集成测试 | 硬件在环(HIL) | 连接真实硬件或仿真器 |
| 覆盖率测试 | gcov、Bullseye | 语句覆盖、分支覆盖、MC/DC覆盖 |
| 性能测试 | 逻辑分析仪、示波器 | 测量中断延迟、任务切换时间 |
考试提示:航空软件(DO-178B)要求达到MC/DC(修改条件/判定覆盖) 覆盖率,这是最高级别的测试要求。
4.3 嵌入式软件可靠性设计
| 技术 | 说明 |
|---|---|
| 看门狗定时器 | 软件定期“喂狗”,若超时未喂则硬件复位系统 |
| 心跳机制 | 周期性发送状态信号,检测任务是否挂起 |
| 双机热备 | 主备冗余,主故障时备切换 |
| 检错/纠错码 | ECC内存、CRC校验,检测并纠正数据错误 |
| 回滚恢复 | 系统异常后恢复到已知安全状态 |
五、嵌入式系统的安全性
5.1 DO-178B/C 软件等级(复习)
| 等级 | 失效后果 | 测试覆盖率要求 |
|---|---|---|
| A | 灾难性 | MC/DC 100% |
| B | 危险性 | 分支覆盖 100% |
| C | 较严重 | 语句覆盖 100% |
| D | 较轻微 | 语句覆盖部分 |
| E | 无影响 | 无要求 |
5.2 安全认证标准
| 领域 | 标准 | 说明 |
|---|---|---|
| 航空 | DO-178B/C | 机载软件 |
| 汽车 | ISO 26262 | 功能安全 |
| 医疗 | IEC 62304 | 医疗器械软件 |
| 工业 | IEC 61508 | 功能安全通用标准 |
| 铁路 | EN 50128 | 铁路应用软件 |
考试提示:ISO 26262 是汽车嵌入式软件必考知识点,其安全完整性等级(ASIL)分为 A~D 四级。
5.3 功能安全设计
功能安全的核心是避免系统失效导致不可接受的风险。常见技术包括:
-
安全分析:FMEA(失效模式与影响分析)、FTA(故障树分析)
-
安全机制:双通道比较、冗余执行、错误检测与纠正
-
安全监控:看门狗、自检、运行时监控
六、嵌入式系统发展趋势
6.1 边缘AI与NPU
随着AI模型在边缘侧部署,NPU(神经网络处理器)成为嵌入式SoC的标配。
主流NPU架构:
-
ARM Ethos-U:面向物联网的微NPU
-
华为昇腾:面向边缘计算的AI处理器
-
瑞芯微NPU:集成在RK系列芯片中
应用场景:
-
人脸识别门禁
-
语音唤醒
-
工业视觉缺陷检测
6.2 RISC-V架构
RISC-V是开放指令集架构,近年来在嵌入式领域迅速崛起。
优势:
-
开源免费,无授权费用
-
可扩展性强,可定制专用指令
-
生态逐渐完善
代表产品:
-
玄铁系列:阿里平头哥
-
SiFive:RISC-V核心IP提供商
-
沁恒微电子:RISC-V MCU
6.3 时间敏感网络(TSN)
TSN(Time-Sensitive Networking)是工业以太网的重要演进,提供确定性的低延迟传输。
在嵌入式系统中的应用:
-
工业控制:PLC与IO模块之间实时通信
-
汽车电子:车载以太网,支持AVB/TSN
-
航空电子:AFDX(ARINC 664)基于TSN技术
七、历年考点解析与真题
7.1 考点分布统计
| 知识点 | 考查频率 | 难度 | 题型 |
|---|---|---|---|
| 嵌入式系统定义与特点 | ⭐⭐⭐⭐⭐ | 低 | 选择题 |
| 处理器体系结构 | ⭐⭐⭐ | 中 | 选择题 |
| BSP与BootLoader | ⭐⭐⭐⭐ | 中 | 选择题 |
| 实时操作系统 | ⭐⭐⭐⭐ | 中 | 选择题 |
| 多核异构架构 | ⭐⭐ | 高 | 选择题/案例分析 |
| 国产RTOS | ⭐⭐ | 中 | 选择题 |
| DO-178B/ISO 26262 | ⭐⭐⭐ | 低 | 选择题 |
7.2 典型真题解析
真题1(系统架构设计师2023年上午真题):
以下关于嵌入式系统特点的描述中,错误的是( )。
A. 嵌入式系统是为特定应用而设计的专用计算机系统
B. 嵌入式系统通常具有资源受限、功耗敏感的特点
C. 嵌入式系统开发一般使用交叉编译环境
D. 嵌入式系统不需要实时性要求
正确答案:D
解析:大多数嵌入式系统(特别是工业控制、汽车电子、航空航天)对实时性有严格要求,并非不需要实时性。D选项错误。
真题2(系统架构设计师2022年上午真题):
在嵌入式系统开发中,BSP(板级支持包)的主要功能不包括( )。
A. 单板硬件初始化
B. 提供设备驱动程序
C. 实现应用程序业务逻辑
D. 为操作系统提供运行环境
正确答案:C
解析:BSP负责硬件初始化、驱动和操作系统支持,业务逻辑属于应用层,不由BSP实现。
真题3(系统架构设计师2021年上午真题):
关于多核嵌入式系统的描述,正确的是( )。
A. SMP架构中每个核运行独立的操作系统
B. AMP架构中所有核共享一个操作系统实例
C. RPMsg是AMP架构中常用的核间通信机制
D. 多核系统一定比单核系统实时性好
正确答案:C
解析:A错误:SMP是单操作系统管理所有核;B错误:AMP是每个核独立操作系统;D错误:多核可能引入调度和通信开销,不一定实时性更好。RPMsg是Linux提供的AMP核间通信机制。
真题4(系统架构设计师2020年上午真题):
以下关于实时操作系统(RTOS)的说法,错误的是( )。
A. RTOS必须支持基于优先级的抢占式调度
B. RTOS的中断延迟必须可预测
C. RTOS可以保证所有任务都在规定时间内完成
D. RTOS通常提供信号量、消息队列等同步机制
正确答案:C
解析:RTOS只能保证在满足调度分析的前提下,高优先级任务能在规定时间内完成,但若系统过载或任务设计不合理,仍可能错过截止时间。C选项过于绝对。
真题5(系统架构设计师2019年上午真题):
在航空嵌入式软件开发中,DO-178B标准将软件分为A~E五个等级,其中( )级软件要求达到MC/DC覆盖率100%。
A. A B. B C. C D. D
正确答案:A
解析:A级(灾难性)要求最高,需要MC/DC覆盖100%。
7.3 模拟题练习
模拟题1(RPMsg机制):
在AMP多核异构系统中,Linux内核通过( )机制与运行RTOS的从核进行通信。
A. Socket B. RPMsg C. Netlink D. 共享内存
正确答案:B
模拟题2(国产RTOS):
以下不属于国产嵌入式操作系统的有( )。
A. ReWorks B. RT-Thread C. VxWorks D. LiteOS
正确答案:C
解析:VxWorks是Wind River公司的商业RTOS,不是国产。
八、实践拓展案例
8.1 基于ReWorks的无人智能控制系统
背景:某研究所研发无人直升机,需要实现飞控计算机(强实时)与任务管理(弱实时)的协同。
架构设计:
-
主控核(Cortex-A53):运行Linux,负责图像处理、通信、任务调度
-
飞控核(Cortex-R5):运行ReWorks,负责飞行控制算法、传感器数据采集
-
通信:通过RPMsg实现核间通信
成果:
-
飞控循环周期1ms,抖动小于50μs
-
任务管理响应时间小于100ms
-
系统通过了GJB 5000A三级评审
8.2 智能汽车域控制器中的异构多核应用
背景:某新能源车企开发新一代中央计算平台,要求整合智能驾驶、智能座舱和车身控制。
技术方案:
-
SoC:NXP S32G 集成 Cortex-A53 x 2 + Cortex-M7 x 3
-
软件架构:
-
Cortex-A53核运行Linux(智能座舱)
-
一个Cortex-M7核运行FreeRTOS(车身控制)
-
两个Cortex-M7核运行AutoSAR(智能驾驶)
-
-
通信:通过硬件邮箱 + 共享内存
挑战与解决:
-
缓存一致性:通过配置MPU区域,将共享内存设置为非缓存区域,避免一致性问题
-
实时性保障:将高优先级控制任务绑定到专用核,防止Linux干扰
8.3 开源RT-Thread在物联网网关的应用
背景:某智能家居公司开发物联网网关,需要连接Zigbee、Wi-Fi、以太网,并支持远程管理。
选型:RT-Thread Smart(支持SMP多核)
实现:
-
双核A53:一个核处理网络协议栈,一个核处理应用逻辑
-
组件使用:LwIP(网络)、MQTT(上云)、SQLite(本地存储)
-
安全机制:TLS加密传输、安全启动
成果:
-
系统启动时间 < 5秒
-
稳定运行90天无重启
-
支持OTA远程升级
九、复习要点与备考策略
9.1 嵌入式系统核心知识图谱
嵌入式系统复习主线:
基础概念层
├── 定义与特点
├── 分类(实时性/安全性/集成度)
├── 组成结构(硬件/BSP/OS/中间件/应用)
└── 开发流程(交叉开发、调试、测试)硬件层
├── 处理器体系结构(冯诺依曼/哈佛)
├── 处理器类型(MCU/MPU/DSP/SoC/NPU)
└── 工艺分级(民用/工业/军用)软件层
├── BSP与BootLoader
├── 实时操作系统(RTOS)
├── 嵌入式软件架构(层次化/微内核)
└── 多核异构架构(SMP/AMP、RPMsg)安全与标准
├── DO-178B/C
├── ISO 26262
├── 功能安全技术
└── 安全认证流程发展趋势
├── 边缘AI/NPU
├── RISC-V
├── TSN
└── 国产化(ReWorks/RT-Thread/鸿蒙)
9.2 易错点总结
| 易错点 | 正确理解 |
|---|---|
| 冯诺依曼与哈佛混淆 | 冯诺依曼程序数据合一;哈佛分离 |
| SMP与AMP混淆 | SMP单OS多核;AMP多OS各管各核 |
| BSP包含BootLoader | BootLoader是BSP的一部分 |
| RTOS实时性 | RTOS只保证高优先级任务,不保证所有任务 |
| DO-178B等级 | A级最高(灾难性),E级最低 |
9.3 考前冲刺建议
-
吃透教材基础概念:定义、特点、组成、分类等是必考点
-
掌握BSP与BootLoader:这是考试高频题,重点记忆三个阶段的顺序和功能
-
理解多核架构:SMP/AMP、RPMsg要能区分并举例
-
关注国产RTOS:ReWorks、RT-Thread、鸿蒙等,了解其特点和适用场景
-
熟悉安全标准:DO-178B等级、ISO 26262 ASIL等级
-
结合实践案例:近年真题开始出现国产化、边缘AI等新考点,要结合行业实践
结语
嵌入式系统是计算机科学中与物理世界结合最紧密的领域,其发展始终伴随着硬件性能的提升和软件架构的演进。从单核到多核异构,从裸机编程到微内核RTOS,从工业控制到边缘AI,嵌入式系统正变得日益复杂和强大。
作为系统架构设计师,掌握嵌入式系统的基础知识,理解其软硬件协同设计思想,熟悉安全认证标准和国产化趋势,对于设计高可靠、高性能的智能系统至关重要。希望本篇能够帮助你在考试中从容应对嵌入式相关题目,并在实际工作中构建更优秀的嵌入式系统。
更多推荐



所有评论(0)