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