Cortex-M0提供中断控制器,作为异常模式的组成部分,称之为“嵌套向量中断控制器(NVIC)”。 它与处 理器内核紧密联系,并具有以下特性: 支持嵌套和向量中断 自动保存和恢复上下文 可动态改变优先级 简化的精确的中断延迟 NVIC对所有支持的异常按优先级排序并处理,所有异常在“处理模式“处理. NVIC结构支持具有四级优先 级的32个(IRQ[31:0])离散中断。 所有的中断和大多数系统异常可以配置为不同的优先级。当中断发生 时,NVIC将比较新中断与当前中断的优先级,如果新中断优先级高于当前中断,则新中断将代替当前 中断被处理。
当任何中断被响应时,中断服务程序(ISR)的起始地址从内存的向量表中取得。不需要由软件确定响 应哪个中断,也不要软件跳转到相应ISP的起始地址。当取得起始地址时,NVIC将自动保存处理器状 态,包括以下寄存器“PC, PSR, LR, R0~R3, R12” 的值到栈中。 在ISR结束时, NVIC 将从栈中恢复相关 寄存器的值,恢复正常操作, 因此处理器将花费更少的并且确定的时间去处理中断请求。
NVIC支持末尾连锁“Tail Chaining” ,有效处理尾对尾中断“back-to-back interrupts”, 即无需重复保存和 恢复当前状态从而减少从当前ISR结束切换到等待处理的ISR的延迟时间。NVIC还支持晚到“Late Arrival”,可以提升同时发生的ISR的效率。在当前ISR开始执行(保存处理器状态并获取起始地址阶 段)之前如果较高优先级中断请求发生,NVIC将立即选择处理更高优先级的中断,从而提高了实时 性。
|