异常一览表
编号
| 类型
| 优先级
| 简介
| Enable
| 0
| N/A
| N/A
| 没有异常在运行
|
| 1
| 复位
| -3(最高)
| 复位
| 总是
| 2
| NMI
| -2
| 不可屏蔽中断(来自外部NMI输入脚)
| 总是
| 3
| 硬fault
| -1
| 所有被除能的fault,都将“上访”(Escala-tion)成硬fault。只要FAULTMASK没有置位,硬fault服务例程就被强制执行。Fault被除能的原因包括被禁用,或者被PRIMASK/BASEPRI掩蔽
| 总是
| 4
| Mem Man-age fault
| 可编程E000_ED18
| 存储器管理fault、MPU访问犯规以及访问非法位置均可引发。企图在“非执行区”取舍也会引发fault.
| NVIC SHCSR.16E000_ED24
| 5
| 总线fault
| 可编程E000_ED19
| 从总线系统收到了错误响应,原因可以是预取流产(Abort)或数据流产,或者企图访问协处理器
| NVIC SHCSR.17E000_ED24
| 6
| 用法fault
| 可编程E000_ED1A
| 由于程序错误导致的异常,通常是使用了 条无效指令,或者是非法的状态转换,例如尝试切换到ARM状态
| NVIC SHCSR.18E000_ED24
| 7~10
| 保留
| N/A
| N/A
|
| 11
| SVCall
| 可编程E000_ED1F
| 执行系统服务调用指令(SVC)引发的异常
| 总是
| 12
| 调试监视器
| 可编程E000_ED20
| 调试监视器(断点、数据观察点,或者是外部调试请求)
| NVIC DEMCR.16E000_EDFC
| 13
|
| N/A
| N/A
|
| 14
| PendSV
| 可编程E000_ED22
| 为系统设备而设的“可悬挂请求”(Pend-able Request)
| 总是
| 15
| Systick
| 可编程E000_ED23
| 系统滴答定时器(也就是周期性溢出的时基定时器——译注)
| SysTick CTRSTAT.1E000_E010
| 16~255
| IRQ
| E000_E400
| 多达240条外部中断
| NVIC SETENA寄存器阵列
|
|