Site icon Embarcados – Sua fonte de informações sobre Sistemas Embarcados

Tarefas no MQX RTOS

Escalonador no MQX RTOS tarefas
Este post faz parte da série NXP MQX RTOS. Leia também os outros posts da série:

Olá caros leitores, continuando com a série de artigos sobre o MQX RTOS. No primeiro artigo foi apresentado o MQX RTOS e também criamos um projeto para FRDM-K22F.

Este artigo tem o intuito de apresentar um dos componentes mais importante de um RTOS, a tarefa (task). E serão apresentados alguns dos recursos que o MQX RTOS oferece para a sua manipulação. E, por fim, vamos trabalhar com o projeto que criamos. Utilizaremos a API para criar três tarefas, cada uma será responsável em acionar uma cor do LED RGB da Freedom Board K22F.

Task – Tarefa

Como já foi apresentado no primeiro artigo, as tarefas no MQX RTOS ou em qualquer outro RTOS se comporta como um programa independente das outras tarefas do sistema e fica a cargo do escalonador (será abordado com mais detalhe no próximo artigo) gerenciar o processamento de cada tarefa.

O MQX RTOS permite a criação de tarefas durante a sua execução. A aplicação pode alterar os atributos de uma tarefa em tempo de execução por meio de API’s fornecida pelo o MQX RTOS.

Uma tarefa quando é finalizada ou destruída todos os seus recursos (memória alocada dinamicamente, messages, mutexes, semáforos, etc) alocados serão automaticamente desalocados.

Normalmente uma tarefa é implementada com um loop infinito. A grande maioria das aplicações não retorna nada (void). A seguir temos um exemplo com esqueleto de uma tarefa.

Estados das Tarefas no MQX RTOS

As tarefas no MQX RTOS possuem quatro estados:

Figura 1 – Estados das tarefas no MQX RTOS.

Atributos de tarefas

As tarefas no MQX possuem os seguintes atributos:

Task Template List – Templates de Tarefas

No Task Tamplate List (Templates de Tarefas) é onde são informados os parâmetros de cada tarefa ao MQX RTOS. Isso é através do vetor MQX_template_list[]. A seguir temos a lista de parâmetros que devem ser preenchidos no template de tarefas:

Trabalhando com a Tarefa

Como já dissemos no início, iremos continuar com o projeto que criamos, vamos desenvolver uma aplicação que aciona o LED RGB presente na Freedom Board K22F. Serão desenvolvidas quatro tarefas. Serão três tarefas para acionar o LED, sendo uma para cada cor do LED RGB, e a última tarefa será responsável em inicializar os periféricos da placa e criar as demais tarefas.

Abra o arquivo main.h, onde criaremos ao protótipo da função de cada tarefa.

Abra o arquivo main.h. Neste arquivo iremos implementar o algoritmo da nossa aplicação.

Conclusão

Aplicação que acabamos de implementar foi possível explorar recursos de algumas API para a manipulação das tarefas no MQX RTOS. Também utilizamos recursos do KSDK para acionar o LED RGB. Nos próximos artigos iremos explorar recursos de outros componentes do MQX.

Para saber mais sobre MQX RTOS

Este artigo teve como referência os slides do treinamento do Sergio Prado sobre MQX RTOS.

Referências

MQX Software Solutions
MQX RTOS for Kinetis SDK v1.3
MQX Lite RTOS – Reference Manual

Fonte das Imagens: NXP MQX RTOS

Treinamento do Sergio Prado sobre o MQX RTOS

Outros artigos da série

<< Introdução ao NXP MQX RTOSEscalonador no MQX RTOS (Scheduling) >>