XFusion API v1.3.0
载入中...
搜索中...
未找到
event

事件标志可以同步线程。 更多...

event 的协作图:

结构体

struct  _xf_osal_event_attr_t
 事件标志的属性结构。 更多...
 

宏定义

#define MAX_BITS_EVENT_GROUPS   24U
 FreeRTOS 对接中,事件组里用户可用的位数(bit0 ~ bit23)。
 
#define XF_OSAL_EVENT_FLAGS_INVALID_BITS   (~((1UL << MAX_BITS_EVENT_GROUPS) - 1U))
 FreeRTOS 对接里,无效(保留)事件位掩码(bit24 ~ bit31)。
 

类型定义

typedef void * xf_osal_event_t
 事件句柄。
 
typedef struct _xf_osal_event_attr_t xf_osal_event_attr_t
 事件标志的属性结构。
 

函数

xf_osal_event_t xf_osal_event_create (const xf_osal_event_attr_t *attr)
 创建并初始化事件标志对象。
 
xf_err_t xf_osal_event_set (xf_osal_event_t event, uint32_t flags)
 设置指定的事件标志。
 
xf_err_t xf_osal_event_clear (xf_osal_event_t event, uint32_t flags)
 清除指定的事件标志。
 
uint32_t xf_osal_event_get (xf_osal_event_t event)
 获取当前事件标志。
 
xf_err_t xf_osal_event_wait (xf_osal_event_t event, uint32_t flags, uint32_t options, uint32_t timeout)
 等待一个或多个事件标志发出信号。
 
xf_err_t xf_osal_event_delete (xf_osal_event_t event)
 删除事件标志对象。
 

详细描述

事件标志可以同步线程。

宏定义说明

◆ MAX_BITS_EVENT_GROUPS

#define MAX_BITS_EVENT_GROUPS   24U

FreeRTOS 对接中,事件组里用户可用的位数(bit0 ~ bit23)。

在文件 xf_osal_event.h55 行定义.

◆ XF_OSAL_EVENT_FLAGS_INVALID_BITS

#define XF_OSAL_EVENT_FLAGS_INVALID_BITS   (~((1UL << MAX_BITS_EVENT_GROUPS) - 1U))

FreeRTOS 对接里,无效(保留)事件位掩码(bit24 ~ bit31)。

在文件 xf_osal_event.h60 行定义.

类型定义说明

◆ xf_osal_event_t

typedef void* xf_osal_event_t

事件句柄。

在文件 xf_osal_event.h67 行定义.

◆ xf_osal_event_attr_t

事件标志的属性结构。

函数说明

◆ xf_osal_event_create()

xf_osal_event_t xf_osal_event_create ( const xf_osal_event_attr_t attr)

创建并初始化事件标志对象。

注解
禁止 在中断服务函数中调用。
参数
attr事件标志属性。填入 NULL 时使用默认属性,即使用内核内存分配事件控制块。
返回
xf_osal_event_t
  • NULL 创建失败
  • (OTHER) 事件句柄
示例
examples/osal/event/main/xf_main.c.

◆ xf_osal_event_set()

xf_err_t xf_osal_event_set ( xf_osal_event_t  event,
uint32_t  flags 
)

设置指定的事件标志。

注解
可以 在中断服务函数中调用。
参数
event事件句柄。从 xf_osal_event_create() 获取。
flags需要设置的标志。
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 通用错误
  • XF_ERR_INVALID_ARG 无效参数,句柄无效或 flags 设置了最高位
示例
examples/osal/event/main/xf_main.c.

◆ xf_osal_event_clear()

xf_err_t xf_osal_event_clear ( xf_osal_event_t  event,
uint32_t  flags 
)

清除指定的事件标志。

注解
可以 在中断服务函数中调用。
参数
event事件句柄。从 xf_osal_event_create() 获取。
flags需要清除的标志。
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 通用错误
  • XF_ERR_RESOURCE 事件句柄处于无效状态
  • XF_ERR_INVALID_ARG 无效参数,句柄无效或 flags 设置了最高位
示例
examples/osal/event/main/xf_main.c.

◆ xf_osal_event_get()

uint32_t xf_osal_event_get ( xf_osal_event_t  event)

获取当前事件标志。

注解
可以 在中断服务函数中调用。
参数
event事件句柄。从 xf_osal_event_create() 获取。
返回
uint32_t 当前事件标志
示例
examples/osal/event/main/xf_main.c.

◆ xf_osal_event_wait()

xf_err_t xf_osal_event_wait ( xf_osal_event_t  event,
uint32_t  flags,
uint32_t  options,
uint32_t  timeout 
)

等待一个或多个事件标志发出信号。

注解
timeout 为 NULL 时, 可以 在中断服务函数中调用。
参数
event事件句柄。从 xf_osal_event_create() 获取。
flags需要等待的标志。
options指定标志选项。
timeout超时值,单位 ticks. 可以为 0 或 XF_OSAL_WAIT_FOREVER.
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 通用错误
  • XF_ERR_TIMEOUT 超时
  • XF_ERR_RESOURCE 在未指定超时的情况下,未设置等待标记
  • XF_ERR_INVALID_ARG 无效参数,句柄无效或 flags 设置了最高位
示例
examples/osal/event/main/xf_main.c.

◆ xf_osal_event_delete()

xf_err_t xf_osal_event_delete ( xf_osal_event_t  event)

删除事件标志对象。

注解
禁止 在中断服务函数中调用。
参数
event事件句柄。从 xf_osal_event_create() 获取。
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 通用错误
  • XF_ERR_ISR 禁止在中断服务函数中调用
  • XF_ERR_RESOURCE 事件句柄处于无效状态
  • XF_ERR_INVALID_ARG 无效参数,句柄无效或 flags 设置了最高位
示例
examples/osal/event/main/xf_main.c.