Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial Internet of Things >> Incrustado

Dominando grupos de banderas de evento: Servicios de utilidad y estructuras de datos en Nucleus RTOS/SE

Dominando grupos de banderas de evento: Servicios de utilidad y estructuras de datos en Nucleus RTOS/SE
Ver la serie RTOS Revealed

Este artículo continúa la mirada a los grupos de banderas de evento.

Servicios de Utilidad de Grupos de Banderas de Evento

Nucleus RTOS proporciona tres llamadas API dedicadas que agilizan la interacción con grupos de banderas de evento: recuperar información detallada del grupo, obtener el conteo total de grupos y acceder a punteros a todos los grupos dentro de una aplicación. Las dos primeras funciones están completamente soportadas en Nucleus SE.

Información de Grupo de Banderas de Evento

Esta llamada de servicio entrega datos clave sobre un grupo de banderas de evento especificado. En Nucleus SE la interfaz es recortada –el nombramiento de objetos y orden de suspensión se omiten, y la información de suspensión de tareas se retorna solo cuando la característica está habilitada.

Llamada API de Nucleus RTOS para Información de Grupo de Evento

Prototipo de llamada de servicio:

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

Parámetros:

group – puntero al bloque de control del grupo de banderas de evento suministrado por el usuario

name – buffer de 8 caracteres para el nombre del grupo (incluyendo terminador nulo)

event_flags – puntero a variable que recibirá el valor actual de banderas

tasks_waiting – puntero a variable que recibirá el número de tareas suspendidas en este grupo

first_task – puntero a variable NU_TASK que recibirá un puntero a la primera tarea suspendida

Retorna:

NU_SUCCESS – llamada completada con éxito

NU_INVALID_GROUP – puntero de grupo suministrado es inválido

Llamada API de Nucleus SE para Información de Grupo de Evento

Esta API proporciona la misma funcionalidad central que su contraparte RTOS.

Prototipo de llamada de servicio:

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

Parámetros:

group – índice del grupo de banderas de evento

event_flags – puntero para recibir el valor actual de banderas

tasks_waiting – puntero para recibir el número de tareas suspendidas (0 si la suspensión de tareas está deshabilitada)

first_task – puntero para recibir el índice de la primera tarea suspendida (0 si la suspensión de tareas está deshabilitada)

Retorna:

NUSE_SUCCESS – llamada completada con éxito

NUSE_INVALID_GROUP – índice de grupo es inválido

Implementación de Nucleus SE para Información de Grupo de Evento

La implementación es directa: se lee el valor actual de banderas y, si las APIs de bloqueo están habilitadas, se calculan el conteo de tareas en espera y el índice de la primera tarea; de lo contrario ambos se establecen a 0.

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

Obtención del Número de Grupos de Banderas de Evento

En Nucleus RTOS, el número de grupos puede cambiar dinámicamente; la llamada retorna el conteo actual. En Nucleus SE, el conteo es fijo en tiempo de compilación.

Llamada API de Nucleus RTOS para Conteo de Grupos de Banderas de Evento

Prototipo de llamada de servicio:

UNSIGNED NU_Established_Event_Groups(VOID);

Retorna:

El número actual de grupos de banderas de evento creados en la aplicación

Llamada API de Nucleus SE para Conteo de Grupos de Banderas de Evento

Prototipo de llamada de servicio:

U8 NUSE_Event_Group_Count(void);

Retorna:

El número de grupos de banderas de evento configurados en la aplicación

Implementación de Nucleus SE para Conteo de Grupos de Banderas de Evento

La función simplemente retorna el valor de la constante en tiempo de compilación NUSE_EVENT_GROUP_NUMBER.

Incrustado

  1. Estructuras vs Clases en C++: Guía práctica para desarrolladores embebidos
  2. Buzones en Nucleus SE: Guía práctica de configuración y uso
  3. Semaforos en Nucleus RTOS: Servicios de utilidad y estructuras de datos
  4. Semaforos en Nucleus SE: Visión general, configuración y API esenciales
  5. Grupos de banderas de evento en Nucleus SE: Guía introductoria de configuración y uso de API
  6. Colas en Nucleus SE: Introducción y llamadas de servicio principales
  7. Apacer lanza tarjetas flash CV110‑SD y CV110‑MSD de alto rendimiento globales
  8. OpenHW Group lanza familia CORE‑V de núcleos procesadores open‑source
  9. Swissbit muestra seguridad hardware de vanguardia para dispositivos IoT en it‑sa
  10. Cloud vs. servidores on-premise: eligiendo la solución de hosting adecuada
  11. Microsoft Azure anuncia servicios de tokenización Blockchain y gestión de datos