freertos互斥量优先级继承
时间: 2023-08-24 16:07:15 浏览: 120
FreeRTOS提供的互斥量可以通过优先级继承算法来解决优先级翻转问题。优先级继承算法是指,当一个低优先级任务占用了某个资源时,该任务的优先级会被临时提升到与等待该资源的高优先级任务中最高优先级任务相等。这样可以避免高优先级任务被中间优先级任务抢占的情况发生。当低优先级任务释放该资源时,它的优先级会恢复到初始设定值。这种优先级继承机制确保了高优先级任务进入阻塞状态的时间尽可能短,同时降低了优先级翻转带来的影响。因此,对于保护临界资源,建议使用FreeRTOS的互斥量来实现优先级继承机制。
需要注意的是,互斥量的优先级继承机制只在任务中起作用,在中断服务函数中无效。因此,在中断服务函数中不能使用互斥量来解决优先级翻转问题。 在某些场景下,当低优先级任务占用了某个资源时,即使有高优先级任务需要使用该资源,高优先级任务也必须等待低优先级任务释放该资源。这种情况被称为"优先级翻转"。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [FreeRTOS个人笔记-互斥量](https://blog.csdn.net/weixin_47077788/article/details/125983165)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文