ARM内部寄存器

1、RISC指令集

(1)ARM芯片属于精简指令集计算机(RISC:Reduced Instruction Set Computing),它所用的指令比较简单,有如下特点:

  • 对内存只有读、写指令。
  • 对于数据的运算是在CPU内部实现
  • 使用RISC指令的CPU复杂度小一点,易于设计

(2)对于下图所示的乘法运算a = a * b,在RISC中要使用4条汇编指令:

  • 读内存a;
  • 读内存b;
  • 计算a*b;
  • 把结果写入内存。

(3)在CPU内部,用什么来保存a、b、a*b ?答案是CPU内部寄存器。

2、CPU的内部寄存器

(1)无论cortex-M3/M4,还是cortex-A7,CPU内部都有R0、R1、......、R15寄存器。

(2)R0-R15寄存器中,R0~R12一般为通用寄存器;对于R13、R14、R15,还另有用途:

  • R13:别名SP(Stack Pointer),栈指针。
  • R14:别名LR(Link Register),用来保存返回地址。例如函数调用、中断处理完成的返回地址。
  • R15:别名PC(Program Counter),程序计数器,表示当前指令地址,写入新值即可跳转。

(3)乘法运算a = a + b,对应的4条汇编指令的理解:

复制代码
LDR R0, [a]     ; 将内存地址a中的数据加载到寄存器R0
LDR R1, [b]     ; 将内存地址b中的数据加载到寄存器R1
ADD R0, R0, R1  ; 将R0与R1的值相加,结果存回R0
STR R0, [a]     ; 将R0的值存回内存地址a,更新变量a的值

(4)寄存器的含义:寄存器有CPU内部自己的寄存器,有设备上的寄存器,它们是完全不同的。

3、M3/M4 CPU内部寄存器

4、A7CPU内部寄存器

(1)寄存器

(2)A7支持多种启动方式,不同启动方式对应寄存器如下。

5、程序状态寄存器

5.1、cortex-M3/M4

(1)对于cortex-M3/M4来说,xPSR实际上对应3个寄存器,这3个寄存器的如下所示:

  • APSR:Application PSR,应用PSR
  • IPSR:Interrupt PSR,中断PSR
  • EPSR:Exectution PSR,执行PSR

(2)程序状态急促请你中的位域描述:

(3)这3个寄存器,可以单独访问:

  • MRS表示:Moveto Register from Status,就是把Status寄存器的值移动到通用寄存器
  • MRS R0, APSR ;读APSR
  • MRS R0, IPSR ;读IPSR
  • MSR APSR, R0 ;写APSR

(4)这3个寄存器,也可以一次性访问:

  • MRS R0, PSR ; 读组合程序状态
  • MSR PSR, R0 ; 写组合程序状态

5.2、cortex-A7

(1)对于cortex-A7,叫做Current Program Status Register,即当前程序状态寄存器。

参考资料:

《ARM Cortex-M3与Cortex-M4权威指南》

相关推荐
蓝斯4971 天前
从.到实现一个Windows上的虚拟hid键盘设备
windows·单片机·计算机外设
熙芯XiChip1 天前
硬实时与软实时RTOS核心区别
嵌入式硬件
伟大的前程1 天前
unsigned int 定义的变量 在 电脑的 64 位系统中 和 32 位 cortex-m0 和 8 位的 51 单片机
单片机·嵌入式硬件
小渔村的拉线工1 天前
1.HPM6E80 解析芯片整体工作原理和存储架构
单片机·嵌入式硬件·mcu·架构·hpm6e80
熙芯XiChip1 天前
CAN与CANopen的本质区别
单片机
lilihewo1 天前
Altium Designer 封装库的创建(分享pcb 3D封装库)
嵌入式硬件·51单片机
神罚天下ET1 天前
典型arm位单片机启动流程(从上电到main.c)
c语言·arm开发·单片机
碧海银沙音频科技研究院1 天前
蓝牙耳机使用WSDF5361锂保芯片进入船运模式实现方法
嵌入式硬件·算法
Zevalin爱灰灰1 天前
模拟信号链电路——基于TL431的电压基准电路
单片机·嵌入式硬件
csdn杰哥1 天前
瑞萨单片机开发教程[二十七] DTC 外部中断触发传输实验
单片机·嵌入式硬件·mongodb·瑞萨·ra6m5