NVIC (嵌套向量中断控制器)是什么?
NVIC (嵌套向量中断控制器)是什么?
NVIC (Nested Vectored Interrupt Controller,嵌套向量中断控制器) 是ARM Cortex-M系列处理器中的关键组件,负责管理中断和异常处理。
主要功能
- 中断优先级管理:
- 支持可编程的中断优先级
- 允许抢占式中断(高优先级中断可打断低优先级中断)
- 支持优先级分组
- 中断嵌套:
- 高优先级中断可以打断正在执行的低优先级中断
- 自动保存和恢复上下文
- 向量化中断处理:
- 每个中断有固定的入口地址(向量表)
- 无需软件判断中断源,直接跳转到对应ISR(中断服务程序 interrupt Service Routine)
- 其他功能:
- 中断屏蔽控制
- 挂起中断管理
- 系统异常处理
工作原理
- 当外设触发中断时,NVIC接收中断请求
- NVIC根据优先级决定是否响应及何时响应
- 处理器自动保存当前上下文
- 通过向量表跳转到对应的中断服务程序(ISR)
- ISR执行完毕后,处理器恢复上下文并返回被中断的程序
应用场景
NVIC广泛应用于基于Cortex-M内核的微控制器中,如STM32、GD32等系列芯片,为实时系统提供高效的中断管理机制。
NVIC的设计使得Cortex-M处理器能够高效处理多个中断源,满足实时系统的快速响应需求。