Desenvolvimento de aplicações multitarefas em sistemas embarcados
Visualizar/ Abrir
Data
2020-12-24Autor
Oliveira, Marcal Nunes de
Orientador
Martinotto, André Luis
Metadata
Mostrar registro completoResumo
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]