大家好 问一下
我的程序中有好几个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:
参考以下帖子看一下。
e2echina.ti.com/…/70010
,
skysteed:
你好 看了 和我要问的关系不大啊
我的任务是在for循环里执行 不需要条件触发
for(;;)
{//程序Task_sleep();或者Task_yield();
}
,
Nancy Wang:
那你的情况是顺序执行的。
Task_sleep通常用于低优先级抢占高优先级任务。