为了让NVIC能够比较优先级,它需要了解它们。
这看起来很简单(它可以从异常编号中获取它们;当前中断的异常编号在SCB->ICSR bits [5:0]中),但是当中断被中断时会发生什么呢?中断中断的异常号(或优先级)存储在哪里?
我查过姚的书,但找不到答案。
发布于 2020-02-04 10:44:31
根据ARM文档,中断程序状态寄存器包含“包含当前中断服务例程(ISR)的异常类型号”。
发布于 2020-02-04 19:53:28
NVIC_IPRn(中断优先级寄存器)按照位描述存储中断优先级。地址从0xE000E400 + 4n (安全)开始
以下是每个arm臂的NVIC_IPRn(0..128)寄存器的位分配。

例如,NVIC_IPR0的LSB包含INTR0的优先级。
https://stackoverflow.com/questions/60042838
复制相似问题