M3处理器拥有R0-R15的寄存器组和五个特殊寄存器,R0-R12是通用寄存器;R13作为堆栈指针,堆栈指针有两个,一个是主堆栈指针(MSP),另一个是进程堆栈指针(PSP),在任何一个时刻只能访问其中的一个;R14是连接寄存器(LR),当调用子函数时用来保存返回地址,中断处理时保存中断返回值;R15是程序计数器,指向当前的程序地址;还...
在RISC处理器中,为了强调访问内存操作越过了处理器的界线,并且带来了对性能的不利影响,给它取了一个专业的术语:溅出。 【R15程序计数寄存器PC】 程序计数寄存器PC指向当前的程序地址。如果修改它的值,能改变程序的执行流。 因为Cortex-M3内部使用了指令流水线,读PC时返回的值时当前指令的地址值+4,如: 0x1000: ...
xPSR 是 Program Status Register 程序状态寄存器的意思,前面有个 x 代表他是由 3 个小的寄存器构成: APSR:应用程序状态寄存器; IPSR:中断程序状态寄存器; EPSR:执行程序状态寄存器; 它们3 个一起叫做程序状态寄存器,xPSR 的组成是 32 位的寄存器,在这 32 位中,APSR、IPSR、EPSR 各占一部分: 蓝色部分是 APSR...
这就需要表一表在响应之前,处理器必须要做的工作——现场保护即保护当前的程序运行环境,依次入栈以下8个寄存器:程序状态寄存器XPSR,程序计数器PC,返回地址寄存器LR(连接寄存器),R12,R0——R3,这些都是硬件自动完成的。如果当前正在使用堆栈,则压入相应的堆栈寄存器MSP/PSP值,当前在用PSP就压入PSP,反之则压入MSP,...
r14(LR):链接寄存器,保存子程序或异常的返回地址(要实现嵌套,必须入栈)。 r15(PC):程序计数器。 xPSR:特殊用途的程序状态寄存器。 异常 进入异常步骤: 1.处理器在当前堆栈上把xPSR、PC、LR、r12、r3~r0八个寄存器自动依次入栈。 2.读取向量表(如果是复位中断,更新SP值)。
cortexm3内核架构cortexm3内核体系结构图 第二章Cortex-M3概述CortexM3内核的组成可以用一张简图来表示: 图3Cortex-M3内核简图内核寄存器组包括R0-R15,R0-R12是通用寄存器,部分Thumb指令只能访问R0-R7。 R13是堆栈指针,实际上有两个,一个是主堆栈指针(MSP)另一个是进程堆栈指针(PSP),堆栈要求4字节对齐。 R14存放...
Cortex-M3处理器具有R0至R15寄存器。R0至R12是通用寄存器。R13是可配置区域的寄存器,可以在两种堆栈指针之间切换。R14是链接寄存器,R15是程序计数器。此外,还有控制Cortex-M3处理器特殊功能的特殊寄存器。寄存器分配如图2所示。 图2 寄存器分配示意图 图片上蓝色部分寄存器均为通用寄存器,用于输入算术单元(ALU)的数据,输出...
1.寄存器 1.1通用寄存器 1.1.1 概述 Cortex-M3和M4处理器在处理器的内核中有多个执行数据处理和控制的寄存器,这些寄存器大多以寄存器组的形式进行了分组;对于ARM架构,若处理的是存储器的数据,那么需要将存储器的数据加载到寄存器当中,处理完毕后,若有必要,还要写回存储器,这种方式一般称为“加载--存储架构”。Cortex...
Cortex M3 内核的组成可以用一张简图来表示: 图3 Cortex-M3内核简图 内核寄存器组包括R0-R15,R0-R12是通用寄存器,部分Thumb指令只能访问R0-R7。 R13是堆栈指针,实际上有两个,一个是主堆栈指针(MSP)另一个是进程堆栈指针(PSP),堆栈要求4字节对齐。