Desenvolvimento de aplicações multitarefas em sistemas embarcados - Oliveira, Marcal Nunes de (2020)
Tradicionalmente, as aplicações de sistemas embarcados, são desenvolvidas utilizando uma técnica de desenvolvimento que consiste em um laço infinito, conhecido como super loop ou sistema Foreground/Background. Porém, esse modelo esgota os recursos dos microcontroladores, dificultando o desenvolvimento de aplicações mais complexas. Desta forma, torna-se atrativo a utilização de um sistema operacional de tempo real, que possibilita que as funcionalidades sejam implementadas como tarefas, que executam em threads independentes e com diferentes níveis de prioridade entre elas. Dentro deste contexto, neste trabalho foi realizado a alteração do produto embarcado produzido pela empresa Albatec Indústria Eletrônica, que consiste em um controlador para uma geladeira automotiva. Esse originalmente foi desenvolvido utilizando uma técnica Foreground/Background e foi adaptado de forma a utilizar um sistema operacional de tempo real. Para o desenvolvimento deste trabalho optou-se pela utilização do Sistema Operacional FreeRTOS, devido as limitações de hardware do microcontrolador STM32F030C6 e o fato desse apresentar uma licença de código livre. Além disso, considerou-se o suporte ao compilador Keil uVision, que é o compilador utilizado atualmente pela empresa Albatec e disponibilidade de uma documentação completa e suporte. Posteriormente, cada funcionalidade da aplicação foi implementada como uma thread independente, sendo que a sincronização entre elas foi realizada através de semáforos. A partir dos testes realizados verificou-se que a aplicação alterada apresentou um menor consumo de energia. De fato, a aplicação utilizando multitarefa apresentou um consumo de 3,9 mA enquanto a aplicação serializada possui um consumo de 6,4 mA. Porém, a aplicação alterada apresenta um alto consumo de memória, utilizando 3976 bytes dos 4 Kbytes disponíveis. [resumo fornecido pelo autor]