RTX 抢占式任务调度如何实现?
如题,RTX5中设置了如下两个任务A和B,且AppTaskA 优先级高于AppTaskAB;void AppTaskA (void *argument)
{
// ...
//main loop
while(1)
{
Wdg_Feed();
if(Check())
{
RUN();
}
else
{
STOP();
}
//osDelay(10);
}
//end loop
}
void AppTaskB (void *argument)
{
while(1)
{
Wdg_Feed();
Send();
osDelay(20);
}
}
在RTX_Config.h中取消Round-Robin Thread swtiching,意图使用抢占式调度(到底如何使用抢占式调度?);
不解之处:为何注释了AppTaskA 中的osDelay(10);,系统还能够进到AppTaskB?
AppTaskA的优先级高于AppTaskB,而且有没有出让系统控制权,为何AppTaskB还能执行?
求解,谢谢大家~!
1、把你这两个任务的创建函数贴出来。
2、两个任务里面仅留下大while循环里面的osDelay做测试。 谢谢硬汉兄,while里面仅留 osDelay 就好了,AppTaskB不会进了。原因是代码乌龙了。。。。:D
页:
[1]