1.概述
NMI(不可屏蔽的外部中断)是一个特殊的异常。因为它处于异常区,所以它不受全局中断使能位MSTATUS.MIE的控制。NMI作为外部事件,E906 将其异常向量号定义为24,优先级在所有的中断和异常中最高。
在APT32F173中,可以升级为NMI的外部中断源有:
-
外部时钟检测错误
-
EXI0
-
内存(Flash,SRAM)校验错误
-
掉电检测
上述中断源的NMI使能后,不会影响原有的中断通路,比如EMCM的中断通路也是有效的,当然NMI的优先级是最高的,所以会以NMI的形式请求中断。
2.寄存器控制配置
在SYSCON系统配置OPT1寄存器中,选择NMI触发源控制位,如下图所示,当需要使用NMI中断的时候,需要将该位置1。例如:需要使用LVD的NMI中断,需要将Bit[27]置1。

3.如何使用NMI中断
一、在vectors.S中添加NMI中断处理函数入口
.NMI_Handler:
lw t0, 0x0(sp)
lw t1, 0x4(sp)
addi sp, sp, 8
addi sp, sp, -64
sw ra, 0(sp)
sw t0, 4(sp)
sw t1, 8(sp)
sw t2, 12(sp)
sw a0, 16(sp)
sw a1, 20(sp)
sw a2, 24(sp)
sw a3, 28(sp)
sw a

本文详细介绍了APT32F173处理器中NMI(不可屏蔽外部中断)的工作原理、配置方法以及如何在vectors.S文件中添加NMI中断处理函数。特别关注了外部时钟检测错误、内存校验错误和掉电检测等NMI中断源的使用实例。
最低0.47元/天 解锁文章
3万+

被折叠的 条评论
为什么被折叠?



