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-groepen:nutsvoorzieningen en datastructuren


Bekijk de RTOS Revealed-serie

Dit artikel gaat verder met het bekijken van gebeurtenisvlaggroepen.

Event Flag Group Utility Services

Nucleus RTOS heeft drie API-aanroepen die hulpprogramma's bieden die zijn gekoppeld aan gebeurtenisvlaggroepen:informatie over een groep retourneren, het aantal gebeurtenisvlaggroepen in de toepassing retourneren en verwijzingen naar alle groepen in de toepassing. De eerste twee hiervan zijn geïmplementeerd in Nucleus SE.

Informatie over gebeurtenisvlaggen

Deze serviceaanroep verkrijgt een selectie van informatie over een gebeurtenisvlaggroep. De Nucleus SE-implementatie verschilt van Nucleus RTOS doordat deze minder informatie retourneert, omdat objectnaamgeving en volgorde opschorten niet worden ondersteund en taakonderbreking mogelijk niet is ingeschakeld.

Nucleus RTOS API-oproep voor informatie over gebeurtenisgroepen

Serviceoproep prototype:

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

Parameters:

groep – pointer naar het door de gebruiker geleverde gebeurtenisvlaggroepbesturingsblok

naam – verwijzing naar een bestemmingsgebied van 8 tekens voor de naam van de gebeurtenisvlaggroep; dit is inclusief ruimte voor de nulterminator

event_flags – een verwijzing naar een variabele, die de huidige waarde van de gespecificeerde gebeurtenisvlaggroep zal ontvangen

tasks_waiting – een verwijzing naar een variabele die het aantal taken zal ontvangen die zijn opgeschort voor deze gebeurtenisvlaggroep

first_task – een verwijzing naar een variabele van het type NU_TASK die een verwijzing naar de eerste onderbroken taak ontvangt

Retourneren:

NU_SUCCESS – het gesprek is succesvol afgerond

NU_INVALID_GROUP – de aanwijzer van de gebeurtenisvlaggroep is niet geldig

Nucleus SE API-oproep voor informatie over gebeurtenisgroepen

Deze API-aanroep ondersteunt de belangrijkste functionaliteit van de Nucleus RTOS API.

Serviceoproep prototype:

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

Parameters:

groep – de index van de gebeurtenisvlaggroep waarover informatie wordt gevraagd

event_flags – een verwijzing naar een variabele, die de huidige waarde van de gespecificeerde gebeurtenisvlaggroep zal ontvangen

tasks_waiting – een verwijzing naar een variabele die het aantal taken zal ontvangen dat is opgeschort voor deze gebeurtenisvlaggroep (niets geretourneerd als taakonderbreking is uitgeschakeld)

first_task – een verwijzing naar een variabele van het type NUSE_TASK die de index van de eerste onderbroken taak zal ontvangen (niets geretourneerd als taakonderbreking is uitgeschakeld)

Retourneren:

NUSE_SUCCESS – het gesprek is succesvol afgerond

NUSE_INVALID_GROUP – de gebeurtenisvlaggroepsindex is niet geldig

Nucleus SE-implementatie van informatie over evenementengroepen

De implementatie van deze API-aanroep is vrij eenvoudig:

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

De functie retourneert de waarde van de gebeurtenisvlaggroep. Als het blokkeren van API-aanroepen is ingeschakeld, wordt het aantal wachtende taken en de index van de eerste geretourneerd (anders worden deze twee parameters op 0 gezet).

Het aantal gebeurtenisvlaggroepen verkrijgen

Deze serviceaanroep retourneert het aantal gebeurtenisvlaggroepen dat in de toepassing is geconfigureerd. Terwijl dit in Nucleus RTOS in de loop van de tijd zal variëren en de geretourneerde waarde het huidige aantal groepen vertegenwoordigt, wordt in Nucleus SE de geretourneerde waarde ingesteld tijdens het bouwen en kan deze niet veranderen.

Nucleus RTOS API-aanroep voor telling van gebeurtenisvlaggroepen

Serviceoproep prototype:

UNSIGNED NU_Established_Event_Groups(VOID);

Parameters:

Geen

Retourneren:

Het huidige aantal aangemaakte gebeurtenisvlaggroepen in de applicatie

Nucleus SE API-aanroep voor telling van gebeurtenisvlaggroepen

Deze API-aanroep ondersteunt de belangrijkste functionaliteit van de Nucleus RTOS API.

Serviceoproep prototype:

U8 NUSE_Event_Group_Count(void);

Parameters:

Geen

Retourneren:

Het aantal geconfigureerde gebeurtenisvlaggroepen in de applicatie

Nucleus SE-implementatie van het tellen van gebeurtenisvlaggen

De implementatie van deze API-aanroep is bijna triviaal eenvoudig:de waarde van de #define symbool NUSE_EVENT_GROUP_NUMBER wordt geretourneerd.


Ingebed

  1. De voor- en nadelen van cloud versus interne services
  2. Microsoft Azure' Blockchain Token en Data Management Services
  3. Structuren en klassen in C++
  4. Mailboxen:introductie en basisservices
  5. Semaphores:nutsvoorzieningen en datastructuren
  6. Semaphores:introductie en basisdiensten
  7. Event flag-groepen:introductie en basisservices
  8. Wachtrijen:introductie en basisservices
  9. Apacer:CV110-SD- en CV110-MSD-kaarten wereldwijd gelanceerd
  10. OpenHW Group creëerde en kondigt CORE-V-familie van open-source cores aan
  11. Swissbit:op hardware gebaseerde beveiligingsoplossingen om gegevens en apparaten te beschermen