本帖最后由 赤诚 于 2018-10-30 12:18 编辑
void vTaskStartScheduler( void ) PRIVILEGED_FUNCTION;
如上函数定义,函数名后面为什么加了一个之前宏定义过的关键词PRIVILEGED_FUNCTION?搞不懂呀,谢谢大佬们。
还有一个问题就是创建两个任务后,其中一个任务死循环,整个程序就卡了,除非在那个死循环的函数里面添加vTaskDelay()函数。如下程序
void task1_task(void * pvParameters)
{
while(1)
{
LED0=~LED0;
vTaskDelay(500);
}
}
void task2_task(void * pvParameters)
{
while(1)
{
vTaskDelay(500);//后来添加的Delay函数
}
}
这是为什么呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我按你的启发,吧Task1优先级提高的确也不会卡程序了。说明你是对的。那我这样子理解:1,优先级高的任务可以抢正在执行的低优先级的任务CPU资源。
2,只有更高优先级的任务执行完了,或者有类似vTaskDelay();这种函数来释放CPU,低优先级才有被执行的可能。这样对不对呢?大佬是不是用UCOS 呢?谢谢大佬:D
一周热门 更多>