ARM体系结构支持以下操作模式:
用户 模式: 在执行完CPU启动代码文件Startup.s后正常的程序执行状态。
系统 模式: 运行一些操作系统核。
IRQ (中断) 模式: 通用的中断处理模式。
FIQ (快速中断) 模式: 快速中断,处理一些特殊的中断源。
管理 模式: 进入保护状态的执行;通常在复位或使用SWI指令时进入此模式。
异常 模式: 在数据或指令预取失败时进入此模式。
未定义 模式: 当执行一个未定义的指令时进入此模式。
NVIC即是Nested Vectored Interrupt Controller,即是中断嵌套向量控制器。
它的主要功能:
有利于低延迟异常处理和中断处理
控制电源管理
实行系统控制寄存器。
该nvic支持多达240动态嵌套中断每个多达256个级别的优先级。该nvic和处理器核心的界面是紧密耦合,从而使低延迟的中断处理和有效地处理后来的中断。该nvic保持堆叠(嵌套)中断。
NVIC的存储区地址分配图:
当指令产生硬件异常或中断时,ARM CPU 提供一系列的向量地址。例如:CPU 重启指令执行重启向量地址(包括经典的CPU 启动代码)的内容。所有向量地址显示在下表中,当发生多重中断时,系统会根据优先级来判别。中断或异常会改变处理器工作模式并改变CPU寄存器内容。