HRTOS 文档中心

中断流程(Interrupt Flow)

定义外部事件打断任务执行并切换到 ISR 的完整处理路径。

系统架构 中断机制 实时系统

概述

中断用于响应异步事件,使 CPU 在任意时刻暂停当前任务并进入 ISR。

常见来源包括定时器、GPIO、串口、DMA 等硬件或系统异常。

HRTOS 支持优先级嵌套与中断屏蔽,保证实时响应与执行确定性。

工作原理

当中断触发时,CPU 保存当前上下文并跳转 ISR;执行完成后由调度器决定恢复或切换任务。

中断分类

分为外部中断(GPIO / 外设)与内部中断(定时器 / 异常),通过向量表映射 ISR。

上下文保存

ISR 进入前保存寄存器与状态信息,通常由硬件完成,RTOS 可扩展优化路径。

嵌套与优先级

支持高优先级中断打断低优先级 ISR,但需限制嵌套深度以避免栈风险。

屏蔽与延迟处理

临界区可屏蔽中断;非关键逻辑可延迟到任务上下文执行(Bottom Half)。

与调度器关系

ISR 结束后触发调度检查,若有更高优先级任务则立即切换,否则恢复当前任务。

ISR 应保持短小、确定,不建议执行复杂计算或阻塞操作。

关键接口 / 结构

os_enter_critical() // 进入临界区 os_exit_critical() // 恢复中断 os_in_isr() // 判断ISR上下文 os_interrupt_id() // 获取中断编号 os_interrupt_exit() // ISR退出并触发调度

这些接口的重点不是“能做什么”,而是“在哪个阶段使用”。

  • 临界区仅保护极短窗口
  • ISR 内保持逻辑轻量
  • 退出阶段负责调度触发与状态闭合

运行流程

中断触发 → 保存上下文 → 执行 ISR →(可嵌套)→ ISR退出 → 调度检查 → 任务恢复/切换

扩展说明

  • 优先级嵌套:高优先级中断可抢占低优先级 ISR
  • 中断屏蔽:保护关键代码段数据一致性
  • 延迟处理:将复杂逻辑移出 ISR
  • 向量管理:快速定位 ISR,支持动态注册
  • 嵌套限制:通常限制 1~2 层防止栈溢出