HRTOS 文档中心

中断延迟(Interrupt Latency)

从中断触发到 ISR 执行之间的时间间隔,是实时系统响应能力的核心指标。

系统架构 实时性分析 中断机制

概述

中断延迟表示外部事件发生到 ISR 开始执行之间的时间差,是实时系统关键性能指标之一。

延迟越小且越稳定,系统响应越及时,对外部事件的确定性越高。

在 HRTOS 中,该指标与 调度系统中断流程 共同构成完整响应链路。

延迟通常由:硬件响应 + 当前指令执行 + 中断屏蔽 + 上下文保存 + ISR入口开销组成。

工作原理

中断触发后,CPU 完成当前指令并检查屏蔽状态,随后保存上下文并进入 ISR。

ISR 结束后调用 os_interrupt_exit(),由调度器决定是否发生任务切换。

降低中断延迟的关键在于缩短 ISR 执行时间,避免阻塞与长临界区。

关键接口 / 结构

os_interrupt_id() // 获取当前中断编号
os_enter_critical() // 进入临界区(关闭中断)
os_exit_critical() // 退出临界区(恢复中断)
os_in_isr() // 判断当前是否运行在中断上下文中
os_queue_send_from_isr() // 中断中发送邮箱消息
os_event_set_from_isr() // 中断中设置事件标志
os_semaphore_post_from_isr() // 中断中释放信号量
os_msgq_send_from_isr() // 中断中发送消息队列数据
os_schedule_request() // 请求调度器重新调度
os_interrupt_exit() // 完成中断退出

这些接口覆盖 ISR 中常见操作:状态判断、通信、同步与调度触发。

  • 临界区仅用于极短保护窗口
  • ISR 内只做必要事件处理
  • 退出阶段负责调度检查

运行流程

中断触发 → CPU完成当前指令 → 保存上下文 → 进入ISR → ISR处理 → 退出 → 调度检查 → 任务恢复/切换

扩展说明

中断延迟受硬件与软件共同影响,包括 CPU 架构、总线访问、中断控制器、临界区长度等因素。

优化通常集中在 ISR 设计与系统调度策略上。

  • 保持 ISR 极短
  • 减少关闭中断时间
  • 合理配置中断优先级
  • 关注最坏情况延迟(WCIL)

对实时系统而言,最坏情况延迟比平均值更重要。