ARMV7-M数据手册---Part B :System Level Architecture---B3 System Address Map
1.前言
2.The system address map
3.System Control Space (SCS)
4.The system timer, SysTick
5. Nested Vectored Interrupt Controller, NVIC
与中断异常相关的寄存器主要包含在如下几个部分:
1.位于SCS.system control and ID.no SCB下的的中断相关寄存器
- Interrupt Controller Type Register, ICTR
主要提供了关于中断控制器相关的信息,此处给出了MCU厂商所支持的中断线的总数
- Software Triggered Interrupt Register, STIR
提供了一个机制,让软件来触发产生一个中断,需要在bit0~bit8写入一个(ExceptionNumber - 16)值来触发对应中断线产生中断
2.位于SCS.system control and ID. SCB下的的中断相关寄存器
- Interrupt Control and State Register, ICSR
提供NMI, PendSV, and SysTick exceptions的软件控制和中断状态信息
主要包括 PendSV和SysTick的手动pending和清pending;
是否有外部中断产生;
是否有更高优先级的中断pending产生
除了当前中断异常处于活跃状态,是否还有其他异常处于活跃状态
显示当前异常的异常号
- Application Interrupt and Reset Control Register, AIRCR
设置返回中断控制数据,通过向bit1写入1来清空所有中断异常的活跃状态信息
- Vector Table Offset Register, VTOR
向量表地址,bi7~bit31
- System Handler Priority Register 1, SHPR1
设置返回系统handler4~7的异常优先级
- System Handler Priority Register 1, SHPR2
设置返回系统handler8~11的异常优先级
- System Handler Priority Register 1, SHPR3
设置返回系统handler12~15的异常优先级
3.位于SCS的NVIC区域内的中断相关寄存器
- Interrupt Set-Enable Registers, NVIC_ISER0-NVIC_ISER15
使能或读每组中断的使能状态
- Interrupt Clear-Enable Registers, NVIC_ICER0-NVIC_ICER15
清空或读每组中断的使能状态
- Interrupt Set-Pending Registers, NVIC_ISPR0-NVIC_ISPR15
设置每个中断的pending
- Interrupt Clear-Pending Registers, NVIC_ICPR0-NVIC_ICPR15
清空每个中断的pending
- Interrupt Active Bit Registers, NVIC_IABR0-NVIC_IABR15
每组32个中断,显示是否处于活跃状态
- Interrupt Priority Registers, NVIC_IPR0-NVIC_IPR123
每个寄存器设置4个中断的优先级,每个优先级占8位