Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial Internet of Things >> Integrado

Dominando Grupos de Event Flags: Serviços Utilitários e Estruturas de Dados no Nucleus RTOS/SE

Dominando Grupos de Event Flags: Serviços Utilitários e Estruturas de Dados no Nucleus RTOS/SE


Veja a série RTOS Revealed

Este artigo continua a análise dos event flag groups.

Serviços Utilitários de Event Flag Group

Nucleus RTOS fornece três chamadas de API dedicadas que simplificam interação com event flag groups: recuperar informação detalhada do grupo, obter contagem total de grupos, e acessar ponteiros para todos grupos na aplicação. As duas primeiras funções são totalmente suportadas no Nucleus SE.

Informação de Event Flag Group

Esta chamada de serviço entrega dados-chave sobre grupo de event flags especificado. No Nucleus SE a interface é reduzida — nomeação de objeto e ordenação de suspensão omitidas, e informação de task suspend retornada apenas quando feature habilitada.

Chamada de API Nucleus RTOS para Informação de Event Group

Protótipo da chamada de serviço:

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

Parâmetros:

group – ponteiro para bloco de controle do event flag group fornecido pelo usuário

name – buffer de 8 caracteres para nome do grupo (incluindo terminador null)

event_flags – ponteiro para variável que receberá valor atual das flags

tasks_waiting – ponteiro para variável que receberá número de tarefas suspensas neste grupo

first_task – ponteiro para variável NU_TASK que receberá ponteiro para primeira tarefa suspensa

Retornos:

NU_SUCCESS – chamada completada com sucesso

NU_INVALID_GROUP – ponteiro de grupo fornecido inválido

Chamada de API Nucleus SE para Informação de Event Group

Esta API fornece mesma funcionalidade central que contraparte RTOS.

Protótipo da chamada de serviço:

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

Parâmetros:

group – índice do event flag group

event_flags – ponteiro para receber valor atual das flags

tasks_waiting – ponteiro para receber número de tarefas suspensas (0 se task suspend desabilitado)

first_task – ponteiro para receber índice da primeira tarefa suspensa (0 se task suspend desabilitado)

Retornos:

NUSE_SUCCESS – chamada completada com sucesso

NUSE_INVALID_GROUP – índice de grupo inválido

Implementação Nucleus SE de Informação de Event Group

Implementação é direta: valor atual da flag é lido, e se blocking APIs habilitadas, waiting-task count e first-task index são computados; caso contrário ambos zerados.

*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

Obtendo Número de Event Flag Groups

No Nucleus RTOS, número de grupos pode mudar dinamicamente; chamada retorna contagem atual. No Nucleus SE, contagem é fixa em tempo de build.

Chamada de API Nucleus RTOS para Contagem de Event Flag Groups

Protótipo da chamada de serviço:

UNSIGNED NU_Established_Event_Groups(VOID);

Retorna: Número atual de event flag groups criados na aplicação.

Chamada de API Nucleus SE para Contagem de Event Flag Groups

Protótipo da chamada de serviço:

U8 NUSE_Event_Group_Count(void);

Retorna: Número de event flag groups configurados na aplicação.

Implementação Nucleus SE de Contagem de Event Flag Groups

Função simplesmente retorna valor da constante de compilação NUSE_EVENT_GROUP_NUMBER.

Integrado

  1. Nuvem vs. Servidores In-House: Escolhendo a Solução de Hospedagem Certa
  2. Microsoft Azure Anuncia Serviços de Tokenização Blockchain e Gerenciamento de Dados
  3. Estruturas vs Classes em C++: Guia Prático para Desenvolvedores Embarcados
  4. Mailboxes no Nucleus SE: Guia Prático de Configuração e Uso
  5. Semáforos no Nucleus RTOS: Serviços Utilitários e Estruturas de Dados
  6. Semáforos no Nucleus SE: Visão Geral, Configuração e APIs Essenciais
  7. Grupos de Event Flags no Nucleus SE: Guia Introdutório de Configuração e Uso da API
  8. Queues no Nucleus SE: Introdução e Chamadas de Serviço Centrais
  9. Apacer Lança Globalmente Cartões Flash CV110-SD e CV110-MSD de Alto Desempenho
  10. OpenHW Group Lança Família CORE-V de Processor Cores Open-Source