You are on page 1of 22

Sistemas de Tempo Real

FREERTOS

Filipe Lins
George Harinson
Gerenciamento de Memória
• RTOS kernel aloca memória ram toda vez que uma tarefa,
queue, mutex, software timer, semáforo ou grupo de
evento é criado.

• As funções da biblioteca standard C como malloc(),
free(), etc podem ser usadas, mas não são ideais.

• Sistemas de tempo real embarcados possuem diferentes
requisitos de Alocação de Memória Ram e Tempo.


Gerenciamento de Memória
• FreeRTOS inclui 4 formas de alocação de memória
• heap_1.c: maneira mais simples onde a memória é
alocada mas não pode ser liberada.
• heap_2.c: maneira com um algoritmo melhor que
permite liberar a memória e não combina grandes blocos
de memórias livres adjacentes em um único bloco.
• heap_3.c : Simples interliga a biblioteca standard C que
contem funções como malloc() e free().
Gerenciamento de Memória
• heap_4.c : Algoritmo melhor que permite
liberar a memória e combina grandes blocos
de memórias livres adjacentes em um único
bloco.


Gerenciamento de Tarefas
Tarefa
Para o FreeRTOS uma tarefa é
composta por :

• Um estado que demonstra a atual situação da
tarefa;
• Uma prioridade que varia de zero até uma
constante máxima definida pelo o usuário;
• Uma pilha na qual é armazenada o ambiente de
execução da tarefa quando está é interrompida.
Os possível estados que uma tarefa pode
assumir são :
• Blocked – tarefa esperando por um evento
temporal ou de sincronização.
• Suspended – não são escalonadas pelo kernel.
Estado de latência;
Entrar nesse modo : vTaskSuspended( );
Sair do modo : vTaskResume( );
• Ready – tarefas aguardando na fila para serem
executadas.
Tarefa Ociosa
• No FreeRTOS existe também uma tarefa
denominada de tarefa ociosa, a qual é
executada quando nenhuma tarefa está em
execução.
• A tarefa ociosa tem como principal finalidade
excluir da memória tarefas que não serão mais
usadas pelo sistema.
Escalonamento - FreeRTOS
MODOS DO ESCALONADOR
• O escalonador pode funcionar de forma preemptiva ou
colaborativa, dependendo da definição da opção
configUSE_PREEMPTION no arquivo de configuração do FreeRTOS.
• No modo preemptivo, o kernel irá interromper a tarefa em execução
periodicamente para verificar se existe alguma outra tarefa com
prioridade igual ou maior pronta para execução.
• No modo colaborativo, as tarefas não são interrompidas pelo kernel
durante sua execução (mas ainda podem ser interrompidas por uma
interrupção).
Aplicações
• Como o FreeRTOS possui um kernel básico
torna-se mais flexível para os usuários
anexarem módulos no sistema operacional
para criar novas aplicações.
• Novo Serviço de Gerenciamento de Nuvem,
File System API, TCP/IP,...
FreeRTOS + Nabto
FreeRTOS + Nabto
• FreeRTOS + Nabto é um código em C.
• Cada dispositivo da Internet das Coisas (IOT)
possui uma única URL dentro da internet, e a
tecnologia permite segurança, autenticação e
uma pequena banda de conexão P2P.
• acessível pela rede local no caso de ocorrer
problemas de conectividade na Internet.
• combinado com o FreeRTOS possui
recursos especiais de low power, dessa
forma o FreeRTOS é uma escolha natural
para implementar a IOT.
Benefícios
• Possui uma única url para cada dispositivo
• Acesso remoto através da internet no
computador , tablet ou smart phone.
• Sem complicações com o Firewall
• Baixo uso de Banda para uma performance
aceitável
• Aumento da privacidade e da segurança
• Redução do Hardware e Custo de Software
Conclusão
• É um Free Real-Time OS com kernel essencial
para low power e alta eficiencia.
• Suporta varias arquiteturas
• Ex. ARM, Altera, Xilinx, IBM, Intel, Cortus...
• Open source, implatavel, flexivel e de facil
aprendizagem
• Comunidade Ativa em freeRTOS.org

Referências
• The Architeture of Open Source Applications (Volume 2):
FreeRTOS
http://www.aosabook.org/en/freertos.html
• FreeRTOS Website
http://www.freertos.org/
• Video apresentado
https://www.youtube.com/watch?v=j86FCsEmZv4
• S. L. Galvão Stephenson - Modelagem do Sistema
Operacional de Tempo Real FreeRTOS - Natal, Rn –
Acessado em 03/06/2014.
• S. Prado, São Paulo, julho de 2012 – FreeRTOS – Embedded
Labworks.