TI中文支持网
TI专业的中文技术问题咨询交流网站

有关sysbios中的Task_yield() 和 Task_sleep()

大家好 问一下

我的程序中有好几个task 优先级一致 之间的调度一开始用的是Task_sleep() 运行正常

把每个任务的Task_sleep() 替换换为Task_yield() 运行貌似也正常

这两种方式有什么区别 那种好一些???

Void UartWriteBuff(UArg a0, UArg a1)
{
for(;;)
{

mcbsp_send_uart(1,McBSP0_Send_UART,14);

Task_sleep(10);//休眠ms
//Task_yield();
}
}

Void UartWriteBuff(UArg a0, UArg a1)
{
for(;;)
{

mcbsp_send_uart(1,McBSP0_Send_UART,14);

//Task_sleep(10);//休眠ms
Task_yield();
}
}

skysteed:

每个任务优先级一致 用Task_yield() 是不是可以理解为
当前任务执行完 被抢占 然后去执行另一任务 以此类推 所有任务是在顺序执行

Nancy Wang:

回复 skysteed:

参考以下帖子看一下。
e2echina.ti.com/…/70010

skysteed:

回复 Nancy Wang:

你好 看了 和我要问的关系不大啊
我的任务是在for循环里执行 不需要条件触发
for(;;)
{//程序Task_sleep();或者Task_yield();
}

Nancy Wang:

回复 skysteed:

那你的情况是顺序执行的。
Task_sleep通常用于低优先级抢占高优先级任务。

赞(0)
未经允许不得转载:TI中文支持网 » 有关sysbios中的Task_yield() 和 Task_sleep()
分享到: 更多 (0)