Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

INTRODUÇÃO AO FREERTOS

No description
by

Joseane Almeida

on 24 June 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of INTRODUÇÃO AO FREERTOS

Sistemas de Tempo Real
Um Sistema Operacional é responsável por gerenciar os recursos de hardware e hospedar os aplicativos que são executados no computador.

Um
Sistema Operacional de Tempo Real
também executa essas tarefas, mas é projetado especialmente para rodar aplicações com extrema precisão e alto grau de confiabilidade, onde devem realizar uma determinada quantidade de serviços em um tempo pré-definido de resposta, ou seja, o tempo exerce função determinística.

INTRODUÇÃO AO FREERTOS
Introdução ao FreeRTOS

Esta apresentação tem como objetivo:
A descrição sintética
A caracterização e
A exemplificação do sistema operacional de tempo real FreeRTOS.

CARACTERÍSTICAS:
Projetado para ser pequeno, simples e fácil de usar.
É o RTOS mais usado para aplicações embarcadas, tem um mini-kernel de sistema operacional de tempo real desenvolvido com foco em microcontroladores.
Suporta mais de 34 arquiteturas diferentes.
Em uma configuração típica, o kernel do FreeRTOS pode ocupar de 4KB a 9KB de código (ROM/flash) e em torno de 200 bytes de dados (RAM).
MAIS CARACTERÍSTICAS
Possui suporte a filas de mensagens, semáforos (binários, contadores, recursivos) e mutexes;
Possui código aberto, possui opções de licenças comerciais e versões com suporte;
Tem o desempenho, qualidade e estabilidade de um produto comercial, sendo gratuito;
Não possui restrições em software para o número de tarefas ou o número de prioridades, onde mais de uma tarefa pode ter a mesma prioridade;

CARACTERÍSTICAS:
Tem aproximadamente 2.200 linhas de código, e com funções comuns a maioria dos sistemas operacionais.
Seu código fonte, em C com partes em assembly, que são essencialmente distribuídas em quatro arquivos: task.c, queue.c, croutine.c e list.c.

FUNCIONAMENTO
Assim o funcionamento do FreeRTOS, pode ser comparado ao de uma ferramenta, onde para prover tal abstração, o FreeRTOS possui um conjunto de bibliotecas de tipos e funções que devem ser linkeditadas com o código da aplicação a ser desenvolvida.


O que é FreeRTOS?
O
FreeRTOS
é um Software free de RTOS, que vem a ser um Sistema Operacional em Tempo Real (Real Time Operating System) que nada mais é do que uma execução multitarefa onde o tempo de resposta interno ou externo é chamado de evento.
Criado por volta do ano 2000 por Richard Barry, e hoje mantido pela empresa Real Time Engineers Ltd.
RTOS de código aberto mais utilizado no mundo.
É simples, pequeno e extremamente portável.

Pontifícia Universidade Católica do Rio Grande do Sul.
Engenharia da Computação.
Disciplina: Sistemas de Tempo Real.

Alunos:
Vilmar Gonçalves
Joseane de Almeida

FUNCIONAMENTO
Seu funcionamento possui uma camada
de abstração, localizada entre a aplicação
e o hardware, que tem o papel de esconder
dos desenvolvedores de
aplicações, os detalhes do
hardware, no qual as
aplicações serão utilizadas.
ARQUITETURA
FUNCIONAMENTO
Juntas, essas bibliotecas fornecem aos usuários serviços de gerenciamento de tarefas, comunicação e sincronização entre tarefas, controle de memória, gerenciamento do tempo e controle dos dispositivos de entrada e saída, tornando assim o desenvolvimento das aplicações de tempo real mais prático, pois o usuário necessita apenas preocupar-se com as funcionalidades do sistema deixando demais detalhes de hardware para o FreeRTOS.



Gerenciamento de Tarefas e Co-rotinas
O FreeRTOS disponibiliza quatro tipos de estados diferentes para uma tarefa, sendo eles:
Em
execução:
Indica que a tarefa está em execução;
Pronta:
Indica que a tarefa está pronta para entrar em execução, mas não está sendo executada.
Bloqueada:
Indica que a tarefa está esperando por algum evento para continuar a sua execução;
Suspensa:
Indica que a tarefa foi suspensa pelo gerenciador de tarefas através da chamada de uma funcionalidade usada para controlar as tarefas.


