GD32实战7__中断
引子 什么是中断 1. 我就是CPU 2. 编写文档,是主运行程序 3. 门铃响了,是中断信号 4. 查看到是快递,是查询中断号 5. 签收快递,是中断处理程序 6. 签收完快递后继续工作,是中断返回 即,中断就是由于某些事件打断CPU主运行程序运行,并处理该事件,处理完后继续运行主程序的过程。 为什么需要中断 什么是中断优先级 什么是中断嵌套 什么是入栈和出栈 Cortex-M3中断管理 向量中断支持 M3把各种中断都映射不同的地址上,当中断发生时,M3会根据中断号从表中查找到中断入口函数的地址,然后跳转过去并执行。 映射在哪个地址上是可以配置的,因此我们在修改程序的起始地址时,必须把中断向量重新映射,例如boot+app开发时。 如下表,1-15号用于系统异常,16号以上用于外部中断。 可嵌套中断支持 1. 通过寄存器AIRCR为优先级分组,通过分组我们可以知道哪些bit代表抢占优先级,哪些bit代表亚优先级,如图中1->2->4。 2. 中断优先级寄存器阵列的每个寄存器都是8位的,映射到优先级分组后,如图中3->4,经过此映射,M3就知道每个中断的抢占优先级和亚优先级分别是多少了。 3. 当多个中断同时发生时,M3首先选择抢占优先级最高的中断执行,当抢占优先级相同的中断同时触发时,M3优先选亚优先级最高的执行。 4. 到此,我们也明白了为什么理论上优先级有256级