嵌套中断(Nested Interrupt)

嵌套中断机制允许高优先级中断抢占低优先级中断执行, 是RTOS实时响应能力的重要组成部分。

机制定义

Nested Interrupt = 中断优先级判断 + 上下文保存 + 嵌套执行 + 恢复返回

相关 API

os_enter_interrupt()

进入中断上下文并保存执行状态。

查看 API →

os_exit_interrupt()

退出中断并恢复调度状态。

查看 API →

执行流程

1. 低优先级中断触发

CPU进入ISR1执行。

2. 高优先级中断到来

中断控制器检测到更高优先级请求。

3. 上下文保存

保存ISR1执行状态到栈。

4. 嵌套进入ISR2

执行更高优先级中断处理。

5. 逐级恢复

ISR2 → ISR1 → 任务恢复执行。

演示代码


#include "HRTOS.h"

/* 低优先级中断 */
void ISR_LOW(void)
{
    os_interrupt_enter();

    while(1)
    {
        // 等待被高优先级抢占
        os_nop();
    }

    os_interrupt_exit();
}

/* 高优先级中断 */
void ISR_HIGH(void)
{
    os_interrupt_enter();

    os_interrupt_flag_set();

    os_interrupt_exit();
}
    

系统意义

嵌套中断机制使实时系统能够优先响应关键事件, 在保证高优先级任务及时性的同时维持系统整体可预测性。

延伸阅读

中断模型

Interrupt Model

中断流程

Interrupt Flow

中断延迟分析

Interrupt Latency

相关导航

任务执行模型

任务执行模型

调度系统

调度系统

中断机制

中断机制

任务生命周期

任务生命周期