ESTADOS DE UMA TAREFA
ESCALONADOR DE TAREFAS
Ele é responsável por escolher qual unidade de execução irá entrar no estado de execução.

Preemptivo:
se refere ao processo em execução podendo ser interrompido a qualquer momento pelo escalonador, sendo em seguida substituído por outro processo.
Cooperativo:
se refere ao processo em execução é ele quem decide o momento de sua pausa, seguida de sua substituição.
Híbrido:
Quando o escalonador pode comportar-se tanto como preemptivo como cooperativo.



O KERNEL DO FREERTOS
COMUNICAÇÃO E SINCRONISMO ENTRE TAREFAS
No FreeRTOS os mecanismos responsáveis por
realizar a comunicação entre as tarefas são:

As filas de mensagens
Os semáforos e os
Mutexes (
Mutal Exclusion
).



FILA DE MENSAGEM
São estruturas primitivas de comunicação entre tarefas.
Elas funcionam como um túnel, através do qual tarefas enviam e recebem mensagens;
Assim, quando uma tarefa necessita comunicar-se com outra, ela envia uma mensagem para o túnel para que a outra tarefa possa ler sua mensagem, conforme a ilustração abaixo:


SEMÁFOROS
O FreeRTOS disponibiliza dois tipos de semáforos para o usuário, o semáforo binário e o semáforo com contador.

A diferença entre esses dois tipos de semáforo está no número de tarefas que podem reter o semáforo ao mesmo tempo.

No
semáforo binário
é possível apenas uma tarefa manter o semáforo.

Entretanto, no
semáforo com contador
, existe um número fixo de tarefa (maior ou igual a um) que podem reter o semáforo.



MUTEX
Mutexes são estruturas parecidas com os semáforos binários.

A única diferença entre os dois é que o mutex implementa o mecanismo de herança de prioridade, o qual impede que uma tarefa, de maior prioridade, fique bloqueada a espera de um semáforo ocupado por outra tarefa, de menor prioridade, causando assim uma situação de bloqueio por inversão de prioridade.
















Um Sistema baseado em FreeRTOS
SIMULADORES
FreeRTOS Windows Simulator é um porte do FreeRTOS para rodar no Windows, funciona no Visual Studio 2010 e no Eclipse, e esta disponível a partir do FreeRTOS V6.1.1.

Posix/Linux Simulator for FreeRTOS é um porte do FreeRTOS para rodar em máquinas com sistemas operacionis GNU/Linux, funciona no Eclipse e esta disponibilizado separadamente da versão oficial do FreeRTOS.




EXEMPLO DE APLICAÇÃO
Um exemplo de aplicação de tempo real que utilizamos para esse sistema foi desenvolvido pela empresa:



Em colaboração com a equipe do FreeRTOS, o Percepio desenvolveu FreeRTOS + Trace , o 
Tracealyzer
 permite a visualização do comportamento em tempo de execução do seu
software
embarcado através de mais de 20 visualizações de alto nível que complementam a perspectiva deste depurador

EXEMPLO DE APLICAÇÃO
Esta biblioteca, deve ser integrada ao kernel em tempo de compilação e, capturando as chamadas ao FreeRTOS, onde preenche uma região de memória com eventos (identificador, timestamp, argumentos) do sistema operacional de um modo similar à memória de um osciloscópio.

Triggers podem ser programados de modo a coletar um trace de um intervalo de tempo de da execução do sistema para diagnóstico.

O Trace é o mapeamento dos ciclos de execução dos threads para simular o multithreading, dividindo a execução em partes. Sendo assim o Trace mostra como o SOTR faz isso, facilitando a compreensão do seu funcionamento em tempo real.



EXEMPLO DE VISUALIZAÇÕES
DO TRACE
Tarefas, chamadas de sistema e
Eventos do usuário:






Carga da CPU:

PASSOS DE INSTALAÇÃO E USO
Passos para o Instalação e utilização no Windows 7:

