嵌入式技术全解析:从MCU到DO-178B

0 阅读1分钟

===

35岁女程序员备考系统架构师(第四篇)

本章考情:一般占2-3分,50%超纲内容,重点掌握核心概念

阅读时间:10-12分钟 | 难度:⭐⭐⭐⭐ | 技术深度:进阶

前言

嵌入式技术是硬件和软件的交汇点,虽然分值不高,却是架构师考试的重要知识点。本文将嵌入式技术的核心考点系统梳理,配合直观图表,帮助快速掌握。

💡 技术原理解码:为什么要理解嵌入式?

非科班友好解释:嵌入式 vs 传统软件

传统软件开发:

plaintext

你的电脑(Intel CPU)→ 编译 → 在你的电脑运行

嵌入式软件开发:

plaintext

你的电脑(Intel CPU)→ 交叉编译 → 嵌入式设备(ARM)运行

核心原因: 嵌入式设备的CPU架构和PC不同,不能直接用PC的编译器!

一、嵌入式系统概述

1.1 核心定义

嵌入式系统是以应用为中心、以计算机技术为基础,并将可配置与可裁减的软、硬件集成于一体的专用计算机系统,需要满足应用对功能、可靠性、成本、体积和功耗等方面的严格要求。

1.2 系统组成

组成部分

说明

考试重点

嵌入式处理器

核心部件,需抵抗恶劣环境

温度等级、处理器类型

相关支撑硬件

存储器、定时器、总线、I/O接口

存储器分类

嵌入式操作系统

管理计算机资源,具备实时性

EOS特点

支撑软件

提供开发、调试能力

交叉开发

应用软件

完成特定目标的软件

应用场景

1.3 8大核心特性

python

# 嵌入式系统8大特性
embedded_system_features = {
    "专用性强": "面向特定应用,小型化",
    "技术融合": "多技术集成,知识密集",
    "软硬一体": "以软件为主,IP核驱动",
    "资源少": "成本低,结构简单",
    "代码固化": "固化在非易失存储器",
    "需专门工具": "需开发环境和工具",
    "高性价比": "体积小、价格低、实时性强",
    "安全可靠": "对安全性和可靠性要求高"
}

1.4 宿主机 vs 目标机

核心概念:

  • 宿主机环境 = 开发环境(PC机或工作站)
  • 目标机环境 = 运行环境(嵌入式系统)

重要: 嵌入式系统的开发和运行是分离的!

二、嵌入式系统五层架构

2.1 架构图解

plaintext

┌─────────────────┐
│   应用层         │ 具体应用软件
├─────────────────┤
│   中间件层       │ 连接应用与系统
├─────────────────┤
│   操作系统层     │ EOS、文件系统、GUI
├─────────────────┤
│   抽象层         │ BSP板级支持包
├─────────────────┤
│   硬件层         │ CPU、存储器、I/O
└─────────────────┘

2.2 各层详解

硬件层:

  • 微处理器、存储器(ROM、SDRAM、Flash)
  • I/O接口(A/D、D/A、I/O)
  • 通用设备、总线、电源、时钟

抽象层:

  • 板级支持包(BSP)
  • 硬件驱动软件
  • 为操作系统提供硬件管理支持

操作系统层:

  • 嵌入式操作系统
  • 文件系统
  • 图形用户接口
  • 网络系统

中间件层:

  • 管理计算机资源和网络通信
  • 连接两个独立应用的桥梁

应用层:

  • 不同的应用软件
  • 完成特定应用目标

三、嵌入式微处理器分类

3.1 分类体系

plaintext

嵌入式处理器
├── 按字长分类
│   ├── 4位/8位/16位 = MCU(嵌入式微控制器)
│   └── 32位/64位 = MPU(嵌入式微处理器)
└── 按用途分类
    ├── MCU(微控制器)
    ├── MPU(微处理器)
    ├── DSP(数字信号处理器)
    └── SoC(片上系统)

3.2 四种处理器对比

类型

特点

典型应用

考试频率

MCU

单片化,外设丰富,体积小

工业控制,主流应用

⭐⭐⭐⭐⭐

MPU

32位+高性能,价格高

ARM、MIPS、Power PC

⭐⭐⭐⭐

DSP

哈佛结构,流水线处理

数字滤波、FFT、谱分析

⭐⭐⭐

SoC

软硬无缝结合,片内嵌入OS

专用目标集成电路

⭐⭐⭐

记忆口诀:

MCU单片控制,MPU高性能算力,DSP信号处理,SoC系统集成

3.3 工作温度等级(必考)

等级

温度范围

应用场景

考试频率

记忆方法

民用级

0℃ ~ 70℃

普通电子产品

⭐⭐

记住0和70

工业级

