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任务间通信对象()具有等待发送的任务列表和等待接收的任务列表(以互斥为接收)。当操作可以完成时,列表中成功的任务是具有最高优先级的任务,或者如果任务具有相同优先级,则是等待时间最长的任务