文档库 最新最全的文档下载
当前位置:文档库 › STM32中用到的- Cortex M3寄存器说明

STM32中用到的- Cortex M3寄存器说明

STM32中用到的Cortex-M3寄存器说明





在STM32中用到了Cortex-M3定义的三组寄存器,有关这三组寄存器的说明不在STM32的技术手册中,需要参考ARM公司发布的Cortex-M3 Technical Reference Manual (r2p0)。

在STM32的固件库中定义了三个结构体与这三个寄存器组相对应,这三个结构体与ARM手册中寄存器的对应关系如下:



一、NVIC寄存器组

STM32的固件库中有如下定义:

typedef struct
{
vu32 ISER[2];
u32 RESERVED0[30];
vu32 ICER[2];
u32 RSERVED1[30];
vu32 ISPR[2];
u32 RESERVED2[30];
vu32 ICPR[2];
u32 RESERVED3[30];
vu32 IABR[2];
u32 RESERVED4[62];
vu32 IPR[11];
} NVIC_TypeDef;

它们对应《Cortex-M3权威指南》中的名称为
ISER = SETENA/CLRENA 寄存器族(Interrupt Set-Enable Registers)
ICER = SETENA/CLRENA 寄存器族(Interrupt Clear-Enable Registers)
ISPR = SETPEND/CLRPEND寄存器族(Interrupt Set-Pending Registers)
ICPR = SETPEND/CLRPEND寄存器族(Interrupt Clear-Pending Registers)
IABR = ACTIVE寄存器族(Interrupt Active Bit Register)
IPR = 中断优先级寄存器阵列(Interrupt Priority Registers)

二、系统控制寄存器组

STM32的固件库中有如下定义:

typedef struct
{
vuc32 CPUID;
vu32 ICSR;
vu32 VTOR;
vu32 AIRCR;
vu32 SCR;
vu32 CCR;
vu32 SHPR[3];
vu32 SHCSR;
vu32 CFSR;
vu32 HFSR;
vu32 DFSR;
vu32 MMFAR;
vu32 BFAR;
vu32 AFSR;
} SCB_TypeDef; /* System Control Block Structure */

它们对应《Cortex-M3权威指南》中的名称为

CPUID = CPUID 基寄存器(CPUID Base Register)
ICSR = 中断控制及状态寄存器(Interrupt Control State Register)
VTOR = 向量表偏移量寄存器(Vector Table Offset Register)
AIRCR = 应用程序中断及复位控制寄存器(Application Interrupt/Reset Control Register)
SCR = 系统控制寄存器(System Control Register)
CCR = 配置与控制寄存器 (Configuration Control Register)
SHPR = 系统异常优先级寄存器(System Handlers Priority Register)
SHCSR = 系统Handler控制及状态寄存器(System Handler Control and State Register)
CFSR = 可配置 fault状态寄存器(Configurable Fault Status Registers)
HFSR = 硬fault状态寄存器(Hard Fault Status Register)
DFSR = 调试fault状态寄存器(Debug Fault Status Register)
MMFAR = 存储器管理 fault状态寄存器(Mem Manage Address Register)
BFAR = 总线 fault状态寄存器(Bus Fault Address Register)
AFSR =辅助 fault状态寄存器 (Auxiliary Fault Status Register)



三、系统时钟寄存器组

STM32的固件库中有如下定义:

typedef struct
{
vu32 CTRL;
vu32 LOAD;
vu32 VAL;
vuc32 CALIB;
} SysTick_TypeDef;

它们对应ARM手册中的名称为

CTRL = SysTick控制及状态寄存器(Control and Status Register)
LOAD = SysTick重装载数值寄存器

(Reload Value Register)
VAL = SysTick当前数值寄存器(Current Value Register)
CALIB = SysTick校准数值寄存器(Calibration Value Register)

相关文档
相关文档 最新文档