基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构

学习要求

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第1张图片

cortex-M3内部结构

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第2张图片

Cortex-M3处理器结构框图

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第3张图片

ARM处理器包含三种工作状态

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第4张图片
基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第5张图片

ARM处理器工作模式和工作状态

处理器工作模式(usr、sys、fiq快中断、irq外部中断、svc、abt、und)

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第6张图片

特权模式

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第7张图片

异常模式

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第8张图片

用户和系统模式

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第9张图片

ARM寄存器

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第10张图片

ARM状态各模式下的寄存器

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第11张图片

通用寄存器

(1)未分组寄存器

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第12张图片

(2) 分组寄存器(SP和LR)

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第13张图片

SP和LR

R13通常用作堆栈指针SP
R14用作子程序链接寄存器LR(Link Register)

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第14张图片

(3) 程序计数器R15(PC)

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第15张图片

程序状态寄存器

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第16张图片

当前程序状态寄存器(Current Program Status Register,CPSR)

CPSR可以在任何处理器模式下被访问,它包含下列内容:

  • ① ALU(Arithmetic Logic Unit)状态标志的备份
  • ② 当前的处理器模式
  • ③ 中断使能标志
  • ④ 设置处理器的状态(只在4T架构)

(1)标志位

N(Negative)、Z(zero)、C(Carry)和V(oVerflow)通称为条件标志位。这些条件标志位会根据程序中的算术或逻辑指令的执行结果而修改。而且这些条件标志位可由大多数指令检测以决定指令是否执行。
基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第17张图片
N:本位设置成当前指令运行结果的bit[31]的值;当两个补码表示的有符号整数运算时,N=1,表示运算的结果为负数;N=0,表示结果为正数或零

Z:Z=1,表示运算的结果为零;Z=0,表示运算的结果不为零。
对于CMP指令,Z=1表示进行比较的两个数相等。

C:分下面4种情况讨论C的设置方法
基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第18张图片
V:溢出标志。V=1表示符号位溢出,V=0表示符号位无溢出

小例子

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第19张图片

(2)Q标志位

在带DSP指令扩展的ARM v5及其更高的版本中,bit[27]被指定用于指示增强的DAP指令是否发生了溢出,因此也就被称为Q标志位。同样,在SPSR中bit[27]也被称为Q标志位,用于在异常中断发生时保存和恢复CPSR中的Q标志位。

在ARM v5以前的版本及ARM v5的非E系列处理器中,Q标志位没有被定义,属于待扩展的位。

(3)控制位

CPSR的低8位(I、F、T及M[4:0])统称为控制位。当异常发生时,这些位值将发生相应的变化。另外,如果在特权模式下,也可以通过软件编程来修改这些位的值。

① 中断禁止位
基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第20张图片
② 状态控制位
基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第21张图片
③ 模式控制位
基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第22张图片

(3)CPSR中的保留位

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第23张图片

备份程序状态寄存器(SavedProgram Status Register,SPSR)

每一种处理器模式下都有一个专用的物理寄存器作为备份程序状态寄存器(SavedProgram Status Register,SPSR)。当特定的异常中断发生时,这个物理寄存器负责存放当前程序状态寄存器CPSR的内容。当异常处理程序返回时,再将其内容恢复到当前程序状态寄存器。
基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第24张图片

例题

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第25张图片

Thumb状态与ARM状态下的寄存器组织的关系

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第26张图片

Cortex-M3工作模式

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第27张图片

Cortex-M3寄存器

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第28张图片
基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第29张图片

R14 --连接寄存器(LR)

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第30张图片

状态寄存器组 xPSR (PSRs) (包括3个 )

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第31张图片

控制寄存器CONTROL

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第32张图片
基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第33张图片

Cortex-M3寄存器Thumb/Thumb-2 状态下的寄存器组织

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第34张图片

数据类型与存储器格式

(1)地址空间

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第35张图片
基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第36张图片
基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第37张图片

(2)数据类型(字节、半字、字)

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第38张图片
基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第39张图片

(3)存储格式(大端方式and小端方式)

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第40张图片
从左到右看,最左边的就是高字节,最右边的就是低字节
基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第41张图片
基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第42张图片
基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第43张图片
因为0x是表示十六进制,所以0x12H用二进制表示其实占8位
基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第44张图片

例题

基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第45张图片

非对齐的存储器访问

非对齐的存储访问含义

  • ARM状态,访问地址的低二位不为00;
  • Thumb状态,访问地址的最低位不为0
    基于ARM Cortex-M3微控制器(STM32系列)基础知识(二)——ARM内核体系结构_第46张图片

如果喜欢我的文章,请记得三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持,下期更精彩!!!

你可能感兴趣的:(STM32,微控制器,ARM)