M3处理器拥有R0-R15的寄存器组和五个特殊寄存器,R0-R12是通用寄存器;R13作为堆栈指针,堆栈指针有两个,一个是主堆栈指针(MSP),另一个是进程堆栈指针(PSP),在任何一个时刻只能访问其中的一个;R14是连接寄存器(LR),当调用子函数时用来保存返回地址,中断处理时保存中断返回值;R15是程序计数器,指向当前的程序地址;还...
在RISC处理器中,为了强调访问内存操作越过了处理器的界线,并且带来了对性能的不利影响,给它取了一个专业的术语:溅出。 【R15程序计数寄存器PC】 程序计数寄存器PC指向当前的程序地址。如果修改它的值,能改变程序的执行流。 因为Cortex-M3内部使用了指令流水线,读PC时返回的值时当前指令的地址值+4,如: 0x1000: ...
Cortex-M3 系列处理器是基于 ARMv7-M 架构的处理器,应用非常广泛,为了能够深入的分析在此平台上跑 RTOS 的各种细节,所以有必要写一篇关于 CM3 处理器的结构相关的文章(CM4 类似),在 OS 调度初始化、系统调用、进程调度等方面的细节均是和具体处理器息息相关,所以先让我们来看看 CM3 处理器的一些特征; 1、...
在我看来,Cotex-M3内核的主要包括:嵌套向量中断控制器(NVIC),取值单元,指令译码器,算数逻辑单元(ALU),寄存器组,存储器映射(4GB统一编址各区域功能的划分与界定),对于开发者而言,其实主要关注的主要分为三大块: 1、寄存器组2、地址功能划分映射3、中断机制(NVIC)。 1)寄存器组 Cortex-M3内核共有19组32位寄存器:...
r14(LR):链接寄存器,保存子程序或异常的返回地址(要实现嵌套,必须入栈)。 r15(PC):程序计数器。 xPSR:特殊用途的程序状态寄存器。 异常 进入异常步骤: 1.处理器在当前堆栈上把xPSR、PC、LR、r12、r3~r0八个寄存器自动依次入栈。 2.读取向量表(如果是复位中断,更新SP值)。
Cortex-M3处理器具有R0至R15寄存器。R0至R12是通用寄存器。R13是可配置区域的寄存器,可以在两种堆栈指针之间切换。R14是链接寄存器,R15是程序计数器。此外,还有控制Cortex-M3处理器特殊功能的特殊寄存器。寄存器分配如图2所示。 图2 寄存器分配示意图 图片上蓝色部分寄存器均为通用寄存器,用于输入算术单元(ALU)的数据,输出...
Cortex–M3处理器的寄存器R15除可做通用寄存器外,还可以做:A.堆栈指针寄存器B.链接寄存器C.程序计数器D.程序状态寄存器
cortexm3内核架构cortexm3内核体系结构图 第二章Cortex-M3概述CortexM3内核的组成可以用一张简图来表示: 图3Cortex-M3内核简图内核寄存器组包括R0-R15,R0-R12是通用寄存器,部分Thumb指令只能访问R0-R7。 R13是堆栈指针,实际上有两个,一个是主堆栈指针(MSP)另一个是进程堆栈指针(PSP),堆栈要求4字节对齐。 R14存放...
1.寄存器 1.1通用寄存器 1.1.1 概述 Cortex-M3和M4处理器在处理器的内核中有多个执行数据处理和控制的寄存器,这些寄存器大多以寄存器组的形式进行了分组;对于ARM架构,若处理的是存储器的数据,那么需要将存储器的数据加载到寄存器当中,处理完毕后,若有必要,还要写回存储器,这种方式一般称为“加载--存储架构”。Cortex...