背景

我们在单片机编程,嵌入式RTOS编程,甚至其他OS下的系统编程时,可能会忽略“中断嵌套”背景知识,在之前的工作和编码过程中,我也没有深入的了解或者注意过“中断嵌套”,直到当我想要深入了解嵌入式RTOS的运行原理时,才发现,原来“中断嵌套”的概念是如此的重要,以至于各种RTOS的基础配置,以及设计,都是围绕着“中断嵌套”的机制来设计和配置的。

什么是中断嵌套

中断嵌套的书面解释如下:

中断嵌套指中断系统正在执行一个中断服务L时,有另一个优先级更高的中断H触发,这时中断系统会暂时中止当前正在执行低优先级中断服务程序L,而去处理高级别中断H,待处理完毕,再返回被中断了的中断服务程序L继续执行。

综上,通俗的讲就是:
所谓中断嵌套,就是中断抢占机制,允许高优先级中断源抢占正在执行的低优先级中断。

嵌入式实时操作系统与中断嵌套的关系

目前比较流行的几种嵌入式实时操作系统有uC/OS、RT-Thread、FreeRTOS等,对外都宣称它们是嵌入式实时操作系统,那么什么叫实时呢?所谓【实时】 其实就是【及时】,能够及时的处理各种任务和中断,而如何实现【实时/及时】呢,本质上就是要支持:高优先级任务/中断能够抢占低优先级任务/中断,这里的【抢占】本质上就是【中断嵌套】。

中断嵌套执行细节流程

通过上面的介绍,我们大概了解了什么叫中断嵌套,说白了就是中断抢占,为了帮助大家理解【抢占】概念,我们从CPU的角度,看一下中断嵌套的整个流程以及内部细节

上图中,中断2优先级 > 中断1优先级。

小结

中断嵌套,通俗的理解就是中断抢占。中断嵌套是深入理解嵌入式RTOS、嵌入式编程的一个重要概念,理解中断嵌套,有助于理解CPU内部中断、应用程序的内部运行原理。我们需要有个概念,我们的应用程序在运行的过程中,会经常被中断、嵌入式OS调度打断,然后再恢复。

更多推荐

RTOS系列(1):基础知识——中断嵌套