下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

内核
最新资讯
简化任何设备的身份验证云连接。
利用 CoAP 设计节能型云连接 IoT 解决方案。
11.0.0 版 FreeRTOS 内核简介:
FreeRTOS 路线图和代码贡献流程。
使用 FreeRTOS 实现 OPC-UA over TSN。

xEventGroupCreate()
[事件组API ]


event_groups.h

 EventGroupHandle_t xEventGroupCreate( void );

创建一个新的 RTOS 事件组,并返回 可以引用新创建的事件组的句柄。

要使此 RTOS API 函数可用:

  1. configSUPPORT_DYNAMIC_ALLOCATION 必须在 FreeRTOSConfig.h 中设置为 1,或保留未定义状态(此时 默认为 1)。
  2. RTOS 源文件 FreeRTOS/source/event_groups.c 必须 包含在构建中。

每个事件组都需要非常少量 RAM 来保存 事件组的状态。 如果使用 xEventGroupCreate() 创建事件组, 则会从 FreeRTOS 堆中自动分配所需的 RAM。 如果使用 xEventGroupCreateStatic() 创建事件组 则 RAM 由应用程序编写者提供,这需要用到一个附加参数, 但允许在编译时静态分配 RAM 。 请参阅静态分配与 动态分配页面了解更多信息。

事件组存储在 EventBits_t 类型的变量中。事件组中执行的位数(或标志)取决于 是使用 configUSE_16_BIT_TICKS 还是 configTICK_TYPE_WIDTH_IN_BITS 来控制 TickType_t 的类型:

  • 如果 configUSE_16_BIT_TICKS 设置为 1,则事件组内执行的位数(或标志)为 8; 如果 configUSE_16_BIT_TICKS 设置为 0,则事件组内执行的位数(或标志)为 24。

  • 如果 configTICK_TYPE_WIDTH_IN_BITS 设置为 TICK_TYPE_WIDTH_16_BITS,则事件组内执行的位数(或标志)为 8; 如果 configTICK_TYPE_WIDTH_IN_BITS 设置为 TICK_TYPE_WIDTH_32_BITS,则事件组内执行的位数为 24;如果 configTICK_TYPE_WIDTH_IN_BITS 设置为 TICK_TYPE_WIDTH_64_BITS,则事件组内执行的位数为 56。

对 configUSE_16_BIT_TICKS 或 configTICK_TYPE_WIDTH_IN_BITS 的依赖源于 RTOS 任务内部实现中用于线程本地存储的数据类型。

参数:
 
返回:
如果创建了事件组, 则返回事件组的句柄。 如果没有足够的 FreeRTOS 堆可用于创建事件组, 则返回 NULL。
用法示例:
    /* Declare a variable to hold the created event group. */
    EventGroupHandle_t xCreatedEventGroup;

    /* Attempt to create the event group. */
    xCreatedEventGroup = xEventGroupCreate();

    /* Was the event group created successfully? */
    if( xCreatedEventGroup == NULL )
    {
        /* The event group was not created because there was insufficient
        FreeRTOS heap available. */
    }
    else
    {
        /* The event group was created. */
    }





Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.