中断控制寄存器映射
中断寄存器的基地址为0xE000E000,所有中断控制/状态寄存器都只能在特权级下访问(除软件触发中断寄存器外),寄存器映射列表见表3-2。也可以参考cortex-m4使用手册,并推荐使用CMSIS函数来访问相关功能。
表3-2 中断寄存器映射
偏移量 |
名称 |
位宽 |
类型 |
复位值 |
描述 |
0x100-0x11C |
ISER0-ISER7 |
32 |
R/W |
0x00000000 |
中断使能寄存器,寄存器0为(IRQ0~IRQ31),以此类推 |
0x180-0x19C |
ICER0-ICER7 |
32 |
R/W |
0x00000000 |
中断清除使能寄存器,寄存器0为(IRQ0~IRQ31),以此类推 |
0x200-0x21C |
ISPR0-ISPR7 |
32 |
R/W |
0x00000000 |
中断挂起寄存器,寄存器0为(IRQ0~IRQ31),以此类推 |
0x280-0x29C |
ICPR0-ICPR7 |
32 |
R/W |
0x00000000 |
中断挂起清除寄存器寄存器0为(IRQ0~IRQ31),以此类推 |
0x300-0x31C |
IABR0-IABR7 |
32 |
RO |
0x00000000 |
中断活动状态寄存器寄存器0为(IRQ0~IRQ31),以此类推 |
0x400-0x4EF |
IPR0-IPR59 |
32 |
R/W |
0x00000000 |
中断优先级寄存器0寄存器0为(IRQ0~IRQ3),以此类推 |
0xD08 |
VTOR |
32 |
R/W |
0x00000000 |
向量表偏移寄存器 |
0xD0C |
AIRCR |
32 |
R/W |
0x00000000 |
应用中断控制寄存器 |
上表中将同类寄存器放在同一行描述,每个寄存器按4字节偏移增加,用户可自行计算出所需的寄存器地址偏移量。例如:要获取IPR2的地址,则在IPR0的基地址偏移量上增加8个字节,偏移量为0x400 + 0x8 = 0x408,则其实际地址为0xE000E408,其余寄存器偏移量计算以此类推。
中断使能寄存器(ISER)
偏移量:0x100
复位值:0x00000000
位域 |
名称 |
复位值 |
类型 |
描述 |
31:0 |
SETENA |
0x00000000 |
R/W |
中断使能控制: 1:使能中断 0:不影响 |
中断清除使能寄存器(ICER)
偏移量:0x180
复位值:0x00000000
位域 |
名称 |
复位值 |
类型 |
描述 |
31:0 |
CLRENA |
0x00000000 |
R/W |
中断清除使能控制: 1:禁止中断 0:不影响 |
中断挂起寄存器(ISPR)
偏移量:0x200
复位值:0x00000000
位域 |
名称 |
复位值 |
类型 |
描述 |
31:0 |
SETPEND |
0x00000000 |
R/W |
中断挂起控制: 1:中断挂起 0:中断未挂起 |
中断挂起清除寄存器(ICPR)
偏移量:0x280
复位值:0x00000000
位域 |
名称 |
复位值 |
类型 |
描述 |
31:0 |
CLRPEND |
0x00000000 |
R/W |
中断挂起清除控制: 1:清除挂起中断 0:不清除挂起中断 |
中断活动状态寄存器(IABR)
偏移量:0x300
复位值:0x00000000
位域 |
名称 |
复位值 |
类型 |
描述 |
31:0 |
ACTIVE |
0x00000000 |
RO |
中断挂起清除控制: 1:ISR执行中或者被抢占或者压栈 0:ISR未执行或者压栈 |
中断优先级寄存器(IPR)
偏移量:0x400~0x41C
复位值:0x00000000
位域 |
名称 |
复位值 |
类型 |
描述 |
7:0 |
PRI_n |
0x00 |
R/W |
中断n的优先级控制,受AIRCR影响。 |
向量表偏移寄存器(VTOR)
偏移量:0xD08
复位值:0x00000000
位域 |
名称 |
复位值 |
类型 |
描述 |
31:30 |
Reserved |
0x0 |
R/W |
保留 |
29 |
TBLBASE |
0 |
R/W |
向量表映射域: 0:Code 1:RAM |
28:7 |
TBLOFF |
0x000000 |
R/W |
向量表偏移地址 |
6:0 |
Reserved |
0x00 |
R/W |
保留 |
应用中断控制寄存器(AIRCR)
偏移量:0xD0C
复位值:0x00000000
位域 |
名称 |
复位值 |
类型 |
描述 |
31:16 |
VECTKEY |
0x0000 |
R/W |
寄存器配置解锁控制。写该寄存器时,该段位域须为0x05FA,否则写操作被忽略。 读该寄存器时,该段位域值为0xFA05 |
15:2 |
Reserved |
0x0000 |
R/W |
保留 |
1 |
VECTCLR |
0 |
R/W |
清除正在执行的中断: 1:清除所有中断信息,包括NMI和fault 0:不清除 |
0 |
VECTRESET |
0 |
R/W |
系统复位位,复位整个系统(除调试系统): 1:复位系统 0:不复位系统 在调试时,当core被挂起(halted)时才能写该位 |
来源:oschina
链接:https://my.oschina.net/u/4286839/blog/3407839