• 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)时才能写该位

  • 相关阅读:
    [Real World Haskell翻译]第24章 并发和多核编程 第一部分并发编程
    [Real World Haskell翻译]第22章 扩展示例:Web客户端编程
    [Real World Haskell翻译]第27章 网络通信和系统日志 Sockets and Syslog
    druid 解密
    git clone 所有远程分支到本地
    十、Delphi 把Json转成Delphi实体类
    XML External Entity attack/XXE攻击
    大家好!
    XXE攻防——XML外部实体注入
    ubuntu安装Go环境
  • 原文地址:https://www.cnblogs.com/wangyanwen/p/11448535.html
Copyright © 2020-2023  润新知