当前位置: 首页 > news >正文

嵌入式 - ARM(1):ARM体系结构

文围绕计算机系统基础架构、存储器体系、处理器分类、ARM 架构及关键扩展问题展开,对核心概念进行系统化梳理与补充,兼顾理论定义与实际应用场景,适合嵌入式开发入门及计算机硬件基础学习。

一、计算机系统基础

计算机系统由硬件(物理载体)和软件(逻辑功能层)组成,二者协同实现数据处理与指令执行。

(一)软件组成

软件按功能分为系统软件和应用软件,前者为基础运行环境,后者满足特定业务需求:

  • 系统软件:支撑计算机硬件运行的底层软件,负责资源调度与硬件管理,是应用软件的运行基础。
    • 核心类型:操作系统(Windows 11、Linux Ubuntu、macOS)、驱动程序(显卡驱动、声卡驱动)、编译器(GCC、Clang)、数据库管理系统(MySQL、SQLite)。
  • 应用软件:面向用户特定需求开发的软件,依赖系统软件运行。
    • 常见类型:办公软件(Microsoft Office、WPS)、设计软件(Photoshop、AutoCAD)、娱乐软件(游戏《原神》、视频播放器 PotPlayer)、行业软件(医疗影像系统、工业控制软件)。

(二)硬件组成

硬件遵循冯・诺依曼体系核心框架(“存储程序” 原理:程序与数据一同存储,按指令顺序执行),由五大核心部件构成,各部件通过总线协同工作:

核心部件英文缩写核心功能关键特点与示例
运算器ALU执行算术运算(加 / 减 / 乘 / 除 / 模)和逻辑运算(与 / 或 / 非 / 异或 / 比较)CPU 的核心运算单元,运算速度决定计算机 “计算能力”;如 Intel Core i9 的 ALU 支持 128 位向量运算
控制器CU协调各部件同步工作,控制指令执行流程(指令预取→译码→执行→写回)计算机 “大脑中枢”,通过时钟信号、读写信号指挥硬件;如 CPU 的控制单元调度 Cache 与内存的数据交互
存储器Memory存储程序代码与数据,按 “速度 - 容量 - 成本” 权衡分为多级存储体系详见 “第二章 存储器分类”,如 RAM 存运行中的程序,ROM 存操作系统镜像
输入设备Input将外部信息(用户操作、物理信号)转换为计算机可识别的电信号键盘(输入文字)、鼠标(定位操作)、传感器(温度传感器 DS18B20 采集环境温度)、摄像头(采集图像)
输出设备Output将计算机处理后的电信号转换为人类可感知的信息(视觉 / 听觉)或物理动作显示器(显示图像)、打印机(打印文档)、音箱(播放声音)、电机(机器人运动驱动)

二、存储器分类

存储器按 “速度由快到慢、容量由小到大、成本由高到低” 分为四级,形成多级存储体系,平衡速度与成本(CPU 优先访问高速存储,减少对低速存储的依赖):

类型英文全称核心特性应用场景与示例
寄存器(Register)CPU Internal Register1. 位于 CPU 内部,速度最快(纳秒级,<1ns);
2. 容量极小(几十~几百字节);
3. 临时存储指令执行中的数据 / 地址;
4. 按功能分通用寄存器(R0-R12)、特殊功能寄存器
CPU 内部数据缓存,如 PC(程序计数器,存下一条指令地址)、SP(栈指针,管理函数栈空间)、CPSR(程序状态寄存器)
高速缓存(Cache)High-Speed Cache Memory1. 位于 CPU 与主存之间,速度次之(纳秒级,~10ns);
2. 容量较小(KB~MB 级,如 L1 Cache 64KB、L2 Cache 256KB);
3. 缓存 CPU 频繁访问的指令 / 数据;
4. 分 I-Cache(指令缓存)、D-Cache(数据缓存)
减少 CPU 访问主存的延迟,如 Intel Core i7 的 L3 Cache 为 16MB,供多核共享;游戏运行时,常用纹理数据存于 Cache
随机存取存储器(RAM)Random Access Memory1. 即 “主存 / 内存”,速度中等(纳秒级,~100ns);
2. 容量较大(MB~GB 级,如 4GB、16GB、64GB);
3. 可读写,掉电后数据丢失(易失性);
4. 可被 CPU 直接寻址(按字节寻址);
5. 分 DRAM(动态 RAM,如 DDR5)、SRAM(静态 RAM,速度快但成本高)
存储运行中的程序与临时数据,如 Windows 系统加载到 RAM 中运行;游戏进程的临时数据(角色位置、血量)存于 RAM
只读存储器(ROM)Read-Only Memory1. 即 “外存 / 辅存”,速度较慢(微秒级,~100μs);
2. 容量大(GB~TB 级,如 512GB SSD、2TB HDD);
3. 非易失性(掉电数据不丢失);
4. 现多为可擦写(如 Flash ROM、EEPROM);
5. 不可被 CPU 直接寻址(需通过块设备驱动访问)
长期存储静态数据,如 SSD 存操作系统镜像(Windows 镜像)、U 存存用户文档、嵌入式设备的 Flash 存固件(路由器固件)

