8.2、ARM CPU

ARM处理器分类
cortex-M 单片机 低端 低功耗 传感器 stm 32
cortex-R 实时性要求高的场合。无人机 汽车 实时性操作系统
cortex-A 多媒体应用 图形图像采集,高端应用 带操作系统
在这里插入图片描述

ARMCPU核心结构
1、运算器 运算
2、控制器
3、寄存器 是硬件与软件的接口 CPU留给用户的接口

  • 寄存器
    在这里插入图片描述
    在这里插入图片描述

1、通用寄存器 r0-r12

2、特殊功能寄存器
r13 sp 栈指针寄存器 C语言运行基本条件
r14 lr 链接寄存器 用于存放返回地址
r15 pc 程序计数器 记录即将要执行的指令的位置

3、cpsr 程序状态寄存器 标记CPU一些状态
条件位: 运算过程中的条件的记录
N:ALU中产生了负数的结果
Z:ALU中运算结果产生了0
C:加法时产生了进位C自动置1否则为0,减法时产生了借位C位自动置0否则为1
V:对于有符号数符号位发生变化时自动置1
模式位 [4:0]
在这里插入图片描述

  • spsr cpsr备份寄存器

  • CPU模式切换:
    usr 用户模式
    sys 系统模式
    共有一套寄存器 ---- 每个模式都有一套可见寄存器

fiq 快速中断模式 在触发fiq中断时
svc 超级用户模式 触发软中断时进入
abort 异常模式
irq 中断模式
undefind 未定义模式

7种模式有寄存器37个

cortex-A 特有 monitor模式
在这里插入图片描述

  • 模式分类:
    非特权模式 user模式
    特权模式 除user模式
    异常模式
    非异常模式 sys moi

  • 异常:发生某些事,触发cpu切换模式: 异常向量表、

异常向量表
复位异常svc0x0000
未定义指令异常undefin0x0004
软中断异常svc0x0008
指令预取异常abort0x000
c数据异常abort0x0010
0x0014 (保留)中断异常
中断irq0x0018
快速中断fiq0x001c

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

  • 流水线:提高执行效率
    指令的执行:取址->译码->执行

异常发生时,cpu如何处理

  • 硬件如何处理
    4大步3小步
    1、保存cpsr 到spsr
    2、设置适当的cpsr位
    (1)、状态切换为arm状态
    (2)、切换模式位
    (3)、禁止某些中断。
    3、保存返回地址到lr == (pc-4)
    4、修改PC到对应向量的地址

  • 软件如何处理
    1、保存现场 入栈保存 保存lr r0-r12
    2、软件处理异常
    3、恢复现场

  • 异常向量表: 异常触发时硬件会自动跳转的位置,是一个程序的入口

  • 异常的优先级:
    1、Reset
    2、Data Abort
    3、FIQ
    4、IRQ
    5、Prefetch Abort
    6、SWI
    7、Undefined instruction

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值