ARM NVIC控制器(基于cortex-M4)

中断控制寄存器映射

中断寄存器的基地址为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)时才能写该位

转载于:https://www.cnblogs.com/wangyanwen/p/11448535.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值