概述
中断用于响应异步事件,使 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 层防止栈溢出