补充:Cache 按层级分 L1(CPU 内核独占)、L2(CPU 内核独占或共享)、L3(多核共享),层级越低(L1)速度越快、容量越小。

三、处理器体系

处理器是计算机的 “运算与控制核心”,按应用领域分为通用计算机处理器(面向 PC、服务器)和嵌入式处理器(面向家电、工业控制)两大类。

(一)通用计算机处理器

面向高算力、通用场景,强调多任务处理与复杂计算能力:

处理器类型英文全称定位与核心功能代表产品与应用场景
中央处理器(CPU)Center Processing Unit通用计算核心,类比 “公司 CEO”;负责指令执行、数据运算、系统资源(内存、外设)调度;支持多任务并发(如同时运行浏览器、微信、游戏)Intel Core i7-14700K(PC 端)、AMD Ryzen 9 7950X(PC 端)、Intel Xeon Platinum 8480(服务器端,用于云计算)
图形处理器(GPU)Graphics Processing Unit专用图形与并行计算核心,类比 “公司体力劳动者”;核心数量多(上千个),擅长大规模并行数据处理(如像素渲染、矩阵运算)NVIDIA GeForce RTX 4090(PC 端游戏 / 图形设计)、AMD Radeon RX 7900 XT(PC 端)、NVIDIA A100(数据中心端,用于 AI 模型训练)
浮点运算单元(FPU)Floating-Point UnitCPU/GPU 内部的专用模块;负责浮点型数据(带小数点,如 3.14、0.618)的运算;提升科学计算、工程模拟效率集成于 CPU(如 Intel Core 系列的 FPU 支持 AVX-512 指令集)、GPU(如 NVIDIA GPU 的 Tensor Core 支持浮点运算);应用于气象模拟、3D 建模

(二)嵌入式领域处理器

面向低功耗、高集成度、特定场景,强调 “按需定制”(无需通用算力,仅满足专属功能):

处理器类型英文全称核心特性应用场景代表产品
微处理器(MPU)Micro Processing Unit1. 偏向 “数据处理”,通用计算能力强;
2. 需外接内存(RAM)、存储(ROM)、外设;
3. 支持复杂操作系统(Linux、Android)
智能设备、工业控制主机(如智能家居网关、车载信息娱乐系统)NXP I.MX6ULL、Samsung S5PV210
微控制器(MCU)Micro Control Unit1. 偏向 “控制”,高集成度(片上集成 RAM、ROM、GPIO、UART 等外设);
2. “单芯片即可工作”,无需外接大量元件;
3. 低功耗、低成本,支持 RTOS(实时操作系统)或裸机编程
小型嵌入式控制(如空调控制板、智能门锁、传感器节点)STM32F103(STM32 系列)、Atmel ATmega328P(Arduino Uno 核心)
数字信号处理器(DSP)Digital Signal Processing Unit1. 专为 “高强度数字信号运算” 设计,支持快速乘法 - 累加(MAC) 操作;
2. 实时性强,适合时序信号处理(音频、视频、雷达信号);
3. 指令集优化并行运算
音频处理(降噪、均衡器)、视频编码、工业检测(振动分析)、医疗设备(心电图处理)Texas Instruments TMS320C6000、ADI ADSP-SHARC
片上系统(SoC)System on Chip1. 集成 “处理器核心 + 外设 + 存储 + 专用模块” 的完整系统,类比 “城市蓝图”;
2. 可集成 MPU/MCU/DSP/GPU/Modem(调制解调器);
3. 高集成度、小体积,适合便携设备
智能手机、平板电脑、智能手表、物联网网关Qualcomm Snapdragon 8 Gen3(手机 SoC)、Apple A17 Pro(iPhone SoC)、华为麒麟 9000S(手机 SoC)

