软考:高级软件架构师学习笔记----嵌入式技术
学前说两句
嵌入式技术在整个架构师软考中占比也不是太高,而且和其它的章节关联度不是太高,我当时准备了鸿蒙操作系统,也没有考,这个章节还是比较简单的,主要是看几遍刷刷题就好了,不需要理解啥。
课程概要
嵌入式系统概述
硬件抽象层是为了解耦操作系统和硬件层之间的关系,抽象硬件层
中间件层:屏蔽底层操作系统层
板级支持包:易抑制
嵌入式组成部件(硬件)
典型架构
层次架构
递归架构
层次化模式架构核心知识
- 核心结构
- 分层依赖:高层抽象依赖低层具体实现,通过接口交互。例如应用层调用操作系统API,操作系统管理硬件驱动。
- 双类型分类:
- 封闭型:严格限制层间调用(如只能调用同层或下一层),确保高移植性(如嵌入式系统跨平台适配)。
- 开放型:允许跨多层调用,优化性能(如实时系统直接访问硬件加速模块)。
- 关键优势
- 模块化清晰,故障隔离(如某层故障不影响其他层)。
- 接口标准化,降低开发复杂度(如POSIX标准接口)。
递归模式架构核心知识
- 核心机制
- 双向开发流:
- 自顶向下:从系统级需求分解为子系统(如先定义网络模块,再细化协议栈)。
- 自底向上:从基础组件构建高级功能(如先实现传感器驱动,再集成环境监测系统)。
- 包含关系迭代:通过重复嵌套对象/子系统实现复杂功能(如嵌套的异常处理机制)。
- 双向开发流:
- 关键优势
- 灵活适应需求变化(如快速调整算法模块位置)。
- 协作式开发支持(如多个团队并行开发不同层级模块)。
嵌入式系统的发展历史
| 历史阶段 | 一句话说明 | 核心差异点 |
|---|---|---|
| 单片微型计算机(SCM) | 将CPU、存储器、I/O接口集成于单一芯片,实现基础计算与控制功能 | 首次实现"芯片级系统"概念,奠定嵌入式物理基础 |
| 微控制器(MCU) | 集成ADC/DAC、定时器等外设并引入低功耗设计,提升系统可靠性 | 从"纯计算"转向"计算+外设"集成,支持复杂控制场景 |
| 片上系统(SoC) | 集成GPU/DSP/基带处理器等专用模块,支持多媒体处理与异构计算 | 从"通用计算"转向"专用计算"集成,实现片上异构架构 |
| 联网嵌入式 | 集成TCP/IP协议栈与无线通信模块,支持物联网协议与云端交互 | 从"单机运行"转向"设备-云端"双向通信,构建物联网基础 |
| 智能云化 | 集成AI加速单元并支持边缘-云端协同,实现实时智能决策 | 从"被动响应"转向"主动智能",形成"端-边-云"三级架构 |
嵌入式微处理器
SOC不只是一款有运算能力的芯片
嵌入式操作系统
嵌入式操作系统的定义
![]()
按时间敏感度进行分类
还有一个特点就是固化,可裁剪、可配置是说可定制化
没有明确在什么时间内处理完成
嵌入式操作系统调度算法
按安全进行分类
操作系统内核架构
微内核和宏内核
操作系统的空间分为用户空间和内核空间
按照内核空间的复杂程度可以分为宏内核和微内核,可以看到,宏内核(单体内核)内部的功能很多,而微内核的功能不多,然后把一部分功能放到了用户空间来做了。
优缺点
微内核代码量少,一般不会相互调用的,而且性能偏低
为什么说微内核适合于分布式系统呢?
在微内核中,客户进程通过核心态请求到用户态中的服务器,是一种B/S架构,所以可以分布式调用。
鸿蒙系统内核架构
鸿蒙系统使用的是微内核
嵌入式数据库
特点
按照数据存储位置进行分类
嵌入式软件开发
中断和查询是IO数据传输方式的两种。中断情况下微处理器的效率会更高一些
思维导图
# 嵌入式技术 - 核心知识思维导图 │ ├── 0️⃣ 嵌入式系统概述 (★★) │ ├── 基本概念 │ │ ├── 以应用为中心,计算机技术为基础 │ │ ├── 软硬件可配置、可裁剪 │ │ ├── 满足功能、可靠性、成本、体积、功耗要求 │ │ └── 作为部件埋藏于控制装置中 │ ├── 组成 │ │ ├── 嵌入式处理器 │ │ ├── 相关支撑硬件 │ │ ├── 嵌入式操作系统 │ │ ├── 支撑软件 │ │ └── 应用软件 │ ├── 嵌入式中间件 │ │ └── 作用:抽象底层硬件,屏蔽硬件差异 │ ├── 典型架构 │ │ ├── 层次化模式架构 │ │ │ ├── 封闭型:一层只能调用同层或下一层(封装性好,移植性强) │ │ │ └── 开放型:一层可调用任意层(性能高,耦合度高) │ │ └── 递归模式架构 │ │ ├── 自顶向下:从系统整体拆分为子系统 │ │ └── 自底向上:从功能域构建抽象 │ └── 初始化过程 │ ├── 片级初始化:CPU内核、寄存器、中断向量 │ ├── 板级初始化:内存、时钟、外设等板级硬件 │ └── 系统级初始化:OS启动、任务/服务创建 │ ├── 1️⃣ 嵌入式硬件 (★★) │ ├── 发展历程 │ │ ├── 第一阶段:单片微型计算机(SCM) │ │ ├── 第二阶段:微控制器(MCU) │ │ ├── 第三阶段:片上系统(SoC) │ │ ├── 第四阶段:以Internet为基础(联网嵌入式) │ │ └── 第五阶段:智能化、云技术推动(AIoT) │ └── 嵌入式微处理器 │ ├── MPU(微处理器):仅CPU,需外配存储器和I/O │ ├── MCU(微控制器/单片机):集成CPU、RAM、ROM、I/O │ ├── DSP(数字信号处理器):哈佛结构,擅长数学计算 │ ├── GPU(图形处理器):并行计算强,峰值可达100 TFlops以上 │ └── SoC(片上系统) │ ├── 不只是一块处理器,而是一个微小型系统 │ ├── CPU是大脑 │ ├── SoC包含:大脑(CPU)、心脏(总线/DMA)、眼睛和手(外设接口) │ ├── 集成微处理器、模拟IP核、数字IP核、存储器 │ └── 面向特定用途的标准产品(ASSP) │ ├── 2️⃣ 嵌入式操作系统 (★★★) │ ├── 定义与特点 │ │ ├── 负责软硬件资源分配、任务调度 │ │ ├── 包含:底层驱动、内核、设备接口、通信协议、图形界面等 │ │ ├── 微型化 │ │ ├── 代码质量高 │ │ ├── 专业化 │ │ ├── 实时性强 │ │ ├── 可裁剪、可配置 │ │ └── 可固化(程序固化在ROM中) │ ├── 系统分类 │ │ ├── 按时间敏感度 │ │ │ ├── 嵌入式非实时系统(如老式手机) │ │ │ └── 嵌入式实时系统(RTOS) │ │ └── 按安全性要求 │ │ ├── 安全攸关系统(汽车、医疗) │ │ └── 非安全攸关系统(普通家电) │ ├── 实时操作系统实时性评价指标 │ │ ├── 中断响应和延迟时间 │ │ ├── 任务切换时间 │ │ └── 信号量混洗时间(任务间同步的开销) │ ├── 实时操作系统调度算法 │ │ ├── 时间片轮转 │ │ ├── 优先级调度(非抢占) │ │ │ ├── 为每个任务分配固定优先级 │ │ │ └── 按优先级高低排队运行 │ │ ├── 抢占式优先级调度 │ │ │ ├── 高优先级任务可抢占低优先级 │ │ │ └── 优先级由任务紧急程度决定 │ │ ├── RMS(单调速率调度) │ │ │ └── 周期越短,优先级越高(固定优先级) │ │ ├── EDF(最早截止期优先) │ │ │ └── 截止时间越早,优先级越高(动态优先级) │ │ └── LLF(最低松弛度优先) │ │ └── 松弛度 = 截止期 - 当前时间 - 剩余执行时间 │ └── 操作系统内核架构 │ ├── 核心概念:内核是操作系统核心,管理资源 │ ├── 单体内核(宏内核) │ │ ├── 功能:图形、驱动、文件系统全在内核中 │ │ ├── 优点:函数直接调用,效率高 │ │ ├── 缺点:庞大、稳定性差、安全性低 │ │ └── 代表:Linux内核(早期/传统) │ └── 微内核 │ ├── 功能:只实现IPC、调度、内存管理等基本功能 │ ├── 特点:服务和驱动在用户态(服务化) │ ├── 代表:鸿蒙、QNX、L4 │ ├── 优点:结构清晰、可裁剪、安全稳定、高可靠 │ └── 缺点:传统实现效率较差(IPC/上下文切换开销),现代微内核已大幅优化 │ ├── 3️⃣ 鸿蒙操作系统 (★★★) │ ├── 概述:华为研发的面向全场景的分布式操作系统 │ ├── 技术特性 │ │ ├── 分布式架构(软总线) │ │ ├── 确定时延引擎 + 高性能IPC │ │ ├── 基于微内核架构的可信安全 │ │ └── 统一IDE,一次开发多端部署 │ └── 架构层次(自下而上) │ ├── 内核层 │ │ ├── 微内核设计(LiteOS-A) │ │ └── 内核抽象层(支持多内核,含Linux) │ ├── 系统服务层 │ ├── 框架层 │ └── 应用层 │ ├── 4️⃣ 嵌入式数据库 (★) │ ├── 特点 │ │ ├── 嵌入式(无需独立数据库服务器进程) │ │ ├── 实时性 │ │ ├── 移动性 │ │ └── 伸缩性 │ └── 分类 │ ├── 基于内存的数据库(MDB):速度快,掉电易失 │ ├── 基于文件的数据库(FDB) │ │ ├── 以文件方式存储,安全性低 │ │ └── 满足空间/时间受限场景(如SQLite) │ └── 基于网络的数据库(NDB) │ ├── 客户端 + 通信协议 + 远程服务器 │ ├── 无需解析SQL(客户端小巧) │ └── 注意:不正确的是“以文件方式存储” │ ├── 5️⃣ 嵌入式系统设计 (★) │ ├── 软件开发与调试 │ │ ├── JTAG:国际标准测试协议(调试/烧录接口) │ │ ├── 仿真器/烧录器 │ │ └── 串口调试输出 │ ├── 功耗控制 │ │ ├── 软硬件协同设计 │ │ ├── 编译优化 │ │ ├── 减少持续运行时间(算法优化) │ │ ├── 用“中断”代替“查询”(避免空转) │ │ └── 电源有效管理(调频/休眠/动态电压调节) │ ├── 常见考点:Bootloader(U-Boot)、看门狗、中断处理流程 │ └── 内存管理:MMU、虚拟地址与物理地址映射(部分RTOS无MMU) │ └── 6️⃣ 习题与考点提示 (★★★) ├── 嵌入式中间件作用:抽象底层硬件(正确) ├── 典型架构:层次化 + 递归模式(正确) ├── GPU峰值性能:100 TFlops以上(正确) ├── 实时操作系统特点:不包括“通用性”(正确) ├── 实时系统响应时间:被控对象允许的时间范围内(正确) ├── 微内核特征:不包括“功能代码互相调用,性能很高”(正确) ├── 鸿蒙内核:微内核(基本正确,注意实际实现中存在多内核) ├── NDB特征:不包括“以文件方式存储”(正确) ├── 补充考点:Bootloader的作用(硬件初始化→加载OS) ├── 补充考点:看门狗定时器(防止系统死锁) ├── 补充考点:中断响应流程(保护现场→执行ISR→恢复现场) └── 补充考点:任务间通信方式(信号量、消息队列、事件标志组)# 嵌入式技术 - 核心知识思维导图
│
├── 0️⃣ 嵌入式系统概述 (★★)
│ ├── 基本概念
│ │ ├── 以应用为中心,计算机技术为基础
│ │ ├── 软硬件可配置、可裁剪
│ │ ├── 满足功能、可靠性、成本、体积、功耗要求
│ │ └── 作为部件埋藏于控制装置中
│ ├── 组成
│ │ ├── 嵌入式处理器
│ │ ├── 相关支撑硬件
│ │ ├── 嵌入式操作系统
│ │ ├── 支撑软件
│ │ └── 应用软件
│ ├── 嵌入式中间件
│ │ └── 作用:抽象底层硬件
│ ├── 典型架构
│ │ ├── 层次化模式架构
│ │ │ ├── 封闭型
│ │ │ │ └── 一层中的对象只能调用同一层或下一底层(封装移植性好)
│ │ │ └── 开放型
│ │ │ └── 一层中的对象可以调用任意一层(性能好)
│ │ └── 递归模式架构
│ │ ├── 自顶向下
│ │ │ └── 从系统层级开始,标识结构对象,分为子系统,向下推进
│ │ └── 自底向上
│ │ └── 专注于域的构造,实现子系统级的抽象
│ └── 初始化过程
│ ├── 片级初始化
│ ├── 板级初始化
│ └── 系统级初始化
│
├── 1️⃣ 嵌入式硬件 (★★)
│ ├── 发展历程
│ │ ├── 第一阶段:单片微型计算机(SCM)
│ │ ├── 第二阶段:微控制器(MCU)
│ │ ├── 第三阶段:片上系统(SoC)
│ │ ├── 第四阶段:以Internet为基础
│ │ └── 第五阶段:智能化、云技术推动
│ └── 嵌入式微处理器
│ ├── MPU(微处理器)
│ ├── MCU(微控制器,单片机)
│ ├── DSP(信号处理器,哈佛结构)
│ ├── GPU(图形处理器)
│ │ └── 峰值性能可高达100 TFlops以上
│ └── SoC(片上系统)
│ ├── 不只是一块处理器芯片
│ ├── 是一个微小型系统
│ ├── CPU是大脑
│ ├── SoC包含:大脑、心脏、眼睛和手
│ ├── 集成微处理器、模拟IP核、数字IP核、存储器
│ └── 面向特定用途的标准产品
│
├── 2️⃣ 嵌入式操作系统 (★★★)
│ ├── 定义与特点
│ │ ├── 负责软硬件资源分配、任务调度
│ │ ├── 包括底层驱动、内核、设备接口、通信协议、图形界面等
│ │ ├── 微型化
│ │ ├── 代码质量高
│ │ ├── 专业化
│ │ ├── 实时性强
│ │ ├── 可裁剪、可配置
│ │ └── 可固化
│ ├── 系统分类
│ │ ├── 按时间敏感度
│ │ │ ├── 嵌入式非实时系统
│ │ │ └── 嵌入式实时系统
│ │ └── 按安全性要求
│ │ ├── 安全攸关系统
│ │ └── 非安全攸关系统
│ ├── 实时操作系统实时性评价指标
│ │ ├── 中断响应和延迟时间
│ │ ├── 任务切换时间
│ │ └── 信号量混洗时间
│ ├── 实时操作系统调度算法
│ │ ├── 时间片轮转
│ │ ├── 优先级调度
│ │ │ ├── 系统为每个任务分配一个相对固定的优先顺序
│ │ │ └── 调度程序根据优先级的高低排序
│ │ ├── 抢占式优先级调度
│ │ │ ├── 在优先级算法的基础上,允许高优先级抢占低优先级任务
│ │ │ └── 根据紧急程度确定该任务的优先级
│ │ ├── RMS(单调速率调度)
│ │ │ └── 任务周期越短,优先级越高
│ │ ├── EDF(最早截止期调度)
│ │ │ └── 根据任务截止时间头端来确定优先级
│ │ └── LLF(最低松弛度优先)
│ │ └── 根据任务截止时间末端来确定优先级
│ └── 操作系统内核架构
│ ├── 核心概念:操作系统内核是操作系统的核心,管理各种资源
│ ├── 单体内核(宏内核)
│ │ ├── 将图形、设备驱动及文件系统等功能全部在内核中实现
│ │ ├── 优点:效率高
│ │ └── 缺点:内核庞大,稳定性安全性差
│ └── 微内核
│ │ ├── 只实现基本功能,将图形系统、文件系统、设备驱动及通信功能放在内核之外
│ │ ├── 代表:鸿蒙操作系统
│ │ ├── 优点:结构清晰、可裁剪、安全稳定
│ │ └── 缺点:性能偏低
│
├── 3️⃣ 鸿蒙操作系统 (★★★)
│ ├── 技术特性
│ │ ├── 分布式架构
│ │ ├── 确定时延引擎 + 高性能IPC
│ │ ├── 基于微内核架构的可信安全
│ │ └── 统一IDE,一次开发多端部署
│ └── 架构层次
│ ├── 内核层(微内核设计)
│ ├── 系统服务层
│ ├── 框架层
│ └── 应用层
│
├── 4️⃣ 嵌入式数据库 (★)
│ ├── 特点
│ │ ├── 嵌入式
│ │ ├── 实时性
│ │ ├── 移动性
│ │ └── 伸缩性
│ └── 分类
│ ├── 基于内存的数据库(MDB)
│ ├── 基于文件的数据库(FDB)
│ │ └── 安全性低,但满足空间/时间要求
│ └── 基于网络的数据库(NDB)
│ ├── 客户端 + 通信协议 + 远程服务器
│ ├── 无需解析SQL,客户端小
│ └── 不正确的是:以文件方式存储
│
├── 5️⃣ 嵌入式系统设计 (★)
│ ├── 软件开发与调试
│ │ └── JTAG(国际标准测试协议)
│ └── 功耗控制
│ ├── 软硬件协同设计
│ ├── 编译优化
│ ├── 减少持续运行时间(算法优化)
│ ├── 用“中断”代替“查询”
│ └── 电源有效管理
│
└── 6️⃣ 习题与考点提示 (★★★)
├── 嵌入式中间件作用:抽象底层硬件
├── 典型架构:层次化 + 递归模式
├── GPU峰值性能:100 TFlops以上
├── 实时操作系统特点:不包括“通用性”
├── 实时系统响应时间:被控对象允许的时间范围内
├── 微内核特征:不包括“功能代码互相调用,性能很高”
├── 鸿蒙内核:微内核,不是宏内核
└── NDB特征:不包括“以文件方式存储”