硬件中断
外部引脚、定时器或其他外设事件可以引发中断服务。 是否立即影响任务执行,取决于中断配置与当前处理器状态。
执行流描述处理器如何在任务、中断与内核控制路径之间转移执行权。 通过分析事件触发、调度条件、上下文切换与任务运行, 可以理解 HRTOS 的运行机制,并为关键路径的时间分析建立基础。
从代码逻辑转向处理器实际经历的执行路径。
执行流是处理器在特定系统状态与事件条件下, 沿指令执行、异常处理、内核服务和上下文转移形成的动态路径。
对于 RTOS,执行流不仅取决于程序中的函数调用关系, 还受到中断、任务状态、优先级、调度策略和资源约束的影响。
同一段任务代码,在不同的中断时机、任务状态和调度条件下, 可能经历不同的执行路径。理解这些路径,才能进一步分析 响应延迟、上下文切换开销与最坏情况时间。
以下流程展示事件可能引发的控制路径。 它是用于理解机制的概念模型,不代表所有事件都必须经过每个阶段。
外部中断、定时器事件、任务延时到期、消息到达, 或任务主动调用内核服务。
硬件中断进入 ISR;任务 API 则可能执行内核服务。 不同入口具有不同的上下文与执行约束。
根据事件结果、任务状态、优先级和调度策略, 判断是否需要改变当前执行对象。
如果满足切换条件,系统按相应机制保存和恢复执行现场; 否则,当前执行路径可能继续。
ISR 返回原任务,或当前任务继续执行。 具体行为取决于事件类型与内核状态。
执行必要的现场保护与恢复,转入被选中的任务, 后续仍可能被中断或再次调度。
实际执行路径还取决于寄存器组管理、堆栈操作、中断入口与返回、 编译器生成的指令,以及 HRTOS 对任务和中断上下文的具体实现。 这些细节需要结合实际内核代码与目标芯片进行确认。
不同触发源进入内核的方式不同,不能将其统一理解为一次调度。
外部引脚、定时器或其他外设事件可以引发中断服务。 是否立即影响任务执行,取决于中断配置与当前处理器状态。
系统 Tick 可用于更新时间与检查定时条件。 时间事件是否导致任务切换,还取决于任务状态和调度规则。
延时、等待、消息操作或其他内核 API 可能改变任务状态, 并影响后续的调度决策。
当新的任务变为就绪状态,或者有效优先级发生变化时, 系统可能需要重新评估执行权分配。
执行流描述控制权如何转移;任务生命周期描述任务在系统中的状态。 两者相关,但不是同一个概念。
任务具备运行条件,等待获得处理器执行权。
任务当前正在处理器上执行。
任务正在等待时间、事件、消息或其他内核定义的条件。
只有当内核支持相应操作时,任务才会进入退出或终止路径。 资源回收方式应以实际实现为准。
Ready、Running 与等待状态之间的转换由具体事件和内核规则决定。 任务也不一定最终进入终止状态:许多嵌入式任务会在整个系统运行期间持续存在。
当执行路径能够被识别后,才能进一步估算或测量关键阶段的时间开销。
对于一个由外部中断触发、最终由任务处理的事件, 可以将端到端响应时间拆分为若干阶段。
其中各项分别表示事件至中断服务的延迟、中断处理时间、 调度或切换开销,以及任务从开始执行到完成目标动作所需的时间。 该表达式是简化的分解模型;实际分析需要避免阶段重叠或遗漏, 并纳入适用的阻塞、嵌套与干扰因素。
Worst-Case Execution Time。 对指定代码路径和明确执行条件,分析其最坏情况执行时间。
Worst-Case Response Time。 分析任务或事件从指定起点到响应终点的最坏情况时间。
结合反汇编、控制流、分支与循环边界、指令周期和干扰条件, 推导适用范围内的时间上界。
使用 GPIO 翻转、逻辑分析仪或示波器观察实际时间, 为性能评估与分析模型提供测量证据。
有限次测试得到的是特定测试条件下的观测结果。 要形成可信的最坏情况结论,还需要明确路径覆盖、 循环边界、中断干扰、硬件条件与分析假设。
执行流由处理器实际控制路径、任务与内核状态、 以及事件发生的时机共同决定。
对 HRTOS 而言,分析执行流的价值在于: 将任务调度、中断处理、上下文切换与时间约束联系起来, 使关键路径能够被解释、测量,并在明确的前提下进行分析。
结合目标芯片、实际编译输出、内核上下文管理代码与硬件测量, 验证执行路径中的每个关键假设。 只有将模型与具体实现对应起来,才能形成有工程价值的分析结论。