Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial Internet of Things >> Embarqué

Maîtriser les groupes de drapeaux d'événement : Services utilitaires et structures de données dans Nucleus RTOS/SE

Maîtriser les groupes de drapeaux d événement : Services utilitaires et structures de données dans Nucleus RTOS/SE
Voir la série RTOS Revealed

Cet article continue l'examen des groupes de drapeaux d'événement.

Services utilitaires des groupes de drapeaux d'événement

Nucleus RTOS fournit trois appels API dédiés qui rationalisent l'interaction avec les groupes de drapeaux d'événement : récupérer des informations détaillées du groupe, obtenir le nombre total de groupes, et accéder aux pointeurs vers tous les groupes dans une application. Les deux premières fonctions sont pleinement supportées dans Nucleus SE.

Informations sur le groupe de drapeaux d'événement

Cet appel de service délivre des données clés sur un groupe de drapeaux d'événement spécifié. Dans Nucleus SE, l'interface est épurée — le nommage d'objets et l'ordonnancement de suspension sont omis, et l'information de suspension de tâche n'est retournée que quand la fonctionnalité est activée.

Appel API Nucleus RTOS pour informations sur groupe d'événement

Prototype d'appel de service :

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

Paramètres :

group — pointeur vers le bloc de contrôle du groupe de drapeaux d'événement fourni par l'utilisateur

name — tampon de 8 caractères pour le nom du groupe (y compris terminateur null)

event_flags — pointeur vers une variable qui recevra la valeur actuelle du drapeau

tasks_waiting — pointeur vers une variable qui recevra le nombre de tâches suspendues sur ce groupe

first_task — pointeur vers une variable NU_TASK qui recevra un pointeur vers la première tâche suspendue

Retourne :

NU_SUCCESS — appel terminé avec succès

NU_INVALID_GROUP — pointeur de groupe fourni invalide

Appel API Nucleus SE pour informations sur groupe d'événement

Cette API fournit la même fonctionnalité de base que son homologue RTOS.

Prototype d'appel de service :

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

Paramètres :

group — index du groupe de drapeaux d'événement

event_flags — pointeur pour recevoir la valeur actuelle du drapeau

tasks_waiting — pointeur pour recevoir le nombre de tâches suspendues (0 si suspension de tâche désactivée)

first_task — pointeur pour recevoir l'index de la première tâche suspendue (0 si suspension de tâche désactivée)

Retourne :

NUSE_SUCCESS — appel terminé avec succès

NUSE_INVALID_GROUP — index de groupe invalide

Implémentation Nucleus SE des informations sur groupe d'événement

L'implémentation est directe : la valeur actuelle du drapeau est lue, et si les APIs de blocage sont activées, le compte de tâches en attente et l'index de la première tâche sont calculés ; sinon les deux sont mis à 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

Obtention du nombre de groupes de drapeaux d'événement

Dans Nucleus RTOS, le nombre de groupes peut changer dynamiquement ; l'appel retourne le compte actuel. Dans Nucleus SE, le compte est fixé à la compilation.

Appel API Nucleus RTOS pour le compte de groupes de drapeaux d'événement

Prototype d'appel de service :

UNSIGNED NU_Established_Event_Groups(VOID);

Retourne :

Le nombre actuel de groupes de drapeaux d'événement créés dans l'application

Appel API Nucleus SE pour le compte de groupes de drapeaux d'événement

Prototype d'appel de service :

U8 NUSE_Event_Group_Count(void);

Retourne :

Le nombre de groupes de drapeaux d'événement configurés dans l'application

Implémentation Nucleus SE du compte de groupes de drapeaux d'événement

La fonction retourne simplement la valeur de la constante de compilation NUSE_EVENT_GROUP_NUMBER.

Embarqué

  1. Cloud vs Serveurs internes : Choisir la bonne solution d'hébergement
  2. Microsoft Azure Annonce Services de Tokenisation Blockchain & Gestion de Données
  3. Structures C++ vs Classes : guide pratique pour développeurs embarqués
  4. Boîtes aux lettres dans Nucleus SE : Guide pratique de configuration et d'utilisation
  5. Sémaphores dans Nucleus RTOS : Services utilitaires et structures de données
  6. Sémaphores dans Nucleus SE : Vue d'ensemble, configuration et API essentielles
  7. Groupes de drapeaux d'événement dans Nucleus SE : Guide d'introduction à la configuration et l'utilisation des API
  8. Files d'attente dans Nucleus SE : Introduction et appels de service de base
  9. Apacer lance cartes flash CV110‑SD et CV110‑MSD haute performance globales