NVIC的初识

来源:互联网 发布:电梯破解软件 编辑:程序博客网 时间:2024/05/16 07:49
        NVIC全称为Nest Vector Interrupt Controller,人们一般称之为“嵌套中断向量控制器”,是用来管理中断嵌套的,核心任务就是在于其优先级的管理NVIC给每个中断赋予先占优先级和次占优先级。它们的关系描述如下:

1、拥有较高先占优先级的中断可以打断先占优先级较低的中断(类似前面所说的执行优先级)。

2、若两个先占优先级的中断同时挂起,则优先执行次占优先级较高的中断。

3、若两个挂起的中断两个优先级都一致,则优先执行位于中断向量表中位置较高的中断。

4、无论任何时刻,次占优先级都不会造成中断嵌套,即是说中断嵌套完全是由先占优先级决定的。

5、NVIC通过优先级分组来分配先占优先级和次占优先级的数量。


来自百度百科:

NVIC:
      提供中断控制器,用于总体管理异常,称之为“嵌套向量中断控制器:Nested Vectored Interrupt Controller (NVIC)”。
NVIC和处理器内核紧密相连.它提供以下特征。
            ·支持嵌套和向量中断
            ·自动保存和恢复处理器状态
            ·动态改变优先级
            ·简化的和确定的中断时间
            NVIC 依照优先级处理所有支持的异常,所有异常在“处理器模式”处理。NVIC 结构支持32(IRQ[31:0]) 个离散中断,每个中断可以支持 4 级离散中断优先级。
所有的中断和大多数系统异常可以配置为不同优先级。当中断发生时,NVIC 将比较新中断与当前中断的优先级,如果新中断优先级高,则立即处理新中断。
当接受任何中断时,ISR的开始地址可从内存的向量表中取得。不需要确定哪个中断被响应,也不要软件分配相关中断服务程序(ISR)的开始地址。
当获取中断入口地址时,NVIC 将自动保存处理状态到栈中,包括以下寄存器“PC, PSR, LR, R0~R3, R12” 的值。在ISR结束时,NVIC 将从栈中恢复相关寄存器的值,
进行正常操作,因此花费少量且确定的时间处理中断请求。NVIC 支持末尾连锁 ”TailChaining”,有效处理背对背中断 ”back-to-back interrupts”,
即无需保存和恢复当前状态从而减少在切换当前ISR时的延迟时间。NVIC 还支持迟到 “Late Arrival”,改善同时发生的ISR的效率。
当较高优先级中断请求发生在当前ISR开始执行之前(保持处理器状态和获取起始地址阶段),NVIC 将立即处理更高优先级的中断,从而提高了实时性。
            Cortex ‐ M3在内核水平上搭载了一颗中断控制器——嵌套向量中断控制器NVIC(Nested VectoredInterrupt Controller)。
它与内核有很深的“私交”——与内核是紧耦合的。NVIC 提供如下的功能:
            z 可嵌套中断支持
            z 向量中断支持
            z 动态优先级调整支持
            z 中断延迟大大缩短
            z 中断可屏蔽

1 0