ARM Cortex - M7中断与任务调度详解
1. ARM Cortex - M7中断基础
1.1 异常编号与优先级
ARM Cortex - M7处理器中的异常有不同的编号、优先级和向量地址。异常编号1 - 15为内置异常,是ARM Cortex - M核心的必备部分。处理器支持固定优先级方案,每个中断源或异常可分配唯一优先级,值越小优先级越高,范围是0 - 15。若软件未配置优先级,可配置优先级的异常默认优先级为0。部分异常(如复位、NMI和硬故障)有固定优先级,用负值表示更高优先级。
异常执行顺序规则如下:
1. 若有多个异常挂起,优先级最高的异常先执行。
2. 若多个异常优先级相同,异常编号最小的先执行。
3. 处理器执行异常处理程序时,若出现更高优先级异常,原处理程序会被抢占;若新异常优先级相同,原处理程序不被抢占,但新中断状态仍挂起。
异常类型及相关信息如下表所示:
| 异常编号 | 异常类型 | 优先级 | 向量地址 | 激活方式 |
| ---- | ---- | ---- | ---- | ---- |
| 1 | 复位 | -3(最高) | 0x00000004 | 异步 |
| 2 | NMI | -2 | 0x00000008 | 异步 |
| 3 | 硬故障 | -1 | 0x0000000C | 同步 |
| 4 | 内存管理 | 可配置 | 0x00000010 | 同步 |
| 5 | 总线故障 | 可配置 | 0x00000014 | 同步 |
| 6 | 使用故障 | 可配置 | 0x00000018 | 同
超级会员免费看
订阅专栏 解锁全文
49

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



