“STM8 中断屏蔽和处理流程”的版本间的差异
来自丢石头百科
(STM8 中断屏蔽和处理流程中断屏蔽是通过CC寄存器的位I1和位I0以及设置每个中断向量(表13)的软件优先级的ITC_SPRx来管理的。处理流程如图17所示:(表13:软件优先级)(图17:中断处理流程图)当一个中断请求必须被响应 ...) |
(没有差异)
|
2019年11月18日 (一) 16:33的最新版本
STM8 中断屏蔽和处理流程
中断屏蔽是通过CC寄存器的位I1和位I0以及设置每个中断向量(表13)的软件优先级的ITC_SPRx来管理的。处理流程如图17所示:
(表13:软件优先级)
(图17:中断处理流程图)
当一个中断请求必须被响应时: 1.在当前正在执行指令结束之后,正常的操作被悬起; 2.PC,X,Y,A和CC寄存器被自动压栈; 3.根据ITC_SPRx寄存器中的值对应的中断服务向量,CC寄存器中的位I1和I0被相应设置;
4.通过中断向量载入中断服务子程序的入口地址,接着对中断服务子程序的第一条指令取址(参考表16中断映射表来了解向量地址的更详细情况)。
中断服务子程序必须以IRET指令结束,该指令会把堆栈中的保存的寄存器内容出栈,同时由于运行IRET指令,位I1和位I0被重新恢复,程序也恢复运行。
处理等待(排队)的中断
同一时间可以有几个中断排队等待处理。中断响应是根据如下两步来决定的: 1. 最高软件优先级的中断被响应; 2. 如果几个排队的中断具有相同的软件优先级,那么最高硬件优先级的中断先响应。
当中断请求没有立即得到响应时,该中断请求被锁存;当其软件优先级及硬件优先级均为的时候,该中断被处理。
注意:
- * 与软件优先级不同,每个中断的硬件优先级是唯一且互不相同的,这样就可保证一个时刻只有一个中断被唯一确定地处理。
- RESET,TLI和TRAP这个几个中断被认为是拥有最高的软件优先级来处理。
- 一个TLI中断可中断除TRAP及RESET之外的3级中断。见图18了解更加详细的排队等待处理的中断服务过程。
(图18:优先级处理过程 )
中断源
STM8中断控制器处理2种类型的中断源: