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

Memória de partição:serviços utilitários e estruturas de dados


Veja a série RTOS Revelado

Este artigo continua a examinar a memória da partição RTOS.

Serviços utilitários de pool de partição


O Nucleus RTOS tem três chamadas API que fornecem funções utilitárias associadas aos pools de partição:retornar informações sobre um pool de partição, retornar o número de pools de partição no aplicativo e retornar ponteiros para todos os pools de partição no aplicativo. Os dois primeiros são implementados no Nucleus SE.

Obtenção de informações do pool de partição


Esta chamada de serviço obtém uma seleção de informações sobre um pool de partição. 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.

Nucleus RTOS API Call for Partition Pool Information


Protótipo de chamada de serviço:

STATUS NU_Partition_Pool_Information (NU_PARTITION_POOL * pool, CHAR * name, VOID ** start_address, UNSIGNED * pool_size, UNSIGNED * partition_size, UNSIGNED * disponível, UNSIGNED * alocado, OPTION * suspend_type, UNSIGNED * first_waiting, NU_TASK) / forte>

Parâmetros:

piscina - ponteiro para o pool de partição sobre o qual as informações estão sendo solicitadas

nome - ponteiro para uma área de destino de 8 caracteres para o nome do pool de partição; isso inclui espaço para o terminador nulo.

start_address - um ponteiro para uma variável, que receberá um ponteiro para o início da área de dados do pool de partição

pool_size - um ponteiro para uma variável, que receberá o tamanho do pool de partição (em bytes)

partition_size - um ponteiro para uma variável, que receberá o tamanho das partições neste pool

disponível - um ponteiro para uma variável, que receberá o número de partições atualmente disponíveis neste pool

alocado - um ponteiro para uma variável, que receberá o número de partições atualmente em uso neste pool

suspend_type - ponteiro para uma variável para manter o tipo de suspensão de tarefa; os tipos de suspensão de tarefa válidos são NU_FIFO e NU_PRIORITY .

tasks_waiting - um ponteiro para uma variável que receberá o número de tarefas suspensas neste pool de partição

first_task - um ponteiro para um ponteiro de tarefa no qual é colocado o ponteiro da primeira tarefa suspensa

Retorna:

NU_SUCCESS - a chamada foi completada com sucesso

NU_INVALID_POOL - o ponteiro do pool de partição não é válido

Chamada de API do Nucleus SE para informações sobre o pool de partição


Esta chamada de API oferece suporte à funcionalidade principal da API Nucleus RTOS.

Protótipo de chamada de serviço:

STATUS NUSE_Partition_Pool_Information (NUSE_PARTITION_POOL pool, ADDR * start_address, U32 * pool_size, U16 * partition_size, U8 * available, U8 * alocado, U8 * tasks_waiting, NUSE_TASK * first_task)

Parâmetros:

piscina - o índice do pool de partição sobre o qual as informações estão sendo solicitadas

start_address - um ponteiro para uma variável, que receberá um ponteiro para o início da área de dados do pool de partição

pool_size - um ponteiro para uma variável, que receberá o tamanho do pool de partição (em bytes)

partition_size - um ponteiro para uma variável, que receberá o tamanho das partições neste pool

disponível - um ponteiro para uma variável, que receberá o número de partições atualmente disponíveis neste pool

alocado - um ponteiro para uma variável, que receberá o número de partições atualmente em uso neste pool

tasks_waiting - um ponteiro para uma variável que receberá o número de tarefas suspensas neste pool de partição (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_POOL - o índice do pool de partição não é válido

NUSE_INVALID_POINTER - um ou mais dos parâmetros do ponteiro são inválidos

Implementação do Núcleo SE de Informações do Pool de Partições


A implementação desta chamada de API é bastante direta:



A função retorna o status do pool de partição. 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 pools de partição


Esta chamada de serviço retorna o número de pools de partição configurados no aplicativo. Enquanto no Nucleus RTOS isso irá variar com o tempo e o valor retornado representará o número atual de pools, no Nucleus SE o valor retornado é definido no momento da construção e não pode ser alterado.

Nucleus RTOS API Call for Number of Partition Pools


Esta chamada de API oferece suporte à funcionalidade principal da API Nucleus RTOS.

Protótipo de chamada de serviço:

UNSIGNED NU_Established_Partition_Pools (VOID);

Parâmetros:

Nenhum

Retorna:

O número de pools de partição criados no aplicativo

Chamada de API do Nucleus SE para o número de pools de partição


Esta chamada de API oferece suporte à funcionalidade principal da API Nucleus RTOS.

Protótipo de chamada de serviço:

U8 NUSE_Partition_Pool_Count (void);

Parâmetros:

Nenhum

Retorna:

O número de pools de partição configurados no aplicativo

Implementação


A implementação desta chamada de API é quase trivialmente simples:o valor de #define símbolo NUSE_PARTITION_POOL_NUMBER é devolvido.



Integrado

  1. Os prós e contras da nuvem versus serviços internos
  2. Token Blockchain e Serviços de Gerenciamento de Dados do Microsoft Azure
  3. Termos e conceitos de memória digital
  4. Microprocessadores
  5. Estruturas e classes em C ++
  6. Caixas de correio:introdução e serviços básicos
  7. Semáforos:serviços utilitários e estruturas de dados
  8. Semáforos:introdução e serviços básicos
  9. Grupos de sinalizadores de evento:serviços de utilidade e estruturas de dados
  10. Grupos de sinalizadores de evento:introdução e serviços básicos