05_FreeRTOS信号量

信号量

信号量简介

信号量(Semaphore)是一种实现任务间通信的机制,可以实现任务之间同步或临界资源的互斥访问,常用于协助一组相互竞争的任务来访问临界资源。在多任务系统中,各任务之间需要同步或互斥实现临界资源的保护,信号量功能可以为用户提供这方面的支持。

  • 1.1 二值信号量
    二值信号量既可以用于临界资源访问也可以用于同步功能。
  • 1.2 计数信号量
    二进制信号量可以被认为是长度为 1 的队列,而计数信号量则可以被认为长度大于 1的队列,信号量使用者依然不必关心存储在队列中的消息,只需关心队列是否有消息即可,计数信号量数值表示可用资源的数目。
  • 1.3 互斥信号量
    互斥信号量其实是特殊的二值信号量,由于其特有的优先级继承机制从而使它更适用于简单互锁,也就是保护临界资源。
  • 1.4 递归信号量
    ### 三级目录
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

常用信号量API函数

创建信号量函数
创建二值信号量 xSemaphoreCreateBinary()
在这里插入图片描述
创建计数信号量 xSemaphoreCreateCounting()
在这里插入图片描述
信号量删除函数 vSemaphoreDelete()
在这里插入图片描述
在这里插入图片描述
信号量释放函数
xSemaphoreGive()

在这里插入图片描述

xSemaphoreGiveFromISR()
在这里插入图片描述
信号量获取函数
xSemaphoreTake()
在这里插入图片描述
xSemaphoreTakeFromISR()
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值