Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Task 同一优先级任务中xSemaphoreTake()的freertos子优先级_Task_Mutex_Freertos - Fatal编程技术网

Task 同一优先级任务中xSemaphoreTake()的freertos子优先级

Task 同一优先级任务中xSemaphoreTake()的freertos子优先级,task,mutex,freertos,Task,Mutex,Freertos,我有三个优先级相同的任务 Task A mutextake() //critical code mutexgive() Task B mutextake() //critical code mutexgive() Task C mutextake() //critical code mutexgive() 它们都运行由互斥锁保护的关键代码。但是,我想设置一个“子优先级”,在两个任务阻塞等待互斥时,谁将接受互斥。我不想设置具有不同优先级的任务,因为这将导致其他任务的设计复杂化。这是fr

我有三个优先级相同的任务

Task A 
mutextake()
//critical code
mutexgive()

Task B 
mutextake()
//critical code
mutexgive()

Task C 
mutextake()
//critical code
mutexgive()
它们都运行由互斥锁保护的关键代码。但是,我想设置一个“子优先级”,在两个任务阻塞等待互斥时,谁将接受互斥。我不想设置具有不同优先级的任务,因为这将导致其他任务的设计复杂化。这是freertos为一个任务设置“子优先级”的功能,以便在具有相同优先级的另一个任务之前获取互斥体吗?

一句话“否”。FreeRTOS任务间通信对象()具有等待发送的任务列表和等待接收的任务列表(以互斥为接收)。当操作可以完成时,列表中成功的任务是具有最高优先级的任务,或者如果任务具有相同优先级,则是等待时间最长的任务