四、ARM 架构与内核

ARM(Advanced RISC Machines)架构是嵌入式领域主流架构,基于 RISC(精简指令集)设计,核心优势是 “低功耗、高性能、小体积”,广泛应用于智能手机、物联网设备、工业控制。

(一)ARM 核心系列与应用场景

ARM 内核按性能与场景分为三大系列,覆盖从低功耗 MCU 到高性能 SoC:

核心系列定位与核心特点应用场景典型型号
Cortex-A高性能、多核心;支持复杂操作系统(Linux、Android);侧重通用计算与多任务处理智能手机、平板电脑、机顶盒、工业控制主机Cortex-A7(入门级)、Cortex-A53(中低端手机)、Cortex-A78(高端手机,如骁龙 888 用 A78 核心)
Cortex-R高实时性、高可靠性;支持硬实时任务(任务响应时间可预测);侧重安全与稳定工业控制(如 PLC)、汽车电子(如发动机控制)、医疗设备(如呼吸机)Cortex-R5(工业控制)、Cortex-R8(汽车电子)
Cortex-M低功耗、低成本、小体积;支持裸机编程或轻量级 RTOS;侧重简单控制任务传感器节点、小型控制器(如智能灯、遥控器)、家电控制板Cortex-M0(超低功耗)、Cortex-M4(支持浮点运算,用于电机控制)、Cortex-M7(高性能 MCU,用于工业检测)

(二)主流 ARM 芯片与开发板

开发板是学习 ARM 架构的核心工具,提供硬件平台与软件支持(驱动、SDK):

类别代表厂商 / 产品核心参数与特点适用场景(学习 / 开发)
主流 SoC 芯片NXP(恩智浦):I.MX6ULL
Samsung(三星):S5PV210
ST(意法半导体):STM32MP157
I.MX6ULL(Cortex-A7,工业控制);S5PV210(Cortex-A8,早期学习);STM32MP157(Cortex-A7 + Cortex-M4,异构多核,兼顾控制与计算)工业控制开发、嵌入式 Linux 学习、异构多核编程
常用开发板正点原子:I.MX6ULL-Mini、STM32F4 探索者
友善之臂:Tiny4412
Arduino:Uno
I.MX6ULL-Mini(Linux 嵌入式开发);STM32F4 探索者(Cortex-M4,MCU 开发);Tiny4412(ARM9 架构学习);Arduino Uno(入门级 MCU,适合新手)Linux 驱动开发、MCU 裸机编程、嵌入式入门学习

(三)处理器架构对比(CISC vs RISC vs RISC-V)

处理器架构核心是 “指令集设计”,决定硬件复杂度与软件编译效率:

架构类型英文全称指令集特点优势劣势典型代表
复杂指令集(CISC)Complex Instruction Set Computer1. 指令数量多(数百条),功能复杂(一条指令完成多步操作,如 “复制内存块”);
2. 指令长度不固定(1-15 字节);
3. 寻址方式多样
1. 程序代码短(少指令完成复杂操作);
2. 编译器设计简单
1. 硬件控制电路复杂(难流水线化);
2. 指令执行效率低(部分指令需多个时钟周期);
3. 功耗高
Intel x86、AMD x86 系列(PC / 服务器)
精简指令集(RISC)Reduced Instruction Set Computer1. 指令数量少(几十~上百条),功能精简(一条指令仅完成一个基本操作,如 “加法”“取数”);
2. 指令长度固定(如 32 位);
3. 寻址方式简单;
4. 单时钟周期完成大部分指令
1. 硬件简单(易实现流水线);
2. 执行效率高(并行性强);
3. 低功耗、小体积
1. 程序代码长(复杂操作需多条指令组合);
2. 编译器设计复杂(需优化指令组合)
ARM 系列(嵌入式 / 手机)、MIPS(路由器)
开源精简指令集(RISC-V)RISC-V Instruction Set Architecture1. 基于 RISC 设计,指令集开源(无专利费);
2. 模块化设计(按需扩展,如浮点、向量模块);
3. 支持 32/64/128 位地址空间
1. 开源免费(降低芯片设计成本);
2. 灵活可扩展(适配从 MCU 到服务器);
3. 社区活跃(生态快速发展)
1. 生态成熟度低于 ARM/x86(部分外设驱动缺失);
2. 高端芯片产品较少
平头哥玄铁 910、SiFive U74、兆易创新 GD32V 系列

