1.异常分类及地址
Cortex-M0 中断向量表地址固定为0x00000000,向量表大小为48*4字节,其中:
0 处放的是main stack的初始化sp指
1~15 是内核自己使用的excption
16~47 是外设使用
Reset:芯片复位时从Reset存放的地址开始执行。
NMI: 不可屏蔽中断,优先级最高,不会被抢断,不能被屏蔽。
HardFault: 操作过程中出错时产生。
SVCall: 系统调用,由SVC指令触发。应用于OS中call内核函数或者驱动。
PendSV:中断驱动的系统级服务。应用于OS中任务切换。
SysTick: 系统定时器触发。应用于OS Tick。
IRQ:可用于芯片的其它外设中断。例如I2C,USB等等..
2.异常的优先级:
3. Cortex-M0 中断特点
- 支持4个优先级。
- 出入中断的现场保护由硬件完成。
- 末尾连锁 — 这个机制加速了异常的处理。当一个异常处理程序结束时,如果一个挂起的异常满足异常进入的要求,就跳过堆栈弹出,控制权移交给新的异常处理程序。
- 迟来(Late-arriving) — 这个机制加速了抢占的处理。如果一个高优先级的异常在前个异常正在保存状态的过程中出现,处理器就转去处理更高优先级的异常。状态保存不受迟来异常的影响,因为两个异常保存的状态相同。从迟来异常的常处理程序返回时,要遵守正常的末尾连锁规则。
硬件保护现场的内容:
4. LPC11U中断向量
Exception number = Cortex-M0 IRQ编号
Cortex-M0的IRQ用于LPC11U的外设
来源:oschina
链接:https://my.oschina.net/u/563842/blog/67208