STM32F411RE-0016-需要对寄存器有一些了解

  • 普通寄存器接触的比较多,比较好理解,不多做解释

R0~R12

R13称为栈指针寄存器,对应到两个物理寄存器MSP/PSP;

R14称为LR寄存器,用来指示返回地址;

R15称为PC寄存器;

 

  • 特殊寄存器

xPSR称为程序状态寄存器,由APSR+EPSR+IPSR组成;

PRIMASK寄存器只有一个bit位,置位会屏蔽除了NMI+HardFault以外的异常中断;

FAULTMASK寄存器只有一个bit位,置位会屏蔽除了HardFault以外的异常中断;

BASEPRI寄存器设为非0,该值表示优先级组,例如有16个组,设成7,就表示大于等于7的组的中断都会被屏蔽;

CONTROL寄存器有三个可用bit。bit1表示选择MSP还是PSP栈指针,bit1是个只读操作;bit0是定义线程模式中的特权等级,有特权和非特权两个等级;bit2是有关浮点处理的指示位。

CMSIS有提供多个C函数用于访问这些特殊寄存器;

 

通过以下流程图片,会更加清楚:特权、非特权、线程、处理的关系。

STM32F411RE-0016-需要对寄存器有一些了解

 

STM32F411RE-0016-需要对寄存器有一些了解

STM32F411RE-0016-需要对寄存器有一些了解