IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> ARM寄存器组织&ARM异常处理(ARM体系结构与接口技术) -> 正文阅读

[嵌入式]ARM寄存器组织&ARM异常处理(ARM体系结构与接口技术)

D3

ARM寄存器组织

寄存器

  • 概念
    寄存器是处理器内部的存储器,没有地址

  • 作用
    一般用于暂时存放参与运算的数据和运算结果

  • 分类
    包括通用寄存器、专用寄存器、控制寄存器
    在这里插入图片描述

ARM寄存器

在这里插入图片描述


在某个特定模式下只能使用当前模式下的寄存器,一个模式下特有的寄存器其他模式下不可使用

ARM异常处理

  • R15(PC,Program Counter)
    程序计数器,用于存储当前取址指令的地址

  • R14(LR,Link Register)
    链接寄存器,一般有以下两种用途:

    • 执行跳转指令(BL/BLX)时,LR会自动保存跳转指令下一条指令的地址
      程序需要返回时将LR的值复制到PC即可实现
    • 产生异常时,对应异常模式下的LR会自动保存被异常打断的指令的下
      一条指令的地址,异常处理结束后将LR的值复制到PC可实现程序返回
  • R13(SP,Stack Pointer)
    栈指针,用于存储当前模式下的栈顶地址

CPSR寄存器

CPSR(Current Program Status Register),当前程序状态寄存器
在这里插入图片描述

  • CPSR寄存器分为四个域,[31:24]为条件域用F表示、[23:16]为状
    态域用S表示、[15:8]为预留域用X表示、[8:0]为控制域用C表示

  • Bit[4:0]
    [10000]User [10001]FIQ [10010]IRQ [10011]SVC
    [10111]Abort [11011]Undef [11111]System [10110]Monitor

  • Bit[5]
    [0] - - ARM状态 [1] - - Thumb状态

  • Bit[6]
    [0] - - 开启FIQ [1] - - 禁止FIQ

  • Bit[7]
    [0] - - 开启IRQ [1] - - 禁止IRQ
    Bit[28]

    • 当运算器中进行加法运算且产生符号位进位时该位自动置1,否则为0
    • 当运算器中进行减法运算且产生符号位借位时该位自动置0,否则为1
  • Bit[29]
    当运算器中进行加法运算且产生进位时该位自动置1,否则为0
    当运算器中进行减法运算且产生借位时该位自动置0,否则为1

  • Bit[30]
    当运算器中产生了0的结果该位自动置1,否则为0

  • Bit[31]
    当运算器中产生了负数的结果该位自动置1,否则为0

D4

ARM异常处理

异常

概念
处理器在正常执行程序的过程中可能会遇到一些不正常的事件发生,这时处理器就要将当前的程序暂停下来转而去处理这个异常的事件,异常事件处理完成之后再返回到被异常打断的点继续执行程序
在这里插入图片描述

异常处理机制

异常处理机制
不同的处理器对异常的处理的流程大体相似,但是不同的处理器在具体实现的机制上有所不同;比如处理器遇到哪些事件认为是异常事件遇到异常事件之后处理器有哪些动作、处理器如何跳转到异常处理程序如何处理异常、处理完异常之后又如何返回到被打断的程序继续执行等我们将这些细节的实现称为处理器的异常处理机制

ARM异常源

概念
导致异常产生的事件称为异常源

ARM异常源

FIQ快速中断请求引脚有效
IRQ外部中断请求引脚有效
Reset复位电平有效
Software Interrupt执行swi指令
Data Abort数据终止
Prefetch Abort指令预取终止
Undefined Instruction遇到不能处理的指令

ARM异常模式

异常模式
在ARM的基本工作模式中有5个属于异常模式,即ARM遇到异常后会切
换成对应的异常模式
在这里插入图片描述

ARM异常响应

  • ARM产生异常后的动作(自动完成)
    1.拷贝CPSR中的内容到对应异常模式下的SPSR_
    2.修改CPSR的值
    2.1.修改中断禁止位禁止相应的中断
    2.2.修改模式位进入相应的异常模式 产生异常
    2.3.修改状态位进入ARM状态
    3.保存返回地址到对应异常模式下的LR_
    4.设置PC为相应的异常向量(异常向量表对应的地址)
    在这里插入图片描述

CPSR寄存器

CPSR(Current Program Status Register),当前程序状态寄存器
在这里插入图片描述

ARM寄存器

在这里插入图片描述

在某个特定模式下只能使用当前模式下的寄存器,一个模式下特有的寄存器其他模式下不可使用

异常向量表

异常向量表
* 异常向量表的本质是内存中的一段代码
* 表中为每个异常源分配了四个字节的存储空间
* 遇到异常后处理器自动将PC修改为对应的地址
* 因为异常向量表空间有限一般我们不会再这里
写异常处理程序,而是在对应的位置写一条跳
转指令使其跳转到指定的异常处理程序的入口
* 注:ARM的异常向量表的基地址默认在0x00地址
但可以通过配置协处理器来修改其地址
在这里插入图片描述

异常返回

ARM异常返回的动作(自己编写)

  • 将SPSR_的值复制给CPSR
    使处理器恢复之前的状态
  • 将LR_的值复制给PC
    使程序跳转回被打断的地址继续执行
    在这里插入图片描述

IRQ异常举例

在这里插入图片描述
注:整个过程CPSR保存的永远是当前程序运行状态
SPSR只是异常时对原来的CPSR进行备份

异常优先级

在这里插入图片描述

FIQ和IRQ

FIQ的响应速度比IRQ快
1. FIQ在异常向量表位于最末
可直接把异常处理写在异常向量表之后,省去跳转
2. FIQ模式有5个私有寄存器(R8-R12)
执行中断处理程序前无需压栈保存寄存器,可直接处理中断
3. FIQ的优先级高于IRQ
3.1 两个中断同时发生时先响应FIQ
3.2 FIQ可以打断RIQ,但RIQ不能打断FIQ

ARM微架构

指令流水线

在这里插入图片描述
在这里插入图片描述

ARM指令流水线
ARM7采用3级流水线
ARM9采用5级流水线
Cortex-A9采用8级流水线
注1:虽然流水线级数越来越多,但都是在三级流水线的基础上进行了细分

PC的作用(取指)
不管几级流水线,PC指向的永远是当前正在取指的指令,而当前正在执行
的指令的地址为PC-8

  • 指令流水线机制的引入确实能够大大的提升指令执行的速度
    但在实际执行程序的过程中很多情况下流水线时是无法形成的
    比如芯片刚上电的前两个周期、执行跳转指令后的两个周期等
    所以指令流水线的引入以及优化只能使平均指令周期不断的接
    近1而不可能真正的达到1,且流水线级数越多芯片设计的复杂
    程度就越高,芯片的功耗就越高

    在这里插入图片描述

多核处理器

多核处理器
即一个SOC中集成了多个CPU核

作用
不同的线程可以运行在不同的核心中
做到真正的并发

资源
多核处理器共用外设与接口资源

在这里插入图片描述

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-10-04 13:00:11  更:2021-10-04 13:01:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:37:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码