Instalar o ambiente de desenvolvimento Visual Studio Express 2012 que tem cerca de 607MB
.
http://www.microsoft.com/en-us/download/details.aspx?id=34673


Baixar o pacote com exemplos do FreeRTOS na versão atual FreeRTOSv8.0.1:
http://sourceforge.net/projects/freertos/files/latest/download?source=files

Baixar e Instalar um programa de terminal UDP para que seja possível interagir com o exemplo. Uma opção é o YAT (Yet Another Terminal).
http://sourceforge.net/projects/y-a-terminal/files/latest/download

Baixar a Biblioteca de Trace, criada pela Empresa Percepio, que se integra ao kernel em tempo de compilação e captura as chamadas ao FreeRTOS, preenchendo uma região de memória com eventos do sistema operacional de um modo similar à memória de um osciloscópio.
Para visualizar o Trace é necessário baixar e Instalar o FreeRTOS+Trace versão 2.6.0.0.exe
http://percepio.com/tracealyzer/downloads/

EXEMPLO DE APLICAÇÃO
Abrir as pastas:
FreeRTOSv8.0.1 - FreeRTOS-Plus–Demo
FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator:
Abrir o projeto (
FreeRTOS_Plus_CLI_with_Trace.sln
) no Microsoft Visual Studio 2012 e selecionar o projeto.
O código de exemplo está implementado no
arquivo
main.c
.
Construir, em seguida, e executar o
projeto
(
F7 vai construir o projeto e F5
executará o projeto
), deixando o mesmo
executando. E prosseguir para as próximas
etapas.
EXEMPLO DE UMA APLICAÇÃO
Abrir o YAT: O exemplo usa um componente de linha de comando
(CLI- Command Line Interface)
. Para conectar o terminal usar as seguintes informações:

EXEMPLO DE UMA APLICAÇÃO
Irá abrir um console que é possível iniciar
(trace start)
e parar
(trace stop)
o armazenamento do trace. Isso gera um arquivo binário chamado
Trace.dump
no diretório raiz do projeto.

EXEMPLO DE UMA APLICAÇÃO
Para isso é necessário deixar o demo rodando com o comando
trace start
por alguns segundos.
Pode-se digitar:
task-stats
e
run-time-stats
para visualizar o status das tarefas. E após parar o trace com o comando
trace stop
.
A demonstração gera uma mensagem no
console
através da chamada ao
printf
na qual criamos dois exemplos com algumas tarefas.


EXEMPLO DE UMA APLICAÇÃO
No primeiro exemplo as duas tarefas tem o mesmo nível de prioridade e a tarefa "TX" tem maior prioridade;





Já no segundo exemplo a tarefa "TX" é menos prioritária que as demais.



EXEMPLO DE UMA APLICAÇÃO
Abrir o
FreeRTOS+Trace do Percepio:

Você deve abrir o arquivo
Trace.dump
gerado no item anterior.

Através de diferentes variantes no arquivo
main.c
podemos verificar mais detalhadamente eventos que são apresentados.

Primeiramente utilize a tecla de
Zoom Out
até o final para verificar as tarefas criadas e após selecionar alguma tarefa, e para visualizar utilize a tecla
Zoom In
.


RESULTADOS DAS EXECUÇÕES
TESTE 1:







RESULTADO DAS EXECUÇÕES
TESTE 2:
REFERÊNCIAS
Código-fonte pode ser baixado em:
http://sourceforge.net/projects/freertos/files/
FREERTOS: Site Oficial FreeRTOS:
http://www.freertos.org/

FARINES, Jean-Marie; FRAGA, Joni da Silva; OLIVEIRA, Rômulo Silva de ; Sistemas de Tempo Real; Florianópolis; Departamento de Automação e Sistemas UFSC; 2000.
PRADO, Sergio. Sistemas de Tempo Real Parte I:
http://sergioprado.org/sistemas-de-tempo-real-part-1/
http://www.freertos.org/FreeRTOSPlus/FreeRTOS_Plus_Trace/
Free_RTOS_Plus_Trace_CLI_Example.shtml
http://www.unifra.br/eventos/sepe2012/Trabalhos/6992.pdf

FIM
Full transcript