2、任务挂起和恢复
(1)OSTaskSuspend流程图

(2)OSTaskResume流程图

(3)测试
/* App1Task */
void App1Task(void *p_arg)
{
p_arg = p_arg;
while(1)
{
printf("Hello,I amTask1!\n");
OSTimeDlyHMSM(0, 0, 1, 0);/* 任务调度*/
}
/* App2Task */
void App2Task(void *p_arg)
{
p_arg = p_arg;
while(1)
{
printf("Task2 isrunning!\n");
if(task2_time == 2)
{
OSTaskSuspend(App1Task_Prio); /* Task2运行2次挂起Task1任务,会进行任务调度*/
}
else if(task2_time== 10)
{
OSTaskResume(App1Task_Prio); /* Task2运行10次后恢复Task1任务运行,会进行任务调度*/
}
task2_time++;/* 计数值加*/
OSTimeDlyHMSM(0, 0, 2, 0);/* 任务调度*/
}
运行结果
本文介绍了一个实时操作系统中任务挂起与恢复的功能实现。通过示例代码展示了如何使用OSTaskSuspend和OSTaskResume函数来控制任务的状态,并通过一个具体的例子说明了任务状态切换的过程及其对任务调度的影响。
544

被折叠的 条评论
为什么被折叠?



