01.嵌套向量中断控制器(NVIC)
NVIC的全称是Nested vectoredinterrupt controller,即嵌套向量中断控制器。
Cortex-M0和Cortex-M4提供了“嵌套向量中断控制器(NVIC)”用以管理中断事件。其中M0和M4提供的中断优先级及个数不一致,为了让您更加简单的使用这一功能,下面小编将以SWM190为例,给大家展示如何使用SWM系列产品的NVIC。
SWM190系列32位MCU(以下简称SWM190)内嵌ARM CortexTM-M0内核,其中断优先级分为4级,可通过中断优先级配置寄存器(IRQn)进行配置。
特性:
l 4位中断优先级
l 支持嵌套和向量中断
l 硬件完成现场的保存和恢复
l 动态改变优先级
l 确定的中断时间
l 可屏蔽中断
在中断发生时,内核比较中断优先级,并自动获取入口地址,并保护现场,将指定寄存器中数据入栈,此过程无需软件参与。中断服务程序结束后,由硬件完成出栈工作。同时支持“尾链”模式及“迟滞”模式,有效的优化了中断发生及背对背中断的执行效率,提高了中断的实时性。嵌套向量中断控制器管理着包括核异常等中断。关于更多的异常和NVIC编程的说明请参考SWM190数据手册及M0权威指南。
02.外部中断/事件控制器(EXTI)
EXTI的全程是External interrupt/event controller,即外部中断/事件控制器,管理了控制器的32个中断/事件线。每个中断/事件线都对应一个电平或者边沿检测,电平检测支持高电平/低电平检测;边沿检测包括上升沿/下降沿/双边沿触发。
EXTI 可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。
SWM190提供了32个中断供外设与核交互,其排列如表格 1所示。可以通过中断配置模块,将任意模块或具体IO的中断连接至指定中断编号。具体使用参考中断配置模块。
|