• Nenhum resultado encontrado

Seminário Linux Embarcado Migração de Linux de Tempo real para um processador embarcado

N/A
N/A
Protected

Academic year: 2021

Share "Seminário Linux Embarcado Migração de Linux de Tempo real para um processador embarcado"

Copied!
30
0
0

Texto

(1)

Seminário Linux Embarcado

2011

Migração de Linux de Tempo real para um

processador embarcado

(2)

Agenda

Introdução

Sobre o apresentador Sobre a empresa

Introdução ao Linux embarcado

Xenomai

Xenomai – Real-Time Linux Arquitetura do Xenomai

Casos de uso do Xenomai

Aplicações realizadas com o Xenomai

Migração

Processador L-138

Suporte do Xenomai ao L-138 Resultados obtidos

(3)
(4)

Sobre o apresentador

Flavio de Castro Alves Filho

Formação

Engenharia Elétrica – UNICAMP

Especialização – Ecole Centrale de Lyon (França)

– Eletrônica e Sistemas de Comunicação

9 anos de experiência em projetos de sistemas embarcados

Automação comercial Pagamento Eletrônico Defesa / Aeroespacial Telecomunicações

Fundador da Phi Innovations

Linux – desde 1994

Slackware 1994. Não havia internet, comprei CD pelo correio

(5)

Sobre a Phi Innovations

Possivelmente a primeira empresa brasileira especializada em Linux

embarcado

Distribuição comercial de Linux embarcado

Phi Linux

SDK completo para desenvolvimento de software para seu sistema embarcado

Suporte

Suporte técnico Treinamento Desenvolvimento de drivers

Consultoria

Ferramentas

Ambiente de desenvolvimento (em breve)

(6)

Introdução ao Linux embarcado

Sistema operacional Linux funcionando no equipamento eletrônico

Do ponto de vista operacional, exatamente igual ao Linux de um

desktop

Obviamente, para quem usa o Linux desktop em console, fica “quase a

mesma coisa”

Mais limitado, se comparado ao Linux desktop

Restrições de memória e armazenamento

Componentes de software limitados à necessidade do equipamento

Um pouco mais desconfortável do que o Linux desktop

Geralmente sistemas embarcados não possuem monitor e mouse

(7)
(8)

Sobre o Xenomai

Projeto Xenomai (

www.xenomai.org

)

Projeto de código aberto (open source)

Missão

Fornecer um framework de desenvolvimento de software em tempo-real

em ambiente GNU/Linux

Permitir o desenvolvimento de aplicações de tempo real em user-space

Ser independente de interface

– Permitir que software escrito para outros RTOS funcionem em Xenomai (Linux)

Projeto com uma comunidade bem ativa de usuários e

desenvolvedores

Surgiu a partir de outro projeto de código aberto – RTAI (

www.rtai.org

)

(9)

O que é um RTOS

Sistema Operacional de Tempo Real (Real Time

Operating System – RTOS)

Objetivo

Atender a requisições em tempo real

O elemento importante em aplicações que necessitam

de sistema de tempo real é o

TEMPO

Tempo do que?

Mudança de contexto – em caso de sistemas multitarefas

Tempo de resposta a uma interrupção

(10)

Mas o Linux não é um sistema de tempo real?

Resposta: SIM!

Então … por que ele não é considerado um sistema de tempo real?

Resposta:

– Ele é um sistema de tempo real por ter o recurso de multitarefa preemptiva. As diversas

tarefas (processos) do sistema operacional são chaveados no tempo, para dar a sensação de paralelismo

– Porém … os critérios de tempo usados pelo Linux convencional não são rigorosos – É um sistema SOFT REAL TIME

Na verdade,

Quando se fala em sistema de tempo real, significa HARD REAL TIME Em sistemas HARD REAL TIME, o tempo é o critério mais importante

(11)

Conclusão

O Xenomai pretende tornar o Linux um sistema

operacional HARD REAL TIME, de forma que

aplicações onde o principal elemento é o tempo

possam ser executadas sem problemas em um

ambiente conhecido e consagrado.

(12)

Arquitetura do Xenomai

Composto por duas partes User-Space

Kernel-Space Kernel Space

ADEOS patch

