这就需要表一表在响应之前,处理器必须要做的工作——现场保护即保护当前的程序运行环境,依次入栈以下8个寄存器:程序状态寄存器XPSR,程序计数器PC,返回地址寄存器LR(连接寄存器),R12,R0——R3,这些都是硬件自动完成的。如果当前正在使用堆栈,则压入相应的堆栈寄存器MSP/PSP值,当前在用PSP就压入PSP,反之则压入MSP,...
Cortex-M3处理器采用的就是V7版架构。 (8)V8版架构开始支持64位体系结构,它包括以下部分。 ① 64位通用寄存器、SP(堆栈指针)和PC(程序计数器)。 ② 64位数据处理和扩展的虚拟寻址。 ③ 两种主要执行状态。 a.AArch64-64位执行状态,包括该状态的异常模型、内存模型、程序员模型和指令集支持。 b.AArch32-32...
r14(LR):链接寄存器,保存子程序或异常的返回地址(要实现嵌套,必须入栈)。 r15(PC):程序计数器。 xPSR:特殊用途的程序状态寄存器。 异常 进入异常步骤: 1.处理器在当前堆栈上把xPSR、PC、LR、r12、r3~r0八个寄存器自动依次入栈。 2.读取向量表(如果是复位中断,更新SP值)。 3.根据向量表更新PC值。 4.加载...
Cortex-M3是一个32位处理器内核。内部的数据路径是32位的,寄存器是32位的,存储器接口也是32位的。CM3采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。这样一来数据访问不再占用指令总线,从而提升了性能。为实现这个特性,CM3内部含有好几条总线接口,每条都为自己的应...
1.寄存器 1.1通用寄存器 1.1.1 概述 Cortex-M3和M4处理器在处理器的内核中有多个执行数据处理和控制的寄存器,这些寄存器大多以寄存器组的形式进行了分组;对于ARM架构,若处理的是存储器的数据,那么需要将存储器的数据加载到寄存器当中,处理完毕后,若有必要,还要写回存储器,这种方式一般称为“加载--存储架构”。Cortex...
Cortex-M3处理器具有R0至R15寄存器。R0至R12是通用寄存器。R13是可配置区域的寄存器,可以在两种堆栈指针之间切换。R14是链接寄存器,R15是程序计数器。此外,还有控制Cortex-M3处理器特殊功能的特殊寄存器。寄存器分配如图2所示。 图2 寄存器分配示意图 图片上蓝色部分寄存器均为通用寄存器,用于输入算术单元(ALU)的数据,输出...
cortexm3内核架构cortexm3内核体系结构图 第二章Cortex-M3概述CortexM3内核的组成可以用一张简图来表示: 图3Cortex-M3内核简图内核寄存器组包括R0-R15,R0-R12是通用寄存器,部分Thumb指令只能访问R0-R7。 R13是堆栈指针,实际上有两个,一个是主堆栈指针(MSP)另一个是进程堆栈指针(PSP),堆栈要求4字节对齐。 R14存放...
1.1、Cortex-M3和Cortex-M4处理器 Cortex-M3(2005年发布)和Cortex-M4(2010年发布)处理器是ARM公司设计的处理器。 Cortex-M3和Cortex-M4处理器使用32位架构,寄存器组中断内部寄存器、数据以及总线接口都是32位。Cortex-M处理器使用的指令集架构(ISA)是Thumb ISA(是一种RISC(精简指令集)),其基于Thumb-2技术并同时...
BASEPRI:中断屏蔽寄存器,按照优先级进行屏蔽; CONTROL:处理器模式和堆栈选择; 他们的含义如下: 下面我们一个一个看 2.1、xPSR xPSR 是 Program Status Register 程序状态寄存器的意思,前面有个 x 代表他是由 3 个小的寄存器构成: APSR:应用程序状态寄存器; ...