Laboratório 09
A documentação desta atividade de laboratório está em processo de construção e por isso pode estar incompleta.
Utilize como base a descrição apresentada no Moodle da disciplina.
Tarefa | Template | Início | Fim | Conteúdo |
---|---|---|---|---|
LAB09 | Template 09 | 10-Nov-2025 | 17-Nov-2025 | Introdução ao FreeRTOS; |
Internal links only
Tarefa | Template | Início | Fim | Conteúdo |
---|---|---|---|---|
LAB00 | Template 00 | 18-Aug-2025 | 25-Aug-2025 | Apresentação da Disciplina; Materiais utilizados na disciplina; |
LAB01 | Template 01 | 25-Aug-2025 | 01-Sep-2025 | Revisão da programação em C; |
LAB02 | Template 02 | 01-Sep-2025 | 08-Sep-2025 | Processo de compilação, gravação e commit de código; |
LAB03 | Template 03 | 15-Sep-2025 | 22-Sep-2025 | Arquitetura de microcontroladores; Pinos de propósito geral (GPIO); |
LAB04 | Template 04 | 22-Sep-2025 | 29-Sep-2025 | Interrupções via GPIO e Temporizadores (Timers); |
LAB05 | Template 05 | 29-Sep-2025 | 06-Oct-2025 | Módulo PWM; Conversor ADC; |
LAB06 | Template 06 | 06-Oct-2025 | 13-Oct-2025 | DMA: Direct memory access (Acesso direto à memória); |
LAB07 | Template 07 | 13-Oct-2025 | 20-Oct-2025 | Uso do STM32CubeMonitor; Visualização de variáveis; |
LAB08 | Template 08 | 03-Nov-2025 | 10-Nov-2025 | Uso do STM32CubeMonitor; MQTT, IoT; |
LAB09 | Template 09 | 10-Nov-2025 | 17-Nov-2025 | Introdução ao FreeRTOS; |
External links only
Tarefa | Template | Início | Fim | Conteúdo |
---|---|---|---|---|
LAB00 | Template 00 | 18-Aug-2025 | 25-Aug-2025 | Apresentação da Disciplina; Materiais utilizados na disciplina; |
LAB01 | Template 01 | 25-Aug-2025 | 01-Sep-2025 | Revisão da programação em C; |
LAB02 | Template 02 | 01-Sep-2025 | 08-Sep-2025 | Processo de compilação, gravação e commit de código; |
LAB03 | Template 03 | 15-Sep-2025 | 22-Sep-2025 | Arquitetura de microcontroladores; Pinos de propósito geral (GPIO); |
LAB04 | Template 04 | 22-Sep-2025 | 29-Sep-2025 | Interrupções via GPIO e Temporizadores (Timers); |
LAB05 | Template 05 | 29-Sep-2025 | 06-Oct-2025 | Módulo PWM; Conversor ADC; |
LAB06 | Template 06 | 06-Oct-2025 | 13-Oct-2025 | DMA: Direct memory access (Acesso direto à memória); |
LAB07 | Template 07 | 13-Oct-2025 | 20-Oct-2025 | Uso do STM32CubeMonitor; Visualização de variáveis; |
LAB08 | Template 08 | 03-Nov-2025 | 10-Nov-2025 | Uso do STM32CubeMonitor; MQTT, IoT; |
LAB09 | Template 09 | 10-Nov-2025 | 17-Nov-2025 | Introdução ao FreeRTOS; |
Show only one lab (index 0), internal
Tarefa | Template | Início | Fim | Conteúdo |
---|---|---|---|---|
LAB00 | Template 00 | 18-Aug-2025 | 25-Aug-2025 | Apresentação da Disciplina; Materiais utilizados na disciplina; |
Tarefa | Template | Início | Fim | Conteúdo |
---|---|---|---|---|
LAB09 | Template 09 | 10-Nov-2025 | 17-Nov-2025 | Introdução ao FreeRTOS; |
Conteúdo
Introdução ao FreeRTOS;
- Crie uma conta no my.st.com;
- Instale o STM32CubeMX;
- Instale o STM32CubeCLT;
- Instale o ST-MCU-Finder;
- Instale o STM32CubeProg;
- Crie um perfil no Visual Studio Code chamado
STM32
; - Instale STM32Cube para Visual Studio Code;
- Configure o Visual Studio Code;
- Teste de geração e compilação de projeto para o STM32F411CEUx;
- Teste de uso do LoadMX
Verifique o seu ambiente de desenvolvimento
- Git SCM
- GitHub CLI
- VS Code
Git is the most widely used source-code management tool among professional developers.
- Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
winget install --id Git.Git -e --source winget
Configurações do git:
git config --list --show-origin
GitHub CLI brings GitHub to your terminal.
- GitHub CLI is a command line tool that allows you to interact with GitHub from the command line. It is available for Windows, macOS, and Linux.
winget install --id GitHub.cli -e --source winget
Status de login do GitHub CLI:
gh auth status
Visual Studio Code: IDE and Code Editor for Software Development.
- VS Code is a free source-code editor made by Microsoft for Windows, Linux and macOS. It includes support for debugging, embedded Git control, syntax highlighting, intelligent code completion, snippets, and code refactoring.
winget install --id Microsoft.VisualStudioCode -e --source winget
Extensões instaladas do Visual Studio Code para o perfil STM32:
code --list-extensions --profile "STM32"
Configure a ferramenta git
Configure o nome de usuário para todos os repositórios locais ligados às suas transações de commit:
git config --global user.name "Your Name"
Configure o email de usuário para todos os repositórios locais ligados às suas transações de commit:
git config --global user.email "you@example.com"
É recomendado verificar se a instalação do seu Git não está realizando nenhuma transformação entre LFs e CRLFs.
git config --global core.autocrlf false
Configure o git para usar o Visual Studio Code como editor padrão para tarefas como escrever mensagens de commit ou rebases interativos
git config --global core.editor "code --wait"
Liste as configurações aplicadas:
git config --list --show-origin
- STM32CubeMX
- STM32CubeCLT
- ST-MCU-FINDER
- STM32CubeProg
- STM32CubeMonitor
STM32CubeMX is an initialization code generator.
- STM32CubeMX is a graphical tool that allows a very easy configuration of STM32 microcontrollers and microprocessors, as well as the generation of the corresponding initialization C code for the Arm® Cortex®-M core or a partial Linux® Device Tree for Arm® Cortex®-A core, through a step-by-step process.
STM32CubeCLT is an all-in-one multi-OS command-line toolset, which is part of the STM32Cube ecosystem.
- STM32CubeCLT includes GNU C/C++ for Arm® toolchain executables, GDB debugger, and STM32CubeProgrammer (STM32CubeProg) utility. It provides system view descriptors for the entire STM32 MCU portfolio and associate each STM32 MCU and development board with the appropriate SVD.
STM32 and STM8 product finder for desktops.
- ST-MCU-FINDER-PC allows exploring and connecting to the complete portfolio of STM32 Arm® Cortex®-M, STM32 Arm® Cortex®-A7, and STM8 microcontrollers, microprocessors, development boards and examples directly from the developer’s desktop environment.
STM32CubeProg is an all-in-one multi-OS software tool for programming STM32 products.
- STM32CubeProg provides an easy-to-use and efficient environment for reading, writing, and verifying device memory through both the debug interface (JTAG and SWD) and the bootloader interface (UART and USB DFU, I2C, SPI, and CAN). STM32CubeProgrammer is delivered in GUI (graphical user interface) and CLI (command-line interface) versions.
STM32CubeMonitor is a Monitoring tool to test STM32 applications at run-time.
- STM32CubeMonitor family of tools helps to fine-tune and diagnose STM32 applications at run-time by reading and visualizing their variables in real-time. With non-intrusive monitoring, STM32CubeMonitor preserves the real-time behavior of applications, and perfectly complements traditional debugging tools to perform application profiling.
Crie um novo repositório com base no template do LAB09
Escolha o Grupo e entre com o comando abaixo para criar o repositório no GitHub:
- A
- B
- C
- D
- E
- F
- G
- H
- I
- J
- K
- L
- X
- Grupo S22-A: https://github.com/ELT73A-S22-2025-2-A
- LAB Template: https://github.com/ELT73A-LAB-TPL/LAB09
Use o comando abaixo para criar o repositório no GitHub com base no template do laboratório LAB09:
gh repo create ELT73A-S22-2025-2-A/LAB09 --private -p ELT73A-LAB-TPL/LAB09 -c
Acesse o diretório do repositório clonado:
cd LAB09
Abra o repositório clonado no VS Code:
code . --profile "STM32"
- Grupo S22-B: https://github.com/ELT73A-S22-2025-2-B
- LAB Template: https://github.com/ELT73A-LAB-TPL/LAB09
Use o comando abaixo para criar o repositório no GitHub com base no template do laboratório LAB09:
gh repo create ELT73A-S22-2025-2-B/LAB09 --private -p ELT73A-LAB-TPL/LAB09 -c
Acesse o diretório do repositório clonado:
cd LAB09
Abra o repositório clonado no VS Code:
code . --profile "STM32"
- Grupo S22-C: https://github.com/ELT73A-S22-2025-2-C
- LAB Template: https://github.com/ELT73A-LAB-TPL/LAB09
Use o comando abaixo para criar o repositório no GitHub com base no template do laboratório LAB09:
gh repo create ELT73A-S22-2025-2-C/LAB09 --private -p ELT73A-LAB-TPL/LAB09 -c
Acesse o diretório do repositório clonado:
cd LAB09
Abra o repositório clonado no VS Code:
code . --profile "STM32"
- Grupo S22-D: https://github.com/ELT73A-S22-2025-2-D
- LAB Template: https://github.com/ELT73A-LAB-TPL/LAB09
Use o comando abaixo para criar o repositório no GitHub com base no template do laboratório LAB09:
gh repo create ELT73A-S22-2025-2-D/LAB09 --private -p ELT73A-LAB-TPL/LAB09 -c
Acesse o diretório do repositório clonado:
cd LAB09
Abra o repositório clonado no VS Code:
code . --profile "STM32"
- Grupo S22-E: https://github.com/ELT73A-S22-2025-2-E
- LAB Template: https://github.com/ELT73A-LAB-TPL/LAB09
Use o comando abaixo para criar o repositório no GitHub com base no template do laboratório LAB09:
gh repo create ELT73A-S22-2025-2-E/LAB09 --private -p ELT73A-LAB-TPL/LAB09 -c
Acesse o diretório do repositório clonado:
cd LAB09
Abra o repositório clonado no VS Code:
code . --profile "STM32"
- Grupo S22-F: https://github.com/ELT73A-S22-2025-2-F
- LAB Template: https://github.com/ELT73A-LAB-TPL/LAB09
Use o comando abaixo para criar o repositório no GitHub com base no template do laboratório LAB09:
gh repo create ELT73A-S22-2025-2-F/LAB09 --private -p ELT73A-LAB-TPL/LAB09 -c
Acesse o diretório do repositório clonado:
cd LAB09
Abra o repositório clonado no VS Code:
code . --profile "STM32"
- Grupo S22-G: https://github.com/ELT73A-S22-2025-2-G
- LAB Template: https://github.com/ELT73A-LAB-TPL/LAB09
Use o comando abaixo para criar o repositório no GitHub com base no template do laboratório LAB09:
gh repo create ELT73A-S22-2025-2-G/LAB09 --private -p ELT73A-LAB-TPL/LAB09 -c
Acesse o diretório do repositório clonado:
cd LAB09
Abra o repositório clonado no VS Code:
code . --profile "STM32"
- Grupo S22-H: https://github.com/ELT73A-S22-2025-2-H
- LAB Template: https://github.com/ELT73A-LAB-TPL/LAB09
Use o comando abaixo para criar o repositório no GitHub com base no template do laboratório LAB09:
gh repo create ELT73A-S22-2025-2-H/LAB09 --private -p ELT73A-LAB-TPL/LAB09 -c
Acesse o diretório do repositório clonado:
cd LAB09
Abra o repositório clonado no VS Code:
code . --profile "STM32"
- Grupo S22-I: https://github.com/ELT73A-S22-2025-2-I
- LAB Template: https://github.com/ELT73A-LAB-TPL/LAB09
Use o comando abaixo para criar o repositório no GitHub com base no template do laboratório LAB09:
gh repo create ELT73A-S22-2025-2-I/LAB09 --private -p ELT73A-LAB-TPL/LAB09 -c
Acesse o diretório do repositório clonado:
cd LAB09
Abra o repositório clonado no VS Code:
code . --profile "STM32"
- Grupo S22-J: https://github.com/ELT73A-S22-2025-2-J
- LAB Template: https://github.com/ELT73A-LAB-TPL/LAB09
Use o comando abaixo para criar o repositório no GitHub com base no template do laboratório LAB09:
gh repo create ELT73A-S22-2025-2-J/LAB09 --private -p ELT73A-LAB-TPL/LAB09 -c
Acesse o diretório do repositório clonado:
cd LAB09
Abra o repositório clonado no VS Code:
code . --profile "STM32"
- Grupo S22-K: https://github.com/ELT73A-S22-2025-2-K
- LAB Template: https://github.com/ELT73A-LAB-TPL/LAB09
Use o comando abaixo para criar o repositório no GitHub com base no template do laboratório LAB09:
gh repo create ELT73A-S22-2025-2-K/LAB09 --private -p ELT73A-LAB-TPL/LAB09 -c
Acesse o diretório do repositório clonado:
cd LAB09
Abra o repositório clonado no VS Code:
code . --profile "STM32"
- Grupo S22-L: https://github.com/ELT73A-S22-2025-2-L
- LAB Template: https://github.com/ELT73A-LAB-TPL/LAB09
Use o comando abaixo para criar o repositório no GitHub com base no template do laboratório LAB09:
gh repo create ELT73A-S22-2025-2-L/LAB09 --private -p ELT73A-LAB-TPL/LAB09 -c
Acesse o diretório do repositório clonado:
cd LAB09
Abra o repositório clonado no VS Code:
code . --profile "STM32"
- Grupo S22-X: https://github.com/ELT73A-S22-2025-2-X
- LAB Template: https://github.com/ELT73A-LAB-TPL/LAB09
Use o comando abaixo para criar o repositório no GitHub com base no template do laboratório LAB09:
gh repo create ELT73A-S22-2025-2-X/LAB09 --private -p ELT73A-LAB-TPL/LAB09 -c
Acesse o diretório do repositório clonado:
cd LAB09
Abra o repositório clonado no VS Code:
code . --profile "STM32"
Instruções do LAB
Esta atividade de laboratório tem como objetivo utilizar o FreeRTOS. Cada item equivale a 10% da nota.
- Crie um repositório (LAB09) via template (https://github.com/ELT73A-LAB-TPL/LAB09) na organização e clone;
- Importe e compile o código da pasta TIM2EXTI0ADC1PWMDMARTOS
- Verifique a configuração dos periféricos;
- Verifique o breakpoint EXTI0;
- Verifique a leitura dos ADCs uso das filas (Queues);
- Verifique a operação das tarefas (Tasks);
- Verifique a operação do Mutex e Semaphores;
- Verifique a operação do Event flags;
- Verifique a operação do PWM;
- Envie o link do repositório no GitHub (hyperlink);
Avaliação
- Uso do template e código - 20%
- Verificação do FreeRTOS - 70%
- Link do repositório no GitHub (hyperlink) - 10%
Diagrama de pinos do STM32F4x1
/* USER CODE BEGIN Includes */
#include <stdbool.h>
/* USER CODE END Includes */
/* USER CODE BEGIN PV */
extern bool BLUELED;
/* USER CODE END PV */
/* USER CODE BEGIN Includes */
#include <stdbool.h>
/* USER CODE END Includes */
/* USER CODE BEGIN PV */
bool BLUELED = 0;
/* USER CODE END PV */