(四)ARM 内核核心组件与流水线

ARM 内核是 ARM 处理器的 “运算核心”,包含五大关键模块,通过流水线技术提升指令执行效率:

1. 核心组件
  • 算术逻辑单元(ALU):执行算术 / 逻辑运算,如加法、异或,是内核的 “运算引擎”。
  • 寄存器组(Register Bank):存储临时数据与地址,分两类:
    • 特殊功能寄存器(SFR):PC(程序计数器,存下一条指令地址)、SP(栈指针,管理栈空间)、LR(链接寄存器,存函数返回地址)、CPSR(当前程序状态寄存器,存进位 / 溢出标志、中断屏蔽位)、SPSR(异常时备份 CPSR)。
    • 通用寄存器(GPR):R0-R12,临时存储数据与地址(如 R0 存函数返回值)。
  • 指令译码器:将机器码指令(二进制)翻译成控制信号(如 “R1 与 R2 相加”“从地址 0x1234 取数据”)。
  • 控制器(CU):根据译码后的控制信号,协调 ALU、寄存器、总线同步工作,控制指令执行时序。
  • 流水线(Pipeline):将指令执行拆分为多阶段并行处理,减少指令等待时间(类似工厂流水线)。
2. 典型流水线结构
  • 三级流水线(ARM7TDMI):适用于低功耗、入门级内核,分为三阶段:
    1. 指令预取(Fetch):从 I-Cache / 内存读取下一条指令,存入流水线寄存器。
    2. 指令译码(Decode):译码器将指令翻译成控制信号。
    3. 指令执行(Execute):驱动 ALU 运算、寄存器读写,输出结果。
  • 五级流水线(ARM926EJ-S):适用于中高端内核,拆分 “执行” 阶段,提升并行性:
    1. 指令预取(Fetch)→ 2. 指令译码(Decode)→ 3. 指令执行(Execute,仅 ALU 运算 / 地址计算)→ 4. 内存访问(Memory,读写内存数据)→ 5. 写回(Writeback,将结果写入通用寄存器)。

五、关键扩展问题解析

1. 冯・诺依曼架构 vs 哈佛架构?ARM 内核属于哪一种?

两种架构的核心区别是 “程序与数据的存储方式”,直接影响指令执行效率:

对比维度冯・诺依曼架构哈佛架构
存储结构程序指令与数据共享同一存储空间、同一条总线程序指令与数据分开存储(独立空间)、独立总线(指令总线 + 数据总线)
工作特点指令与数据访问存在 “时序冲突”(需先取指令、再取数据),总线带宽是性能瓶颈可同时取指令与取数据,数据吞吐率高,适合实时性场景
典型应用早期 PC(如 Intel x86 架构)、ARM7 内核DSP、ARM9 及以后内核(如 ARM926EJ-S)、FPGA

ARM 内核的选择:ARM 内核灵活适配两种架构 —— 早期 ARM7TDMI 采用冯・诺依曼架构(低功耗、简单场景);ARM9、Cortex-A/R/M 系列(如 Cortex-A78、Cortex-M4)多采用哈佛架构(通过独立指令 / 数据总线提升并行性)。

2. ARM 有几种工作模式?

ARM 内核通过 “工作模式” 实现权限管理与异常处理,共7 种基本模式,Cortex-A 系列额外扩展 2 种模式:

模式类型模式名称核心用途与触发场景权限等级(特权 / 非特权)
基本模式User(用户模式)普通任务执行(如 APP 运行);无硬件访问权限,防止误操作硬件非特权
基本模式FIQ(快速中断模式)高优先级中断处理(如紧急信号、硬件故障);响应速度最快,独占部分寄存器以减少上下文切换时间特权
基本模式IRQ(普通中断模式)低优先级中断处理(如键盘输入、串口数据接收);最常用的中断模式特权
基本模式Supervisor(管理模式)系统初始化(复位后进入)、软中断(SWI 指令)触发;操作系统内核运行在此模式特权
基本模式Abort(中止模式)内存访问异常(如访问无效地址、权限不足)时进入;用于异常处理(如页错误)特权
基本模式Undef(未定义模式)执行未定义指令(如不支持的指令)时进入;用于指令扩展(如模拟协处理器指令)特权
基本模式System(系统模式)操作系统内核的高权限任务(如进程调度);使用与 User 模式相同的寄存器集,便于切换特权
Cortex-A 扩展模式Monitor(监控模式)安全相关任务(如 TrustZone 技术,隔离安全世界与普通世界);执行安全监控代码特权
Cortex-A 扩展模式Hyp(虚拟化模式)虚拟化任务(如运行多个操作系统);支持硬件虚拟化,提升虚拟机性能特权

