中断延迟测试(Interrupt Latency Test)

用于测量HRTOS从中断触发到进入ISR执行之间的时间延迟,用于评估实时性能。

机制定义

Interrupt Latency = 中断触发 → ISR第一条指令执行

延迟组成模型

Interrupt Latency = Detection Delay + CPU Response + Context Save + Vector Jump + ISR Entry

测试流程

1. 触发外部中断信号
2. CPU响应中断请求
3. 记录时间戳T1
4. ISR入口执行记录T2
5. 计算 T2 - T1

演示代码


#include 

volatile unsigned int t1, t2, latency;

/* 外部中断 */
void ISR_Handler(void)
{
    t2 = os_get_tick();   // 进入ISR时间
    latency = t2 - t1;

    os_news_send1(0, latency);
}

/* 模拟触发 */
void trigger_interrupt(void)
{
    t1 = os_get_tick();    // 触发前时间

    os_soft_interrupt();   // 软件触发中断
}

void system_init(void)
{
    os_interrupt_init();
}

void main(void)
{
    system_init();

    while(1)
    {
        trigger_interrupt();
        os_wait1(10);
    }
}
    

API接口映射

用于控制中断触发与时间测量的核心接口。

中断初始化

os_interrupt_init()

软件触发中断

os_soft_interrupt()

时间戳获取

os_get_tick()

实时性意义

中断延迟是RTOS实时能力的上限指标,它决定系统是否具备确定性响应能力, 是评估硬实时系统等级的核心标准。

系统意义

中断延迟是实时系统最关键指标之一,直接决定系统响应能力上限。

相关导航

任务执行模型

Task Execution

调度系统

Scheduling Engine

中断机制

Interrupt Flow

任务生命周期

Task Lifecycle