Grupos de sinalizadores de evento:serviços de utilidade e estruturas de dados
Veja a série RTOS Revelado
Este artigo continua a examinar os grupos de sinalizadores de evento.
Serviços de utilitário do grupo de sinalizadores de evento
O Nucleus RTOS tem três chamadas API que fornecem funções utilitárias associadas a grupos de sinalizadores de evento:retornar informações sobre um grupo, retornar o número de grupos de sinalizadores de evento no aplicativo e retornar ponteiros para todos os grupos no aplicativo. Os dois primeiros são implementados no Nucleus SE.
Informações do Grupo de Sinalizadores de Evento
Esta chamada de serviço obtém uma seleção de informações sobre um grupo de sinalizadores de evento. A implementação do Nucleus SE difere do Nucleus RTOS porque retorna menos informações, pois a nomenclatura de objetos e a ordem de suspensão não são suportadas e a suspensão de tarefas pode não estar ativada.
Chamada de Nucleus RTOS API para informações do grupo de eventos
Protótipo de chamada de serviço:
STATUS NU_Event_Group_Information (NU_EVENT_GROUP * group,
CHAR * name, UNSIGNED * even t_flags, UNSIGNED * tasks_waiting,
NU_TASK ** first_task);
Parâmetros:
grupo - ponteiro para o bloco de controle do grupo de sinalizadores de evento fornecido pelo usuário
nome - apontador para uma área de destino de 8 caracteres para o nome do grupo de sinalizador de evento; isso inclui espaço para o terminador nulo
event_flags - um ponteiro para uma variável, que receberá o valor atual do grupo de sinalizadores de evento especificado
tasks_waiting - um ponteiro para uma variável que receberá o número de tarefas suspensas neste grupo de sinalizadores de evento
first_task - um ponteiro para uma variável do tipo NU_TASK que receberá um ponteiro para a primeira tarefa suspensa
Retorna:
NU_SUCCESS - a chamada foi completada com sucesso
NU_INVALID_GROUP - o ponteiro do grupo de sinalizadores de evento não é válido
Chamada de API do Nucleus SE para informações do grupo de eventos
Esta chamada de API oferece suporte à funcionalidade principal da API Nucleus RTOS.
Protótipo de chamada de serviço:
STATUS NUSE_Event_Group_Information (grupo NUSE_EVENT_GROUP,
U8 * event_flags, U8 * tasks_waiting, NUSE_TASK * first_task);
Parâmetros:
grupo - o índice do grupo de sinalizadores de evento sobre o qual as informações estão sendo solicitadas
event_flags - um ponteiro para uma variável, que receberá o valor atual do grupo de sinalizadores de evento especificado
tasks_waiting - um ponteiro para uma variável que receberá o número de tarefas suspensas neste grupo de sinalizadores de evento (nada retornado se a suspensão da tarefa for desativada)
first_task - um ponteiro para uma variável do tipo NUSE_TASK que receberá o índice da primeira tarefa suspensa (nada retornado se a suspensão da tarefa for desativada)
Retorna:
NUSE_SUCCESS - a chamada foi completada com sucesso
NUSE_INVALID_GROUP - o índice do grupo de sinalizadores de evento não é válido
Implementação do Núcleo SE de Informações do Grupo de Eventos
A implementação desta chamada de API é bastante direta:
* event_flags =NUSE_Event_Group_Data [grupo]; #if NUSE_BLOCKING_ENABLE * tasks_waiting =NUSE_Event_Group_Blocking_Count [group]; if (NUSE_Event_Group_Blocking_Count [grupo]! =0) {índice U8; para (índice =0; índice
A função retorna o valor do grupo de sinalizadores de evento. Então, se o bloqueio de chamadas de API estiver habilitado, o número de tarefas em espera e o índice da primeira são retornados (caso contrário, esses dois parâmetros são definidos como 0).
Obtenção do número de grupos de sinalizadores de evento
Esta chamada de serviço retorna o número de grupos de sinalizadores de evento configurados no aplicativo. Enquanto no Nucleus RTOS isso irá variar com o tempo e o valor retornado representará o número atual de grupos, no Nucleus SE o valor retornado é definido no momento da construção e não pode ser alterado.
Chamada de Nucleus RTOS API para contagem de grupo de sinalizadores de evento
Protótipo de chamada de serviço:
NÃO ASSINADO NU_Established_Event_Groups (VOID);
Parâmetros:
Nenhum
Retorna:
O número atual de grupos de sinalizadores de evento criados no aplicativo
Chamada de API Nucleus SE para contagem de grupo de sinalizadores de evento
Esta chamada de API oferece suporte à funcionalidade principal da API Nucleus RTOS.
Protótipo de chamada de serviço:
U8 NUSE_Event_Group_Count (vazio);
Parâmetros:
Nenhum
Retorna:
O número de grupos de sinalizadores de evento configurados no aplicativo
Implementação do Nucleus SE da contagem do grupo de sinalizadores de evento
A implementação desta chamada de API é quase trivialmente simples:o valor de #define símbolo NUSE_EVENT_GROUP_NUMBER é devolvido.
Semáforos:introdução e serviços básicos Grupos de sinalizadores de evento:introdução e serviços básicos
Integrado
- Os prós e contras da nuvem versus serviços internos
- Token Blockchain e Serviços de Gerenciamento de Dados do Microsoft Azure
- Estruturas e classes em C ++
- Caixas de correio:introdução e serviços básicos
- Semáforos:serviços utilitários e estruturas de dados
- Semáforos:introdução e serviços básicos
- Grupos de sinalizadores de evento:introdução e serviços básicos
- Filas:introdução e serviços básicos
- Apacer:Cartões CV110-SD e CV110-MSD lançados em todo o mundo
- Grupo OpenHW criado e anuncia família CORE-V de núcleos de código aberto