LAB - RTOS (freeRTOS)
Lab 4 |
---|
Data limite para entrega: 18/09/2023 |
Entregue o código pelo repositório do Classroom |
Procurando o link para FORMS? Leia o box a seguir |
Forms ???
Vamos testar um novo formato nesta entrega, issues foram criadas no seu repositório, você deve fechar as issues de acordo com o que realizou nesta entrega, iremos verificar os códigos com as issues que foram fechadas.
- Você só deve fechar as issues do que foi concluido.
- Se não concluiu 100% a issues, você pode fazer um comentário que ireimos analisar!
Neste laboratório iremos trabalhar com os seguintes códigos exemplos que foram fornecidos no repositório do classroom (você também pode encontrar eles no repositório SAME70-examples):
RTOS-PIO-IRQ
RTOS-AFEC-IRQ
Neste laboratório iremos trabalhar com o uso de um sistema operacional de tempo real (RTOS). O sistema operacional a ser utilizado é o FreeRtos (www.freertos.org), um sistema operacional muito utilizado pela industria, sendo o segundo sistema operacional (20%) mais utilizado em projetos embarcados, perdendo só para o Linux.
Parte 1: RTOS-PIO-IRQ
Nesta etapa iremos
- Executar uma demo de RTOS (
RTOS-PIO-IRQ
) - Entender e modificar o exemplo
- Praticar
Setup
OLED1
Grave o Firmware
Grave o firmware do exemplo "RTOS-PIO-IRQ" na placa.
Terminal
Iremos usar o código exemplo RTOS-PIO-IRQ
para aprenderemos os principais recursos do RTOS, neste exemplo criamos duas tasks: task_but
e task_led
que se comunicam via uma fila. O botão da placa é configurado para operar com interrupção de borda, liberando um semáforo para a task_but
, que processa a informação e envia um novo valor de delay para a task_led
:
Executando
Antes de seguir analise um pouco o código e tente entender o que está acontecendo, para isso consulte a página desse lab chamada de Teoria.
Praticando - semáforo
Exercise
Parte 2: RTOS-AFEC-IRQ
Outro exemplo que vamos usar como base é o RTOS-AFEC-IRQ
que faz a leitura de um valor analógico do pino do uC, você deve ler o README que possui o diagrama de ligações e uma pequena explicação do código.
Executando
Antes de seguir analise um pouco o código e tente entender o que está acontecendo, analise a task, as interrupções e também o uso da fila.
Praticando
Conceito C
Até aqui é C, você deve fechar as issues que foram abertas no seu repositório (não vamos usar mais o google forms!) referentes ao que foi feito.
Info
Lembre de verificar se os testes de qualidade de código estão passando.
Conceito B
Praticando - queue
Conceito A
Praticando - queue