Estudantes de engenharias, estudantes de cursos técnicos, desenvolvedores de sistemas embarcados, profissionais na área de IoT e todos interessados em aprender sobre os microcontroladores da ST.
Capacitar o aluno no uso do microcontrolador STM32H743ZI da ST para desenvolvimento de projetos.
O módulo sobre RTOS (Real-Time Operating System) da Academia STM32H7 fornece uma base sólida para entender e implementar sistemas operacionais em tempo real, fundamentais para aplicações críticas em sistemas embarcados. Ele abrange os principais conceitos e práticas com foco em dois RTOS amplamente utilizados: FreeRTOS e AzureRTOS. A seguir, uma descrição mais detalhada dos tópicos abordados:
O módulo começa explicando o que é um RTOS, por que ele é necessário e como ele difere de um sistema operacional convencional. São abordados conceitos essenciais como RTOS preemptivo, escalonamento (scheduler), gerenciamento de interrupções, e o papel crucial de tarefas, semáforos, flags, mutexes e filas na comunicação e sincronização entre as tarefas. Também são apresentados os perigos de deadlock e starvation, que podem comprometer a operação de um sistema em tempo real.
Teoria: A parte teórica do FreeRTOS explora a documentação, licenciamento e estrutura do sistema. São detalhados os passos para configurar o FreeRTOS no STM32CubeMX, ajustando parâmetros críticos como memória e prioridades de tarefas. O funcionamento do boot no STM32H7 com FreeRTOS também é examinado, junto com a comunicação entre tarefas usando técnicas como inter-task communication.
Prática: A prática envolve o desenvolvimento de aplicações reais, como o clássico exemplo do pisca LED, onde o aluno aprende a criar e gerenciar tarefas no FreeRTOS. A complexidade aumenta com exercícios e exemplos prontos, que ajudam a solidificar o entendimento sobre como aplicar o FreeRTOS em projetos embarcados. Há uma abordagem prática para depuração e otimização de código dentro do ambiente CubeIDE.
Teoria: O AzureRTOS é apresentado com uma visão abrangente dos seus componentes e da integração com o ecossistema IoT da Microsoft. São discutidos os diferenciais do AzureRTOS, a parceria entre Microsoft e STMicroelectronics, e como criar projetos que atendam aos padrões de qualidade da Microsoft. O módulo explora a instalação e configuração do AzureRTOS no STM32CubeMX, destacando as principais características que o tornam uma opção robusta para projetos de IoT e sistemas embarcados.
Prática: A prática com AzureRTOS envolve a instalação do ambiente, criação de projetos desde o zero e implementação de threads personalizadas. O aluno aprende a rodar a primeira aplicação na placa NUCLEO-H743ZI, além de realizar exercícios práticos que reforçam o aprendizado. O módulo também apresenta exemplos prontos do AzureRTOS no CubeMX, mostrando como integrá-los em projetos reais.
Ao longo do módulo, há uma comparação crítica entre os RTOS discutidos (FreeRTOS, AzureRTOS e Zephyr), ajudando o aluno a entender as vantagens e desvantagens de cada um, dependendo do contexto do projeto. São abordados ainda os desafios comuns no desenvolvimento com RTOS, como deadlock e starvation, além de técnicas para mitigá-los.
Este módulo fornece uma visão abrangente e detalhada do uso de RTOS em sistemas embarcados, capacitando o aluno a desenvolver soluções eficientes e robustas com FreeRTOS e AzureRTOS no microcontrolador STM32H7. Desde os fundamentos teóricos até a prática intensiva, o aluno estará preparado para aplicar esses conhecimentos em projetos reais, enfrentando com confiança os desafios típicos do desenvolvimento em tempo real.
Alessandro Cunha é engenheiro eletricista. E um apaixonado pelo que faz.