3. 什么是异常向量表?

异常向量表是 ARM 内核中固定地址的内存区域,存储各类 “异常处理程序的入口地址”,是内核响应异常的 “导航表”。

核心特性:
  • 工作原理:当异常触发(如中断、复位、未定义指令)时,CPU 自动切换到对应工作模式,并将 PC(程序计数器)指向向量表中 “与异常类型绑定的固定地址”,从该地址执行跳转指令,进入异常处理程序。
  • ARM 中的位置:传统 ARM 内核(如 ARM9)默认位于 0x00000000(或高地址 0xFFFF0000,可通过协处理器配置);Cortex-M 系列支持向量表重定位(可移至 RAM/Flash 其他地址)。
  • 典型异常向量表结构(32 位 ARM,每个条目 4 字节,存跳转指令):

地址(默认)异常类型触发场景进入的工作模式
0x00000000复位(Reset)上电、复位按钮按下Supervisor
0x00000004未定义指令(Undefined)执行不支持的机器码指令Undef
0x00000008软件中断(SWI/SVC)执行 SWI 指令(用户态→内核态切换)Supervisor
0x0000000C指令预取中止(Prefetch Abort)取指令时地址无效 / 权限不足Abort
0x00000010数据访问中止(Data Abort)读写数据时地址无效 / 权限不足Abort
0x00000014保留(Reserved)未使用(预留扩展)-
0x00000018IRQ(普通中断)外部中断请求(如键盘输入)IRQ
0x0000001CFIQ(快速中断)高优先级中断请求(如硬件故障)FIQ

4. 计算机的总线结构

总线是连接计算机各硬件部件的 “公共信息通道”,负责传输数据、地址、控制信号,按 “连接部件数量” 分为单总线结构多总线结构

(1)单总线结构
  • 结构:CPU、内存、外设(输入 / 输出设备)通过一条总线连接,所有部件共享总线带宽。
  • 优点:结构简单、成本低、易于设计(适合早期微型机)。
  • 缺点:总线带宽成为瓶颈(同一时间仅能传输一组数据,CPU 与内存通信时,外设需等待);性能低。
  • 应用:早期 8 位微型机(如 Intel 8080)、简单嵌入式设备(如计算器)。
(2)多总线结构
  • 结构:按功能拆分多条总线,常见分层:
    1. 系统总线(CPU 总线):连接 CPU 与内存、高速 Cache,传输速度快。
    2. I/O 总线(外设总线):连接内存与低速外设(如键盘、打印机),如 PCI 总线、USB 总线。
    3. 存储总线:连接内存与高速外设(如 SSD),提升存储访问速度。
  • 优点:各总线独立工作,带宽高、性能强(适合现代 PC / 服务器)。
  • 缺点:结构复杂、成本高。
  • 应用:现代 PC(如 Intel 平台的 DMI 总线)、服务器(如 PCIe 5.0 总线)。

5. 编译器的作用与编译流程

编译器是 “将高级语言代码(如 C、C++)转换为机器码(CPU 可执行的二进制指令)” 的工具,核心作用是 “打通软件与硬件的交互通道”。

编译流程(以 GCC 编译器为例)