-40℃ ~ 85℃

工业设备

⭐⭐⭐⭐⭐

记住-40和85

军用级

-55℃ ~ 150℃

军事装备

⭐⭐⭐

记住-55和150

真题示例: 芯片工作温度范围在-45℃~85℃是工业级

四、嵌入式存储器

4.1 ROM分类矩阵

类型

全称

特点

擦除方式

可修改性

成本

应用场景

Mask ROM

Mask ROM

掩模型,成本低

-

❌ 永久固化

最低

固件

PROM

Programmable ROM

一次可编程

-

❌ 只能写一次

预编程

EPROM

Erasable PROM

有透明窗口

紫外线

⚠️ 紫外线擦除

开发调试

EEPROM

Electrically EPROM

电可擦

电信号

✓ 可电改写

较高

即插即用

Flash Memory

Flash Memory

快闪

电信号

✓ 板上修改

中等

通用

记忆技巧:

python

rom_classification = {
    "Mask": "最便宜(永久)",
    "PROM": "一次写",
    "EPROM": "有窗口(紫外线)",
    "EEPROM": "电擦除",
    "Flash": "最常用(板上修改)"
}

4.2 存储层次结构

plaintext

寄存器 → Cache → 主存(RAM) → 辅存(ROM)
速度最快               速度最慢
容量最小               容量最大
成本最高               成本最低

五、嵌入式操作系统(EOS)

5.1 EOS分类

实时操作系统(RTOS)

  • VxWorks
  • Nucleus
  • uC/OS-II
  • 嵌入式Linux
  • Windows Embedded

非实时操作系统

  • Android
  • iOS
  • WinCE

5.2 EOS vs 通用操作系统

维度

EOS

通用OS

考试重点

微型化

✓ 代码小巧

✗ 功能丰富

代码质量高

实时性

✓ 强实时

✗ 弱实时

实时性强

可裁减

✓ 灵活配置

✗ 功能固定

可裁减和可配置

专业化

✓ 适应多种平台

✗ 通用性强

专业化

5.3 实时系统(必考)

硬实时 vs 软实时:

类型

定义

保证方式

响应特性

应用场景

硬实时

规定时间内必须完成

系统设计保证

可预测性

航空、医疗

软实时

按优先级尽可能快完成

优先级调度

尽可能快

多媒体

确定性 vs 可预测性:

  • 可预测性: 系统运行前功能、响应特性可预测
  • 确定性: 给定条件在确定时间给出确定结果

💡 技术原理解码:硬实时 vs 软实时

硬实时 = 红绿灯倒计时

  • 必须精确到秒,否则就车祸
  • 系统设计保证在规定时间内完成

软实时 = 外卖送达时间

  • 30-40分钟都行,晚了给优惠券
  • 按优先级调度,尽可能快完成

六、嵌入式软件开发

6.1 交叉开发环境

plaintext

┌─────────────┐          ┌─────────────┐
│   宿主机    │ 通信连接  │   目标机    │
│  (开发环境) │<--------->│  (运行环境) │
├─────────────┤          ├─────────────┤
│ 交叉编译器  │          │ 实时操作系统 │
│ 调试器      │          │ 目标程序    │
│ 开发工具    │          │            │
└─────────────┘          └─────────────┘

通信方式:

  • 以太网
  • USB
  • 串口

6.2 交叉编译

定义: 在一个平台上生成可在另一个平台执行的代码

为什么需要交叉编译?

bash

# 交叉编译示例
gcc main.c -o main              # 本机编译
arm-linux-gcc main.c -o main   # 交叉编译(目标机是ARM)

原因:

  • 不同的CPU有不同的指令系统
  • 宿主机(PC)编译→目标机(嵌入式)运行

6.3 交叉调试

调试流程:

plaintext

调试器(宿主机)
    ↓ [串口/网络通信]
被调试程序(目标机)

vs 传统调试:

  • 传统:调试器和被调试程序在同一台机器
  • 嵌入式:交叉调试,跨设备通信

七、安全攸关标准(DO-178B)

7.1 DO-178B三要素

python

class DO178B:
    def __init__(self):
        self.目标 = 66  # 根据安全等级不同
        self.过程 = ["软件计划", "软件开发", "软件综合"]
        self.数据 = ["文档", "代码", "报表", "记录"]

7.2 安全等级分类(必考)

等级

失效状态

目标数量

记忆方法

考试频率

A级

灾难性的(无法安全飞行)

66

A=All(66个目标)

⭐⭐⭐⭐⭐

B级

危害性的

65

B=Big(65个目标)

⭐⭐⭐⭐

C级

严重的

56

C=Catastrophe(56个目标)

⭐⭐⭐

D级

不严重的

28

D=Dangerous(28个目标)

