freertos- 信号其操作API

如图1所示,信号量目的

  • 解决共享资源的访问问题。
  • 处理实现任务-中断/任务-任务间的同步。问题(一个任务可继续执行的触发时机)

2,信号量分类

  • 二值信号量:适合任务间的同步
  • 数值信号量
  • 互斥信号量:具有优先级继承机制,适合任务间对资源的互斥访问。
  • 递归互斥信号量

3,特征

  • 因为信号量阻塞的任务,信号量获取时,高优先级任务优先接触阻塞。
  • 二值信号量是使用仅有1个队列项的队列实现的(是否是满)。
  • 分为中断级别接口和应用级别接口。

4,相关API

 

//定义信号量的句柄类型(等同于队列句柄类型)
//队列句柄类型(typedef void * QueueHandle_t;)
typedef QueueHandle_t SemaphoreHandle_t;

#define semBINARY_SEMAPHORE_QUEUE_LENGTH	( ( uint8_t ) 1U )
#define semSEMAPHORE_QUEUE_ITEM_LENGTH		( ( uint8_t ) 0U )
#define semGIVE_BLOCK_TIME			( ( TickType_t ) 0U )


/*
这个旧的vSemaphoreCreateBinary()宏现在被弃用,代之以xSemaphoreCreateBinary()函数。注意,
使用vSemaphoreCreateBinary()宏创建的二进制信号量是在这样一种状态下创建的,即对“take”
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值