1、互斥量
互斥量主要用于保护共享资源的访问,确保在同一时刻只有一个任务可以访问该资源。
互斥性:当一个任务获取了一个互斥量后,其他任务将无法再获取同一个互斥量,直到原始任务释放该互斥量。
优先级继承:为了防止优先级反转问题,FreeRTOS的互斥量支持优先级继承机制。当一个高优先级任务被低优先级任务阻塞时,低优先级任务会暂时提升自己的优先级,以尽快释放互斥量,让高优先级任务继续执行。
递归锁定:互斥量支持递归锁定,即获取互斥量的任务可以在未释放的情况下再次获取同一个互斥量,直到所有获取操作都被相应次数的释放操作所抵消。
操作需求:建立三个不同优先级的任务,演示一下优先级翻转,接着通过互斥量进行解决。
2、相关API函数
注意:互斥信号量不能用于中断服务函数。
xSemaphoreCreateMutex() //使用动态方法创建互斥信号量。
xSemaphoreCreateMutexStatic() //使用静态方法创建互斥信号量。
SemaphoreHandle_t xSemaphoreCreateMutex( void )
参数:
无
返回值:
成功,返回对应互斥量的句柄;
失败,返回 NULL 。</
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » STM32 HAL freertos零基础(七)互斥量
发表评论 取消回复