Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial Internet of Things >> Ingebed

Event Flag Groups in Nucleus RTOS/SE Beheersen: Utility Services & Datastructuren

Event Flag Groups in Nucleus RTOS/SE Beheersen: Utility Services & Datastructuren
Bekijk de RTOS Revealed serie

Dit artikel vervolgt de kijk op event flag groups.

Event Flag Group Utility Services

Nucleus RTOS biedt drie dedicated API-calls die interactie met event flag groups stroomlijnen: gedetailleerde groepsinformatie ophalen, het totale aantal groepen verkrijgen, en toegang tot pointers naar alle groepen binnen een applicatie. De eerste twee functies worden volledig ondersteund in Nucleus SE.

Event Flag Group Informatie

Deze service-call levert sleuteldata over een gespecificeerde event flag group. In Nucleus SE is de interface afgestut – object-naming en suspend-ordering worden weggelaten, en task-suspend-informatie wordt alleen geretourneerd wanneer de feature ingeschakeld is.

Nucleus RTOS API Call voor Event Group Informatie

Service call prototype:

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

Parameters:

group – pointer naar het door de gebruiker geleverde event flag group control block

name – 8-karakter buffer voor de groepsnaam (inclusief null-terminator)

event_flags – pointer naar een variabele die de huidige flag-waarde ontvangt

tasks_waiting – pointer naar een variabele die het aantal taken ontvangt dat gesuspendeerd is op deze groep

first_task – pointer naar een NU_TASK-variabele die een pointer naar de eerste gesuspendeerde taak ontvangt

Returns:

NU_SUCCESS – call voltooid met succes

NU_INVALID_GROUP – geleverde group-pointer is ongeldig

Nucleus SE API Call voor Event Group Informatie

Deze API biedt dezelfde kernfunctionaliteit als de RTOS-counterpart.

Service call prototype:

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

Parameters:

group – index van de event flag group

event_flags – pointer om de huidige flag-waarde te ontvangen

tasks_waiting – pointer om het aantal gesuspendeerde taken te ontvangen (0 als task-suspend uitgeschakeld)

first_task – pointer om de index van de eerste gesuspendeerde taak te ontvangen (0 als task-suspend uitgeschakeld)

Returns:

NUSE_SUCCESS – call voltooid met succes

NUSE_INVALID_GROUP – group-index is ongeldig

Nucleus SE Implementatie van Event Group Informatie

De implementatie is straightforward: de huidige flag-waarde wordt gelezen, en als blocking-API's ingeschakeld zijn, worden de wachtende-taak-count en eerste-taak-index berekend; anders worden beide op 0 gezet.

*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 

Het Aantal Event Flag Groups Verkrijgen

In Nucleus RTOS kan het aantal groepen dynamisch veranderen; de call returned de huidige count. In Nucleus SE is de count fixed op build-time.

Nucleus RTOS API Call voor Event Flag Group Count

Service call prototype:

UNSIGNED NU_Established_Event_Groups(VOID);

Returns:

Het huidige aantal aangemaakte event flag groups in de applicatie

Nucleus SE API Call voor Event Flag Group Count

Service call prototype:

U8 NUSE_Event_Group_Count(void);

Returns:

Het aantal geconfigureerde event flag groups in de applicatie

Nucleus SE Implementatie van Event Flag Group Count

De functie returned simpelweg de waarde van de compile-time constant NUSE_EVENT_GROUP_NUMBER.

Ingebed

  1. C++ Structuren vs Classes: Een praktische gids voor embedded-ontwikkelaars
  2. Mailboxes in Nucleus SE: Een Practische Gids voor Configuratie en Gebruik
  3. Semaphores in Nucleus RTOS: Utility Services & Datastructuren
  4. Semaphores in Nucleus SE: Overzicht, Configuratie en API-Essenties
  5. Event Flag Groups in Nucleus SE: Een Introductie tot Configuratie en API-Gebruik
  6. Queues in Nucleus SE: Introductie en Kern-Service-Calls
  7. Apacer lanceert wereldwijde CV110‑SD & CV110‑MSD high-performance flashkaarten
  8. OpenHW Group lanceert CORE‑V-familie van open-source-processorkernen
  9. Swissbit toont avantgardistische hardware-beveiliging voor IoT-apparaten op it-sa
  10. Cloud vs. On-Premises Servers: De Juiste Hostingoplossing Kiezen
  11. Microsoft Azure Kondigt Blockchain Tokenisatie & Datamanagement Services Aan