FreeRTOS事件标志组

151 篇文章 4 订阅 ¥299.90 ¥399.90
FreeRTOS为多任务环境提供了事件标志组,用于解决标志位访问问题。事件标志组包括创建、设置、等待和同步操作。创建时需分配内存并初始化;设置事件标志位会置位指定标志并唤醒等待任务;等待事件标志位允许设置清除条件和匹配方式;同步则涉及多个任务设置不同标志,最后统一解除阻塞。
摘要由CSDN通过智能技术生成

在裸机编程过程中,经常会用到标志位。但是在操作系统中,涉及到多个任务同时访问的问题,因此FreeRTOS提供了事件标志组机制。

 

 

先看一下事件标志组结构体

/* 事件标志组结构体 */
typedef struct EventGroupDef_t
{
	EventBits_t uxEventBits;	/* 事件标志位 */
	List_t xTasksWaitingForBits;	/* 等待事件标志位而阻塞的任务列表 */

	......
}EventGroup_t;

事件标志位可以选择16位/32位,其中高8位作为控制位,低8位/24位作为事件标志位。

#if configUSE_16_BIT_TICKS == 1
	#define eventCLEAR_EVENTS_ON_EXIT_BIT	0x0100U
	#define eventUNBLOCKED_DUE_TO_BIT_SET	0x0200U
	#define eventWAIT_FOR_ALL_BITS		0x0400U
	#define eventEVENT_BITS_CONTROL_BYTES	0xff00U
#else
	#define eventCLEAR_EVENTS_ON_EXIT_BIT	0x01000000UL    /* 在退出前清除等待位 */
	#define eventUNBLOCKED_DUE_TO_BIT_SET	0x02000000UL    /* 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值