FreeRTOS互斥

互斥信号量在FreeRTOS中用于控制任务间共享资源的访问,它需要在配置文件中开启。与二值信号量不同,互斥信号量在使用后必须返还。创建互斥信号量使用xSemaphoreCreateMutex(),获取使用xSemaphoreTake(),释放使用xSemaphoreGive()。中断中使用特殊API。
摘要由CSDN通过智能技术生成

互斥信号量是一个特殊的二值信号量类型,用来控制访问多个任务之间共享的资源。允许使用互斥需要在FreeRTOSConfig.h中配置configUSE_MUTEXES为1。

在一个互斥访问的场景,互斥信号量可以被认为是一个令牌,只有拥有这个令牌的任务才能访问某一资源。因此任务在访问这一资源时,要先取得令牌,才被允许访问资源。而在访问资源完毕后,要将令牌放回到原来的位置,供其他任务或自己获取。

这时候我们可能会有疑惑,这个功能不是与之前介绍的二值信号量相类似吗,这里我要提两点不同..

  • 互斥信号量在使用完毕后,必须要返还
  • 而用于同步的二值信号量在使用完毕后不用再放回,只需等待下次事件触发

 

 

+++++++++++++++++++++++++++++++

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ArvinXD

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值