《嵌入式系统原理与设计》| ARM寄存器_SP,LR,PC,特殊寄存器

ARM寄存器

CM3拥有通用寄存器组R0~R15和一些特殊寄存器

通用寄存器组R0~R15

在这里插入图片描述**

R13:SP堆栈指针寄存器

功能:指向堆栈的栈顶
详解:
1)异常模式发生时,程序把通用寄存器压入堆,SP一直指向栈顶的位置。返回时再出栈,保证程序状态的完整性。大部分情况下,只要程序在执行,堆栈就会被建立,而SP指向堆栈的栈顶位置。
2)有MSP 和PSP(两者只需一个,不能同时使用,默认MSP)。
MSP :主堆栈指针,系统用。PSP : 进程堆栈指针,个人堆栈指针。

R14:LR连接寄存器

功能:保存断点地址
详解:
1)用来保存子程序的返回地址;
当调用子程序时,R14保存子程序的返回地址。子程序返回时,把R14的值复制到程序计数器PC,实现子程序的返回。
2)当异常发生时,用R14保存异常返回的地址。
R14中保存的值等于异常发生时程序计数器PC的值减4(因为cortex-m3采用3级指令流水线)。因此在异常模式下,可以根据R14的值返回到异常发生前的相应位置,继续执行。

R15:PC程序计数寄存器

功能:指向下一条要执行的指令地址
详解:
在程序开始执行前,将程序的第一条指令地址送入PC,CPU按照PC的指示从内存读取第一条指令(取指)。当执行指令时,PC总是指向下一条指令地址。当程序转移时,转移指令执行的最终结果就是要改变PC的值,此PC值就是转去的目标地址。处理器总是按照PC指向取指、译码、执行,以此实现了程序转移

特殊寄存器

程序状态寄存器组(PSR),中断屏蔽寄存器组,控制寄存器
这里主要说下程序状态寄存器。
在F103中特殊寄存器
在这里插入图片描述
在ARM9中特殊寄存器:
CPSR当前程序状态寄存器,APSR程序应用状态寄存器

CPSR:保存的是当前模式的各种标记变量,当发生模式切换时,将CPSR的值暂存到APSR中(保护现场),切换模式执行完时,APSR将值返还给CPSR

注:
ARM9的模式:
用户模式,系统模式,未定义模式,
中断模式,快中断模式,中止模式,
管理模式,超级管理模式,监视模式

发布了12 篇原创文章 · 获赞 1 · 访问量 369

猜你喜欢

转载自blog.csdn.net/wyifan_/article/details/104715187