概述
中断是RTOS响应外部事件的核心机制, 通过异步触发打断当前执行流并进入中断服务程序。
工作原理
当中断发生时,CPU自动保存部分上下文, 进入ISR执行逻辑,处理完成后再恢复任务执行状态。
中断延迟与嵌套深度直接影响系统实时响应能力。
中断触发条件
中断通常由外设事件或系统内部异常触发。
1. 外设数据到达
2. 定时器到期
3. GPIO事件触发
4. 系统异常
5. 软件中断请求
中断机制使CPU无需轮询外设状态,从而提升实时响应效率。
执行路径
中断触发
↓
CPU保存上下文
↓
进入中断服务程序(ISR)
↓
执行中断处理逻辑
↓
清除中断标志
↓
检查是否需要调度
↓
恢复上下文并返回
中断执行路径决定系统响应速度与任务切换时机。
关键接口 / 结构
os_interrupt_enable()
os_interrupt_disable()
os_isr_handler()
struct interrupt_context {
uint32_t pc;
uint32_t psr;
uint32_t regs[16];
};
中断服务程序(ISR)
ISR负责处理中断事件,并尽可能快速完成关键逻辑, 避免阻塞后续中断响应。
ISR Best Practice:
- 保持执行时间短
- 避免阻塞调用
- 只做必要处理
- 延迟复杂任务到调度阶段
运行流程
中断触发 → CPU自动保存上下文 → 进入ISR → 执行业务逻辑 → 清除中断标志 → 恢复上下文 → 返回原任务。
中断嵌套机制
HRTOS支持高优先级中断抢占低优先级中断, 以保证关键事件优先处理。
低优先级 ISR 执行
↓
高优先级中断到达
↓
进入嵌套 ISR
↓
返回原中断继续执行
扩展说明
HRTOS支持中断嵌套与中断优先级分层机制, 可在保证实时性的同时避免关键路径阻塞。
性能影响因素
中断延迟主要受以下因素影响:
1. ISR执行时间
2. 中断嵌套层级
3. 上下文保存开销
4. 调度器复杂度
5. CPU架构特性