亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial Internet of Things >> 嵌入式

事件标志组:实用服务和数据结构


查看 RTOS Revealed 系列

本文继续介绍事件标志组。

事件标志组实用服务

Nucleus RTOS 具有三个 API 调用,它们提供与事件标志组关联的实用功能:返回有关组的信息、返回应用程序中事件标志组的数量以及返回指向应用程序中所有组的指针。前两个是在 Nucleus SE 中实现的。

事件标志组信息

此服务调用获取有关事件标志组的信息选择。 Nucleus SE 实现与 Nucleus RTOS 的不同之处在于它返回的信息较少,因为不支持对象命名和挂起顺序,并且可能无法启用任务挂起。

Nucleus RTOS API 调用事件组信息

服务调用原型:

<块引用>

STATUS NU_Event_Group_Information(NU_EVENT_GROUP *group,
CHAR *name, UNSIGNED *even
t_flags, UNSIGNED *tasks_waiting,
NU_TASK **first_task);

参数:

<块引用>

– 指向用户提供的事件标志组控制块的指针

姓名 – 指向事件标志组名称的 8 个字符的目标区域的指针;这包括空终止符的空间

事件标志 – 一个指向变量的指针,它将接收指定事件标志组的当前值

tasks_waiting – 指向一个变量的指针,该变量将接收在此事件标志组上暂停的任务数

first_task – 指向 NU_TASK 类型变量的指针 它将接收一个指向第一个挂起任务的指针

退货:

<块引用>

NU_SUCCESS – 通话成功

NU_INVALID_GROUP – 事件标志组指针无效

Nucleus SE API 调用事件组信息

此 API 调用支持 Nucleus RTOS API 的关键功能。

服务调用原型:

<块引用>

STATUS NUSE_Event_Group_Information(NUSE_EVENT_GROUP 组,
U8 *event_flags, U8 *tasks_waiting, NUSE_TASK *first_task);

参数:

<块引用>

– 请求信息的事件标志组的索引

事件标志 – 一个指向变量的指针,它将接收指定事件标志组的当前值

tasks_waiting – 一个指向变量的指针,该变量将接收在此事件标志组上挂起的任务数(如果任务挂起被禁用,则不返回任何内容)

first_task – 指向 NUSE_TASK 类型变量的指针 它将接收第一个挂起任务的索引(如果禁用了任务挂起,则不返回任何内容)

退货:

<块引用>

NUSE_SUCCESS – 通话成功

NUSE_INVALID_GROUP – 事件标志组索引无效

Nucleus SE 实现事件组信息

这个 API 调用的实现非常简单:

*event_flags =NUSE_Event_Group_Data[组]; #if NUSE_BLOCKING_ENABLE *tasks_waiting =NUSE_Event_Group_Blocking_Count[group]; if (NUSE_Event_Group_Blocking_Count[group] !=0) { U8 索引; for (index=0; index 

该函数返回事件标志组的值。然后,如果启用阻塞API调用,则返回等待任务的数量和第一个的索引(否则这两个参数设置为0)。

获取事件标志组的数量

此服务调用返回应用程序中配置的事件标志组的数量。在 Nucleus RTOS 中,这会随时间变化,返回值将代表当前组的数量,而在 Nucleus SE 中,返回值是在构建时设置的,不能更改。

Nucleus RTOS API 调用事件标志组计数

服务调用原型:

<块引用>

未签名的 NU_Established_Event_Groups(VOID);

参数:

<块引用>

退货:

<块引用>

应用中当前创建的事件标志组数量

Nucleus SE API 调用事件标志组计数

此 API 调用支持 Nucleus RTOS API 的关键功能。

服务调用原型:

<块引用>

U8 NUSE_Event_Group_Count(void);

参数:

<块引用>

退货:

<块引用>

应用中配置的事件标志组数

Nucleus SE 实现事件标志组计数

这个 API 调用的实现几乎非常简单:#define 的值 符号 NUSE_EVENT_GROUP_NUMBER 被退回。


嵌入式

  1. 云与内部服务的优缺点
  2. Microsoft Azure 的区块链令牌和数据管理服务
  3. C++ 中的结构和类
  4. 邮箱:介绍和基本服务
  5. 信号量:实用服务和数据结构
  6. 信号量:介绍和基本服务
  7. 事件标志组:介绍和基本服务
  8. 队列:介绍和基本服务
  9. 宇瞻:CV110-SD 和 CV110-MSD 卡在全球推出
  10. OpenHW Group 创建并发布了 CORE-V 系列开源内核
  11. Swissbit:用于保护数据和设备的基于硬件的安全解决方案
  12. 构建负责任和值得信赖的人工智能