异常类型
Cortex-M3再内核水平上搭载了一个异常响应系统,支持为数众多的系统异常和外部中断(这里的外部是相对于CM3内核来说的)。
其中编号为1~15的对应系统异常,大于等于16的则全是外部中断(CM3内核外部)。
除个别异常的优先级被定死外,其他异常的优先级都是可编程的(所有能打断正常执行流的事件都成为异常)。
芯片设计者可以修改CM3的硬件描述代码,所以做成芯片后,支持的中断源数目常常不到240个,并且优先级的位数也由芯片厂商最终决定。
系统异常清单
编号 | 类型 | 优先级 | 简介 |
---|---|---|---|
0 | N/A | N/A | 没有异常在运行 |
1 | 复位 | -3(最高) | 复位 |
2 | NMI | -2 | 不可屏蔽中断(来自外部NMI输入脚) |
3 | 硬fault | -1 | 所有被除能的fault,都将上访成硬fault。只要FAULTMASK没有置位,硬fault服务例程就被强制执行。Fault被除能的原因包括被禁用,或者FAULTMASK被置位。 |
4 | MemManage fault | 可编程 | 存储管理器fault,MPU访问犯规以及访问非法位置均可引发。企图在”非执行区“取指也会引发此fault。 |
5 |