完整调度流程(Full Schedule Flow)
本页面描述 HRTOS 内核从中断触发到任务切换的完整调度链路, 覆盖中断、调度决策、上下文切换与任务恢复全过程。
机制定义
Full Schedule Flow = Interrupt → Schedule → Select → Switch → Restore
内核决策模型
Kernel Decision = ISR Context + Ready Queue + Priority + Switch Condition
执行流程
1. 中断触发
SysTick 或外部中断进入内核调度入口。
2. 保存上下文
当前任务寄存器与栈状态保存。
3. 调度判断
评估 Ready Queue 中任务优先级。
4. 任务切换
选择最高优先级任务进入运行态。
5. 恢复执行
恢复目标任务上下文并继续执行。
内核API执行链
演示代码
#include "hrtos.h"
sbit LED_A = P1^0;
sbit LED_B = P1^1;
sbit LED_C = P1^2;
static void task_a(void)
{
while(1)
{
LED_A = ~LED_A;
os_delay(5);
}
}
static void task_b(void)
{
while(1)
{
LED_B = ~LED_B;
os_delay(20);
}
}
static void task_c(void)
{
volatile u16 i;
while(1)
{
LED_C = ~LED_C;
for(i = 0; i < 3000; i++);
os_delay(50);
}
}
void hrtos_main(void)
{
LED_A = 0;
LED_B = 0;
LED_C = 0;
os_task_create((unsigned int)task_a, 1, 2, 5);
os_task_create((unsigned int)task_b, 2, 3, 5);
os_task_create((unsigned int)task_c, 3, 4, 5);
}
系统意义
调度流程决定 RTOS 实时性上限,是中断、任务与CPU切换的核心执行链路。