os_set_scheduler
所属模块:调度系统 | 类型:调度器切换函数
函数简介
:contentReference[oaicite:0]{index=0} 用于切换系统当前使用的调度器类型,
支持在 HRTOS 调度与 MYOS 兼容模式之间切换。
该接口主要用于系统级调度框架切换,使系统能够在不同调度实现之间动态切换运行模式。
函数原型
char os_set_scheduler(unsigned char id);
参数说明
| 参数 |
说明 |
| id |
调度器选择:0 = MYOS,1 = HRTOS |
返回值
1 表示切换成功,-1 表示切换失败或状态不满足条件。
源码实现
char os_set_scheduler(unsigned char id)
{
if((id == 0) && (OS_INTERRUPT_T0 == 0))
{
OS_INTERRUPT_T0 = 1;
OS_TIME_ONCE_BACKUP = OS_TIME_ONCE;
return 1;
}
else if((id == 1) && (OS_INTERRUPT_T0 == 1))
{
OS_INTERRUPT_T0 = 0;
OS_TIME_XY = OS_TIME_XY + OS_TIME_ONCE_BACKUP - OS_TIME_ONCE;
OS_TIME_ONCE = OS_TIME_ONCE_BACKUP;
return 1;
}
return -1;
}
使用示例
void scheduler_demo(void)
{
// 切换到 MYOS
os_set_scheduler(0);
// 切换到 HRTOS
os_set_scheduler(1);
}
注意事项
调度器切换会影响系统中断与时间基准状态,应避免在任务运行关键阶段频繁切换,以免造成时间统计偏差或调度异常。