编译分为四个阶段,每个阶段输出特定文件,最终生成可执行文件:

  1. 预处理(Pre-Processing)

    • 功能:处理源代码中的 “预处理指令”(以#开头),如#include(导入头文件)、#define(宏替换)、#ifdef(条件编译)。
    • 输入文件:.c(C 语言源文件)、.h(头文件)。
    • 输出文件:.i(预处理后的源文件,纯 C 代码,无预处理指令)。
    • 示例命令:gcc -E test.c -o test.i
  2. 编译(Compiling)

    • 功能:将预处理后的.i文件转换为汇编语言代码(人类可读的指令,如add r1, r2, r3),同时进行语法检查、代码优化(如删除无用代码、循环优化)。
    • 输入文件:.i文件。
    • 输出文件:.s(汇编语言文件)。
    • 示例命令:gcc -S test.i -o test.s
  3. 汇编(Assembling)

    • 功能:将汇编代码.s转换为机器码(二进制指令),生成 “目标文件”(仅包含当前源文件的机器码,未链接依赖库)。
    • 输入文件:.s文件。
    • 输出文件:.o(目标文件,Windows 为.obj)。
    • 示例命令:gcc -c test.s -o test.o
  4. 链接(Linking)

    • 功能:将多个目标文件(如test.ofunc.o)与 “系统库文件”(如libc.so,C 标准库)合并,解决符号引用(如函数调用、全局变量),生成可执行文件
    • 输入文件:.o文件、库文件(.so动态库、.a静态库)。
    • 输出文件:可执行文件(Windows 为.exe,Linux 为无后缀文件,如test)。
    • 示例命令:gcc test.o func.o -o test

1. 什么是 RISC、CISC?

  • RISC(精简指令集计算机)
    指令集精简(仅包含高频简单指令)、长度固定,大部分操作在寄存器内完成,仅取数 / 存数指令访问内存;采用流水线技术,单周期执行指令,硬件通过组合逻辑控制,无需微码;寄存器数量多,代码密度较低但执行效率高,能效比好,典型代表为 ARM、RISC - V、MIPS,适用于嵌入式系统和移动设备。
  • CISC(复杂指令集计算机)
    指令集复杂庞大(含 200~300 条指令)、长度不固定,支持内存直接操作;指令执行时间差异大(多周期完成),硬件通过微码控制;寄存器数量少,代码密度高但执行速度慢,能效比低,典型代表为 x86,适用于传统桌面计算机和服务器。

2. 冯・诺伊曼架构和哈佛架构有何区别?ARM 内核属于哪一种?

架构区别:
维度冯・诺伊曼架构哈佛架构
存储与总线程序和数据共用一个存储器与总线,取指令和存取数据分时复用总线程序和数据存储分离,有独立的存储器模块与总线,可同时访问指令和数据
执行效率总线瓶颈导致执行速度受限并行访存提升数据吞吐率
硬件复杂度结构简单,成本低设计复杂,成本高
ARM 内核的架构归属:
  • ARM7 系列:采用冯・诺伊曼架构(程序和数据共用存储)。
  • ARM9~ARM11 系列、Cortex - M 系列:采用哈佛架构(指令和数据存储分离)。
  • Cortex - A/R 系列:采用改进型哈佛架构(通过指令 Cache 和数据 Cache 实现并行访存,仅用一套物理总线分时访问存储)。

3. ARM 内核中都有什么?

ARM 内核的核心组件包括:

  • CPU 核心:如 ARMTTDMI(支持 Thumb 指令集、调试功能的 32 位 RISC 处理器)。
  • 寄存器组:37 个 32 位寄存器(31 个通用寄存器 + 6 个状态寄存器),部分模式下有专用寄存器(如 FIQ 模式的 R8 - R14)。
  • 运算单元:32 位 ALU(算术逻辑单元)、32×32 位桶形移位寄存器、32×8 位高速乘法器(支持快速乘法运算)。
  • 存储管理:MMU(内存管理单元,用于虚拟地址转物理地址,部分内核含 TLB 加速地址转换)、Cache(指令 / 数据缓存,如 8KB 四路组相联 Cache)。
  • 调试与控制:JTAG(边界扫描链,用于调试)、EmbeddedICE Logic(断点观测逻辑)、写缓冲器(Write Buffer)等。
  • 总线接口:如 AMBA AHB 总线,用于连接内存和外设。

4. ARM 有几种工作模式?

ARM 处理器共有8 种工作模式(7 种基本模式 + Cortex - A 特有模式):

基本工作模式(7 种):
  • User(用户模式):非特权模式,普通任务执行。
  • FIQ(快速中断模式):高优先级中断触发时进入,支持高速数据传输。
  • IRQ(普通中断模式):低优先级中断触发时进入。
  • Supervisor(管理模式):复位或软中断(SWI)时进入,操作系统特权模式。
  • Abort(中止模式):内存存取异常(如缺页)时进入。
  • Undef(未定义模式):执行未定义指令时进入。
  • System(系统模式):特权模式,使用与 User 模式相同的寄存器集,供操作系统内核任务使用。
Cortex - A 特有模式:
  • Monitor(监控模式):为安全扩展的特权模式,用于执行安全监控代码(如处理虚拟化或信任区切换)。

5. 什么是异常向量表?

异常向量表(Exception Vector Table)是 ARM 架构中存储异常处理程序入口地址的数据结构,通常位于内存最低地址(如 0x00000000)。其核心作用是:

  • 快速定位异常处理程序:每种异常(如中断、未定义指令、数据 Abort 等)对应一个 “向量”(即处理程序的入口地址),处理器触发异常时,自动跳转到表中对应的向量位置执行 ISR(中断服务例程)。
  • 支持多异常优先级:不同异常的向量按优先级排列,确保高优先级异常(如 FIQ)优先处理。
  • 结构灵活:在 ARMv8 - A 等架构中,不同异常级别(EL0~EL3)可配置独立的向量表,进一步提升系统安全性与响应效率。


文章转载自:

http://1jpwxKld.gtgwh.cn
http://Xy2go84w.gtgwh.cn
http://QvYMKw8T.gtgwh.cn
http://zjW9qcQ3.gtgwh.cn
http://omGMgIBl.gtgwh.cn
http://Q7fZpPEx.gtgwh.cn
http://fX2RbTzr.gtgwh.cn
http://Atv4tECY.gtgwh.cn
http://HqIfelx7.gtgwh.cn
http://fPRDLhCb.gtgwh.cn
http://7QAScexZ.gtgwh.cn
http://exfWburk.gtgwh.cn
http://tD6z6gbB.gtgwh.cn
http://KFnyTtXN.gtgwh.cn
http://ccMIMdq8.gtgwh.cn
http://b81wBg9A.gtgwh.cn
http://W04S5GAr.gtgwh.cn
http://kIUU4tP6.gtgwh.cn
http://vOMwYhkU.gtgwh.cn
http://I96tVXvm.gtgwh.cn
http://ixEjlx1D.gtgwh.cn
http://AlUONWUY.gtgwh.cn
http://qGxQFlPV.gtgwh.cn
http://EgtCMOCL.gtgwh.cn
http://U5DPFnNY.gtgwh.cn
http://TcVLHnOc.gtgwh.cn
http://hfAE6Anb.gtgwh.cn
http://RnrKEJiq.gtgwh.cn
http://QYwo9UgT.gtgwh.cn
http://kUI1ginY.gtgwh.cn
http://www.dtcms.com/a/374000.html

相关文章:

  • 关于对鱼眼相机图片进行畸变校正的两种思路
  • mybatis-plus原生的批量插入
  • 设计模式 概述
  • SQL 注入与防御-第九章:平台层防御
  • SCADA与DCS深度集成实践:打破工厂“信息孤岛”,让实时控制更智能
  • 小学挫折教育主题班会PPT课件模板下载
  • 深入理解 MyBatis-Plus 的 `BaseMapper`
  • YOLOv8 TensorRT C++部署实战详解:从XMake构建到推理流水线
  • HTML HTML基础(3)
  • 几何动点问题
  • C++从字符串中移除前导零
  • PPP PRIVATE NETWORK™ 2 企业级虚拟以太网接入综合解决方案介绍
  • 《会“偷听”的石头:声流石的震撼发现》
  • 线程的控制(互斥+同步)
  • SpringBoot中添加健康检查服务
  • Android 开发 - 一些画板第三方库(DrawBoard、FingerPaintView、PaletteLib)
  • Skopeo 工具介绍与 CentOS 7 安装指南
  • 面向对象设计原则(未完)
  • Python数据挖掘实战:从理论到工具
  • Highcharts 数据源安全最佳实践:保障数据安全,助力可视化可信部署
  • 网易有道-虚拟人口语教练
  • git config user.name “xxx“命名报错fatal: not in a git directory
  • 【Flask】测试平台开发,工具模块开发 第二十二篇
  • 【Flask】测试平台开发,新增说明书编写和展示功能 第二十三篇
  • 2025最新超详细FreeRTOS入门教程:第七章 FreeRTOS事件组
  • 【nest.js】创建一个上传api
  • C语言内存精讲系列(八):深化详述 int 3
  • 蓓韵安禧DHA为孕期安全营养补充提供科学支持,呵护母婴健康
  • 什么是状态(State)以及如何在React中管理状态?
  • Anaconda与Jupyter 安装和使用