参考 开发手册
二值信号量
简介
二值信号量通常用于互斥访问或同步,二至信号量没有优先级继承,更适合用于同步(任务与任务或任务与中断的同步)。
二值信号量其实就是一个只有一个队列项的队列,这个特殊的队列要么是满的,要么是空的,任务和中断不在乎队列中存的是什么消息,只需要知道这个队列是满的还是空的。可以利用这个机制来完成任务与中断之间的同步。
创建二值信号量
函数 | 描述 |
---|---|
vSemaphoreCreateBinary | 动态创建二值信号量,老版本中使用的API函数。 |
xSemaphoreCreateBinary | 动态创建二值信号量,新版本。 |
vSemaphoreCreateBinaryStatic | 静态创建二值信号量。 |
新版本的创建函数没有参数
参数:
xSemaphore :保存创建成功的二值信号量句柄。
pxSemaphoerBuffer : 此参数指向一个StaticSemaphore_t类型的变量,用来保存信号量结构体。
返回值:
NULL : 二值信号量创建失败。
其他值 : 创建成功的二值信号量句柄。
旧版本:::当二值信号量创建成功以后调用函数xSemaphoreGive()