É onde o micro-kernel é implementado Implementa todas as funcionalidades de baixo nível necessárias para uma

aplicação de tempo real User Space

Biblioteca Xenomai

Disponibiliza uma API para utilizar os recursos implementados em kernel space Obrigatória para desenvolvimento de software em tempo real

Hardware

Kernel Space

ADEOS - Xenomai Linux Kernel Convencional

User Space (Root Filesystem)

Biblioteca padrão C

Bibliotecas Xenomai Aplicação

(13)

Recursos do Xenomai

Desenvolvimento de aplicações em tempo real em user-space

Programação é feita como se fosse um aplicativo Linux convencional

Interface específica para acesso a dispositivos

RTDM – Real Time Driver Model

Permite desenvolver drivers específicos para aplicações de tempo real Redução de latências durante acesso a dispositivos

Skins

Interface com o objetivo de permitir a software escrito para outros sistemas operacionais de tempo real ser usado em Linux com Xenomai

VxWorks, RTAI

(14)

Como “instalar” o Xenomai

Aplicação de patches no

kernel

Patches que implementam

o núcleo de tempo real sob

o Linux

Específicos para

processador e/ou placa

– Principalmente processador

Kernel específico deve ser

compilado para a aplicação

Geralmente “inspirado” no

kernel do BSP fornecido

pelo fabricante

Compilação da biblioteca

Xenomai

Compilação cruzada

Ela será executada no

sistema embarcado

Instalação

A biblioteca deve ser

instalada no sistema de

arquivos final do projeto

Adaptação do build-system

O ideal é criar um pacote

para o build system realizar

esta atividade

(15)
(16)

Xenomai – x86 – PC/104

Plataforma: x86

Placa Advantech PC/104

Desafio: utilização do barramento PC/104 em aplicação específica

Linux convencional não recebia a interrupção oriunda do barramento PC/104 da placa

Mesmo IRQ usado pela porta da impressora

Linux não conseguia receber interrupção vinda da ponte ISA/PCI

Solução: Xenomai

Interrupção gerenciada pelo Xenomai – implementação de um driver específico Biblioteca de interface foi implementada

(17)

Xenomai – PowerPC - SPI

Plataforma: PowerPC

MPC8313ERDB

Desafio: implementar solução SPI que atenda requisitos de

desempenho da aplicação

Comunicação com FPGA

Expectativa de funcionamento SPI na taxa nominal

Problemas com o DMA do processador

Solução: Xenomai

Uso da interface SPI foi descartado. Uso de GPIO

Implementado driver Xenomai em SPI com barramento de 4 bits

Xenomai permitiu a implementação do driver com baixa latência de

tempo, atendendo aos requisitos de aplicação

(18)
(19)

Processador L-138

Processador Dual Core da Texas Instruments

Apesar de dual core, não é SMP (simétrico)

Um core ARM9

Um core DSP

Processador interessante para aplicações onde processamento

e visualização devem operar juntos

Capacidade de processamento interessante

Suficiente para operações simples de cálculo e visualização

Para maiores capacidades de processamento

OMAP3530 (BeagleBoard)

Não interessado em DSP

(20)
(21)

Suporte Xenomai ao L-138

Xenomai suporta ARM

Diversas arquiteturas (praticamente todas as ARM)

Diversos processadores (quase todos)

No caso do L-138 …

Ele possuia algumas particularidades, que não o permitiram

funcionar automaticamente

Olhando no detalhe (no código do kernel do Linux), as chamadas

de ARM9 do Xenomai não ocorriam para o caso deste

processador

Duas soluções

Aguardar o suporte pronto

(22)

Comunidade Xenomai

Muito ativa

Os mantenedores ficam “online” o tempo todo

Comunicação através de mailing-list

Xenomai-help – voltada para auxiliar na instalação e utilização do

Xenomai em equipamentos e aplicações, respectivamente

Xenomai-core – voltada para assuntos relacionados às questões internas

do xenomai, avanços de implementação, entre outros

É importante participar das listas

Para quem quer se envolver mais com o projeto

Descobrir as tendências

Conseguir ajuda não-especializada

Eles não possuem IRC

(23)

Requisitos para iniciar a migração

Fazer a migração a partir do Linux mainline

