您的位置: 大庆资讯网 > 育儿

STM32中用到的CortexM3寄存器

发布时间:2019-11-27 05:15:23

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;

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

ISER = Interrupt Set-Enable Registers

ICER = Interrupt Clear-Enable Registers

ISPR = Interrupt Set-Pending Register

ICPR = Interrupt Clear-Pending Register

IABR = Active Bit Register

IPR = Interrupt Priority Registers

每个寄存器有240位,以Interrupt Set-Enable Registers说明,ISER[0]对应中断源0~31,ISER[1]对应中断源32~63,STM32只有60个中断源,所以没有ISER[2:7]。

参考STM32技术参考手册中的中断向量表,中断源的位置为:

位置0 - WWDG = Window Watchdog interrupt

位置1 - PVD = PVD through EXTI Line detection interrupt

位置2 - TAMPER = Tamper interrupt

......

位置58 - DMA2_Channel3 = DMA2 Channel3 global interrupt

位置59 - DMA2_Channel4_5 = DMA2 Channel4 and DMA2 Channel5 global interrupts

二、系统控制寄存器组

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 */

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

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 = System Handler Control and State Register

CFSR = Configurable Fault Status Registers

HFSR = Hard Fault Status Register

DFSR = Debug Fault Status Register

MMFAR = Mem Manage Address Register

BFAR = Bus Fault Address Register

AFSR = 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

最初发表日期:

劳动纠纷
游戏
手机评测
猜你会喜欢的
猜你会喜欢的