STM8S中断优先级与中断嵌套-a2-漫画相对论

时间:2024-07-01 09:23:29
【文件属性】:

文件名称:STM8S中断优先级与中断嵌套-a2-漫画相对论

文件大小:6.09MB

文件格式:PDF

更新时间:2024-07-01 09:23:29

STM8 STVD IAR 寄存器 库函数

5.3 STM8中断指令 为了方便在程序中对中断进行操作,STM8S还提供了一个专用的中断指令集。具体如表 5.3所示。 表 5.3 专用中断指令集 指令 功能 备注 HALT 进入停机模式 IRET 中断程序返回 JRM 如果 I[1:0]=11则跳转 I[1:0]为 CPU CC寄存器中的中断优先级设置位 JRNM 如果 I[1:0]<>11则跳转 POP CC CC 出栈 RIM 使能中断(0级设置) SIM 禁止中断(3级设置) TRAP 不可屏蔽软中断 WFI 等待中断发生 5.4 STM8S中断优先级与中断嵌套 STM8单片机系统某个时刻只能处理一个中断,当系统有多个中断源同时发生中断请求时,STM8S 该如何处理呢?这就涉及 STM8S的中断管理。STM8S支持 2种中断管理模式:同时发生模式、嵌套模 式。 同时发生模式下,所有中断的优先级都是软件优先级 3级,某个中断一旦响应,其他中断无论硬件 优先级如何,都不能打断现在正在响应的中断(RESET、TRAP、TLI除外)。直到正在响应的中断响应完 毕,正在排队等待响应的中断中硬件优先级最高的中断才能被响应,所有中断源的硬件中断优先级遵循 中断向量表的顺序,排在前面的硬件优先级高。同时发生模式下的中断管理示意图如图 5.1所示。 图中各个中断的硬件优先级从低到高为:MAIN、IT4、IT3、IT2、IT1、IT0、TRAP,所有中断的软 件优先级均为 3,各个中断发生的时间及顺序见图上方。程序运行之后MAIN函数执行,其软件优先级默 认为 3,在MAIN函数中通过 RIM指令开启所有中断,MAIN软件优先级被设置为 0;IT2发生之后 CPU 会立即响应 IT2;在 IT2响应器件,IT1请求响应,但是此时 IT2正在响应过程中,故 IT1只能放入等待 响应的中断列表;IT2响应完毕时,IT4请求响应,因为此时已经有优先级更高的 IT1正在等待响应,故 IT1先被响应,IT4被放入等待响应的中断列表中;IT1响应过程中,IT3请求响应,因为 IT3优先级低于 IT1且 IT1正在响应,故 IT3也被放入等待列表;IT1继续响应,此时 TRAP请求响应,因为 TRAP是不 可屏蔽软件中断,可以中断其他的中断响应过程,故 TRAP被响应,IT1响应被中断;TRAP响应过程中 IT0请求响应,IT0被放入等待响应列表中;TRAP响应完成之后,IT1得以继续响应;IT1响应完成之后, 等待响应的中断列表中,IT0的硬件中断优先级最高,故 IT0先被响应,而无关中断请求发生时间的先后;


网友评论