os_task_resume
所属模块:任务管理 | 类型:任务恢复函数
函数简介
os_task_resume 用于将指定任务从挂起状态恢复为就绪状态。
恢复后任务将重新参与调度,并可能在下一次调度周期中立即运行。
该接口支持普通任务与高速任务统一恢复,并会触发一次系统调度事件。
函数原型
char os_task_resume(unsigned char id);
参数说明
| 参数 |
说明 |
| id |
任务ID(0~OS_PROCESS_MAX+1) |
源码实现
char os_task_resume(unsigned char id)
{
u8 i;
i = 1;
if(id > OS_PROCESS_MAX + 1)
{
return -1;
}
if(id >= OS_PROCESS_MAX)
{
id %= OS_PROCESS_MAX;
if(OS_KUAI_SP[id] == 0)
{
return -1;
}
if(id == 1)
{
OS_KUAI_PROCESS_B = 1;
}
else
{
OS_KUAI_PROCESS_A = 1;
}
}
else
{
if(OS_PROCESS_OK[id] == 0)
{
return -1;
}
OS_PROCESS_OK[id] |= 0x01;
}
OS_SCHED_REASON = 1;
TF0 = 1;
return i;
}
使用示例
void demo_resume()
{
os_task_resume(2);
}
注意事项
恢复操作会立即触发调度事件,任务可能在当前或下一调度周期运行。
高速任务与普通任务恢复路径不同,需注意资源一致性。