Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial Internet of Things >> Eingebettet

Ereigniskennzeichengruppen:Versorgungsdienste und Datenstrukturen


RTOS Revealed-Serie anzeigen

Dieser Artikel setzt den Blick auf Ereignis-Flag-Gruppen fort.

Event Flag Group Utility Services

Nucleus RTOS hat drei API-Aufrufe, die mit Ereignis-Flag-Gruppen verbundene Dienstprogrammfunktionen bereitstellen:Informationen über eine Gruppe zurückgeben, die Anzahl der Ereignis-Flag-Gruppen in der Anwendung zurückgeben und Zeiger auf alle Gruppen in der Anwendung zurückgeben. Die ersten beiden davon sind in Nucleus SE implementiert.

Informationen zur Ereigniskennzeichnungsgruppe

Dieser Serviceaufruf ruft eine Auswahl von Informationen über eine Ereigniskennzeichengruppe ab. Die Nucleus SE-Implementierung unterscheidet sich von Nucleus RTOS dadurch, dass sie weniger Informationen zurückgibt, da Objektbenennung und Suspend-Reihenfolge nicht unterstützt werden und Task Suspend möglicherweise nicht aktiviert ist.

Nucleus RTOS API-Aufruf für Ereignisgruppeninformationen

Prototyp für Serviceruf:

STATUS NU_Event_Group_Information(NU_EVENT_GROUP *Gruppe,
CHAR *name, UNSIGNED *gerade
t_flags, UNSIGNED *tasks_waiting,
NU_TASK **first_task);

Parameter:

Gruppe – Zeiger auf den vom Benutzer bereitgestellten Ereignis-Flag-Gruppensteuerblock

Name – Zeiger auf einen 8-stelligen Zielbereich für den Namen der Ereigniskennzeichengruppe; dies beinhaltet Platz für den Null-Terminator

event_flags – ein Zeiger auf eine Variable, die den aktuellen Wert der angegebenen Event-Flag-Gruppe erhält

tasks_waiting – ein Zeiger auf eine Variable, die die Anzahl der Tasks empfängt, die für diese Ereignis-Flag-Gruppe ausgesetzt wurden

first_task – ein Zeiger auf eine Variable vom Typ NU_TASK die einen Zeiger auf die erste ausgesetzte Aufgabe erhält

Rückgabe:

NU_SUCCESS – der Anruf wurde erfolgreich abgeschlossen

NU_INVALID_GROUP – Der Gruppenzeiger des Ereignis-Flags ist nicht gültig

Nucleus SE API-Aufruf für Eventgruppeninformationen

Dieser API-Aufruf unterstützt die Schlüsselfunktionalität der Nucleus RTOS API.

Prototyp für Serviceruf:

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

Parameter:

Gruppe – der Index der Ereignis-Flag-Gruppe, über die Informationen angefordert werden

event_flags – ein Zeiger auf eine Variable, die den aktuellen Wert der angegebenen Event-Flag-Gruppe erhält

tasks_waiting – ein Zeiger auf eine Variable, die die Anzahl der an dieser Ereignis-Flag-Gruppe ausgesetzten Tasks empfängt (keine Rückgabe, wenn die Task-Aussetzung deaktiviert ist)

first_task – ein Zeiger auf eine Variable vom Typ NUSE_TASK die den Index der ersten ausgesetzten Aufgabe erhält (keine Rückgabe, wenn die Aufgabenaussetzung deaktiviert ist)

Rückgabe:

NUSE_SUCCESS – der Anruf wurde erfolgreich abgeschlossen

NUSE_INVALID_GROUP – der Gruppenindex des Ereignis-Flags ist ungültig

Nucleus SE-Implementierung von Ereignisgruppeninformationen

Die Implementierung dieses API-Aufrufs ist recht einfach:

*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 

Die Funktion gibt den Wert der Ereignisflaggruppe zurück. Wenn das Blockieren von API-Aufrufen aktiviert ist, werden dann die Anzahl der wartenden Tasks und der Index des ersten Tasks zurückgegeben (sonst werden diese beiden Parameter auf 0 gesetzt).

Ermitteln der Anzahl der Ereigniskennzeichengruppen

Dieser Serviceaufruf gibt die Anzahl der in der Anwendung konfigurierten Ereignis-Flag-Gruppen zurück. Während dies in Nucleus RTOS im Laufe der Zeit schwankt und der zurückgegebene Wert die aktuelle Anzahl von Gruppen darstellt, wird der zurückgegebene Wert in Nucleus SE zur Build-Zeit festgelegt und kann sich nicht ändern.

Nucleus RTOS API-Aufruf für Ereignis-Flag-Gruppenanzahl

Prototyp für Serviceruf:

UNSIGNED NU_Established_Event_Groups(VOID);

Parameter:

Keine

Rückgabe:

Die aktuelle Anzahl der erstellten Ereignis-Flag-Gruppen in der Anwendung

Nucleus SE API-Aufruf für Ereignis-Flag-Gruppenanzahl

Dieser API-Aufruf unterstützt die Schlüsselfunktionalität der Nucleus RTOS API.

Prototyp für Serviceruf:

U8 NUSE_Event_Group_Count(void);

Parameter:

Keine

Rückgabe:

Die Anzahl der konfigurierten Ereignis-Flag-Gruppen in der Anwendung

Nucleus SE-Implementierung der Ereignis-Flag-Gruppenzählung

Die Implementierung dieses API-Aufrufs ist fast trivial einfach:Der Wert des #define Symbol NUSE_EVENT_GROUP_NUMBER wird zurückgegeben.


Eingebettet

  1. Die Vor- und Nachteile von Cloud- und Inhouse-Diensten
  2. Microsoft Azure' Blockchain Token und Datenverwaltungsdienste
  3. Strukturen und Klassen in C++
  4. Postfächer:Einführung und grundlegende Dienste
  5. Semaphoren:Versorgungsdienste und Datenstrukturen
  6. Semaphoren:Einführung und grundlegende Dienste
  7. Ereignisflaggengruppen:Einführung und grundlegende Dienste
  8. Warteschlangen:Einführung und grundlegende Dienste
  9. Apacer:CV110-SD- und CV110-MSD-Karten weltweit eingeführt
  10. OpenHW Group erstellt und kündigt die CORE-V-Familie von Open-Source-Cores an