Repositório git inicial do patch (ADEOS)

http://git.denx.de/?p=ipipe-2.6.git;a=summary

Este repositório já tem as funcionalidades do Xenomai já

implementadas

Checar se existe port do Linux para a placa/cpu que estamos

trabalhando

No caso, não

Em caso negativo, é preciso fazer um port próprio

Timer

UART

(24)

Migração do Xenomai

Documento no site que explica com fazer o port

http://www.xenomai.org/index.php/I-pipe:ArmPorting

No nosso caso

Partimos do kernel de Linux fornecido pelo BSP da TI

– Feio, do ponto de visto de comunidade – Kernel já funcionava na placa

– Integração relativamente simples

Aplicação dos patches já disponíveis no site do projeto, para a versão de kernel presente no BSP da TI

– Uma boa parte do patch já está implementada nestes patches

Resultado

Um kernel com a parte independente de hardware implementada

Próximo passo – implementar as funcionalidades dependentes de

hardware

(25)

Arquivos dependentes de hardware

time.c

Implementa funções de gerenciamento de relógio

Principal recurso de um sistema operacional de tempo real

irqs.h

Arquivo contendo as especificações de interrupção

No caso, devem ser implementados macros para gerenciamento de

multiplexação de interrupção, se for o caso

irq.c

Implementa funcionalidades de gerenciamento de interrupção

Implementa o gerenciador específico usado pelo Xenomai

(26)

Desafios

Ajustes do timer

Realmente a parte decisiva do projeto

Uma vez acertado, o resto vai direto

Nos primeiros testes, o sistema travou

Printk não funcionou

Foi preciso mudar o printk para imprimir direto na serial

Só passou a funcionar depois de resolvido problema do

timer

Problemas com interrupção

Testes extensivos devem ser realizados, pois pode ocorrer

problemas com outros drivers Linux

(27)

Resultados Obtidos

Código adaptado do Xenomai adaptado para o

kit de desenvolvimento L-138 da LogicPD

Ainda é necessário realizar mais testes

Conseguimos verificar a maioria dos casos

Ainda mais trabalho é necessário

Atualização no “mainline” do Xenomai

Processo em andamento

Revisão rigorosa de código pelos mantenedores

(28)
(29)

Conclusão

Xenomai é uma estratégia muito interessante para utilização do

GNU/Linux em aplicações de tempo real

Solução de micro-kernel tem se mostrado muito apropriado quando os requisitos de tempo são mais fortes

Permite o desenvolvimento de aplicações onde as questões temporais

são tratadas com latências reduzidas

Para desenvolvimento de software de tempo real em Linux, é requisito que o software seja feito em user-space

Grande vantagem em projetos de sistemas de tempo real

(30)

Obrigado

Referências

Documentos relacionados

O sistema do jogo educativo foi elaborado para que possa interagir com o usuário de três formas: através de um circuito com três botões e uma chave desenvolvido para o jogo e

Saber ler e ouvir os alunos, mesmo quando suas informações não vêm em formas verbais, é um saber docente que precisa ser desenvolvido ao longo dos anos de convívio com os jovens.

Efetuamos uma revisão especial das informações trimestrais ( ITR) da João Fortes Engenharia S/A., referentes ao período findo em 30 de setembro de 2002, compreendendo o

O uso da literatura infantil na sala de aula é uma ferramenta fundamental na construção da aprendizagem, pois motiva os alunos a leitura e a criança conhecerá as diversidades sociais

23 O curso de PÓS-GRADUAÇÃO LATO SENSU EM GESTÃO ESTRATÉGICA E INTELIGÊNCIA DE NEGÓCIOS fará a oferta das seguintes APNPs:. Semestre Componente curricular

Mestrado em: Nutrição Humana ou Nutrição Clínica ou Saúde Coletiva ou Ciências da Saúde ou Ciências ou Saúde ou Alimentos e Nutrição e Desenvolvimento na

Este trabalho busca uma alternativa capaz de atender as exigências da indústria e dos mercados consumidores, utilizando o adesivo PVA (Poliacetato de Vinila) no

Linear and polynomial models adjusted for the entire set of data of the four soil classes do not have sufficient accuracy for estimating the moisture of the soils studied in