⭐⭐

E级

没有影响的

-

E=Excellent(0目标)

记忆技巧: A(66) > B(65) > C(56) > D(28) > E(0)

7.3 DO-178B vs CMMI

对比维度

DO-178B

CMMI

考试重点

视角

适航审定

过程改进

视角不同

关注点

安全性

组织能力

安全性是重点

范围

聚焦软件

系统+软件+硬件

聚焦软件

精确度

更具体

较抽象

DO-178B更具体

结论: DO-178B目标更清晰,要求更具体,针对安全攸关软件。

八、历年真题解析

真题1(2019年)

芯片的工作温度范围在-45℃~85℃是( )级别的芯片

  • A. 军用级
  • B. 民用级
  • C. 通用级
  • D. 工业级

答案:D

解析:

  • 民用级:0~70℃
  • 工业级:-40~85℃
  • 军用级:-55~150℃

真题2(2020年)

以下关于嵌入式系统的说法中,正确的是( )

  • A. 嵌入式系统是软硬一体,以软件为主,且通用的
  • B. 嵌入式系统开发和编译调试可以在一台设备上完成
  • C. 嵌入式系统通常屏蔽操作系统的复杂性,直接运行特定的应用程序
  • D. 嵌入式系统分为硬件层、抽象层、操作系统层、应用层等4层

答案:C

解析:

  • A错误:嵌入式系统是专用的,不是通用的
  • B错误:开发和运行分离(交叉开发)
  • D错误:是5层架构(还有中间件层)

真题3(2021年)

嵌入式处理器叙述中,错误的是( )

  • A. MPU在安全性和可靠性等方面进行增强
  • B. MCU典型代表是单片机,体积小从而使功耗和成本下降
  • C. DSP处理器适合数字信号处理
  • D. SOC是一个有专用目标的集成电路

答案:A

解析:

MPU的特点是:

  • 保留嵌入式相关功能
  • 去除冗余功能
  • 以最低功耗和资源实现应用
  • 不是在安全性和可靠性方面增强

九、备考策略

9.1 高频考点总结

plaintext

嵌入式技术高频考点
├── 五层架构(硬件层→抽象层→操作系统层→中间件层→应用层)
├── 处理器分类(MCU/MPU/DSP/SoC)
├── 温度等级(工业级:-40~85℃)
├── ROM分类(Mask/PROM/EPROM/EEPROM/Flash)
├── 实时系统(硬实时/软实时)
└── DO-178B安全等级(A/B/C/D/E)

9.2 记忆口诀

处理器分类:

python

processor_memory = {
    "MCU": "单片控制",
    "MPU": "高性能算力",
    "DSP": "信号处理",
    "SoC": "系统集成"
}

温度等级:

plaintext

民用0-70
工业-40-85(记住-40和85)
军用-55-150

安全等级:

plaintext

A66 B65 C严56 D轻28

9.3 60天冲刺计划

阶段

时间

重点内容

目标

基础阶段

15天

理解五层架构、嵌入式系统特性

掌握基础概念

分类阶段

20天

掌握MCU/MPU/DSP/SoC分类、温度等级、ROM分类

分类记忆

刷题阶段

15天

历年真题、DO-178B标准

提升准确率

模拟阶段

10天

综合模拟、错题复盘

查漏补缺

🚀 职场应用:这个知识点怎么用到工作中?

嵌入式五层架构 → 系统设计思维

plaintext

嵌入式架构           软件系统架构
─────────────────────────────────
硬件层    =  基础设施(数据库、服务器)
抽象层    =  中间件(缓存、消息队列)
操作系统层=  框架层(Spring、Django)
中间件层  =  业务抽象(公共服务)
应用层    =  具体业务(订单、支付)

理解了嵌入式架构,就能更好地理解软件系统的分层设计!

十、技术要点总结

10.1 嵌入式系统核心本质

python

embedded_system_essence = {
    "专用性": "硬件裁剪 + 软件剪裁",
    "分离性": "宿主机开发 + 目标机运行",
    "实时性": "确定性 + 可预测性",
    "安全性": "代码审定 + 安全攸关"
}

10.2 嵌入式软件 vs 传统软件

对比维度

嵌入式软件

传统软件

考试重点

开发

交叉开发

同平台开发

交叉开发

存储

固化存储

磁盘存储

代码固化

实时性

强实时

弱实时

强实时性

安全性

高要求

一般

安全可靠性

十一、写在最后

嵌入式技术虽然分值不高,但却是硬件和软件结合的重要知识点。

对于35岁的非科班程序员来说,理解嵌入式系统的"专用性"本质,记住五层架构和处理器分类,应对考试绰绰有余。

备考核心:理解专用性、记住五层、分类掌握