Webminar Freescale Desenvolvimento de sistemas

Propaganda
Webinar Freescale
Desenvolvimento de sistemas embarcados em
Linux com a Thunderboard
11/12/2013
Índice
• Sobre a Thunderboard
–
–
–
–
Descrição do produto
System on Module (SoM) – MDP i.MX28
Aplicações
Vantagens
• BSP
– Linux
– Yocto Project
– Xenomai
• Dúvidas
SOBRE A THUNDERBOARD
O que é a Thunderboard?
Uma solução flexível e de baixo custo para aplicação em sistemas embarcados
Hardware para aplicações
embarcados
• Contém recursos básicos
de um microcomputador
embarcado
• De fácil integração em
soluções personalizadas
• Baixo custo
Reference design para
projeto de equipamentos
dedicados
• Placa base do System on
Module MDP i.MX28
• Projeto base para projeto
de novo hardware
dedicado
Thunderboard
Sobre a Thunderboard
• Projeto em parceria Phi Innovations – iTech
• Motivação inicial: CPU base para aplicação em uma linha de
produtos da área de soluções do Grupo iTech
• Resultado final: uma CPU de custo baixo para uso geral, em
diversos segmentos de mercado
Características
Um projeto de hardware em duas camadas
SoM
(System on
Module)
System on Module:
Placa independente contendo todos os recursos
computacionais necessários para projeto de
hardwares dedicados com diferentes periféricos.
Placa Base:
Placa contendo todos os periféricos dedicados de
um sistema embarcado específico
Placa Base
A comunicação entre as duas placas se dá através de
conector ou soldagem
Vantagens de projetos com SoM
Utilizar um SoM reduz risco de projeto de um sistema
embarcado
• Projeto de hardware
– Maior risco está no projeto dos componentes de CPU de um sistema
embarcado
• Riscos
– Gerenciamento de componentes em fim de linha
– Projeto de PCB de altas velocidades
– Aumento na quantidade de camadas de placa
Vantagens de projetos com SoM
Tempo de desenvolvimento
• Time to market reduzido ao usar um SoM
Placa base de complexidade reduzida
• Baixo custo
• Poucas camadas
Flexibilidade do projeto
• É possível melhorar o desempenho e recursos do projeto
através da substituição da unidade computacional do projeto
Especificações da Thunderboard
Recursos
System on Module MDP i.MX28
Ethernet
USB Host duplo
USB On The Go (OTG)
Conector UART (FTDI)
Cartão Micro SD
Acelerômetro
Alimentação através de conector P4 –
5V
• 4 Leds auxiliares
• Barra de expansão
•
•
•
•
•
•
•
•
Expansão
•
•
•
•
•
3 seriais UARTs
2 interfaces CAN
GPIO
LCD
ADC
– 7 canais 12 bits e um canal 2 MSPS
• SPI
• I2C
• I2S
SoM MDP i.MX28
•
•
•
•
•
•
Microprocessador Freescale i.MX28
ARM926EJ-S de 454 MHz
Cache 16 KB/32 KB
128 MB de memória RAM DDR2
512 MB de memória NAND Flash
PHY Ethernet
– Suporte a IEEE 1588
• Dimensão: 35 x 44 mm
• Encapsulamento castellation de 146
pinos
• Alimentação 5 V
Vantagens do MDP i.MX28
• Baixo custo
• Produção nacional
• Fácil produção e manutenção
– Encapsulamento castellation facilita montagem e reparo de
placa
• Versátil
– Permite o emprego em diferentes aplicações
APLICAÇÃO
Cenários de uso
• Utilização da Thunderboard em projetos específicos
• Utilização do MDP i.MX28 em projetos específicos
Uma placa para ser usada em equipamentos
• Leds de um lado e conectores de
outro
– Apropriado para aproveitamento em
caixas dedicadas
• Conectores de expansão
– Para inclusão de novas
funcionalidades
• Conectividade essencial
– USB Host
– USB Device
– Ethernet
• Armazenamento externo
– Suporte a pendrive
– Cartão SD
Aplicações com Thunderboard
• Automação comercial
– Leitores de dados
– Teclados
– Microterminais
• Sensoreamento
– Aquisição e transmissão de
dados
• Interface Homem Máquina
(IHM)
• Telemetria
• Expansão através de hardware
adicional
–
–
–
–
–
–
Modems 3G e GPRS
Sensores (GPIO/I2C/SPI)
Display LCD Touchscreen
Wi-Fi
Bluetooth
Ethernet Adicional
Aplicações com MDP i.MX28
• Networking
– Roteadores personalizados
• Automação industrial
– CPU para CLPs e IHMs
• Automação comercial
– Microterminais
– Coletores de dados
– IHMs
• Telemetria
– Modems
– Unidades remotas de
monitoramento
– Rastreadores de veículos
• Computadores de bordo
• Segurança
– Sistemas de vigilância
– Proxy
BSP
Definição de BSP
• BSP – Board Support Package
Conjunto de software necessário para execução de um
determinado conjunto de software para um hardware
específico
Geralmente é composto pelo sistema operacional embarcado
executado no equipamento eletrônico, juntamente com seus
drivers de dispositivos e suas ferramentas de
desenvolvimento de software aplicativo
Linux
• Suporte ao sistema operacional Linux
• Linux implementado na ferramenta Yocto
– Geração de todo o ambiente de desenvolvimento de software
aplicativo para a Thunderboard/SoM
Yocto Project
• Projeto da Linux Foundation com o objetivo de uniformizar o
desenvolvimento de BSPs Linux para diferentes microprocessadores e
placas
Fornece templates, ferramentas e métodos para auxiliar na criação de
sistemas personalizados baseados em Linux para produtos
embarcados independentemente da arquitetura de hardware
Yocto Project
Principais componentes
• Openembedded
–
–
–
–
http://www.openembedded.org
Framework para criar distribuições Linux para sistemas embarcados
Pode incluir bootloader, kernel Linux e aplicações
É um conjunto de metadados usado para cross-compilar, empacotar
e instalar pacotes de software
• A partir de seu código fonte
Yocto Project
Principais componentes
• Poky Platform Builder
– http://www.pokylinux.org
– É a ferramenta de construção de distribuição Linux (Linux build
system) do Projeto Yocto
– É derivado do OpenEmbedded
– É um subconjunto do OpenEmbedded, com recursos
compartilhados com o intuito de integração direta
Yocto Project
Principais componentes
• Bitbake
– http://bitbake.berlios.de/
– Ferramenta utilizada para execução de tarefas
– Derivada do projeto de código aberto Portage
• Sistema de gerenciamento de pacotes da distribuição Gentoo
– Utilizado principalmente para compilação de pacotes
– É base dos projetos Poky/OpenEmbedded
Construção de uma imagem
QEMU ou placa final
Arquitetura
Áreas funcionais
• Configuração de usuário: metadados usados para controlar o processo de
compilação
• Camadas de metadados: várias camadas de metadados com configurações de
software, de hardware e de distribuição
• Arquivos fonte: versões oficiais, projetos locais ou repositórios remotos
• Package feeds: diretórios contendo pacotes de saída que são usados para construção
de uma imagem ou SDK (Software Development Kit)
• Imagens: imagens produzidas pelo processo de desenvolvimento
• SDK de desenvolvimento de aplicações: ferramentas de cross compilação
Ambiente de trabalho
Procedimento básico
• Baixar o projeto poky
• Executar configurações de
variáveis de ambiente
– source oe-init-build-env
• Alterar os arquivos de
configuração
– bblayers.conf
– local.conf
• Executar a compilação desejada
– bitbake <target>
Exemplos de targets
• core-image-minimal
• meta-toolchain
• openssh
Cada imagem possui um arquivo .bb
com a receita responsável pela
execução das tarefas
correspondentes a este
procedimento
MDP i.MX28 – Código fonte
• Projeto hospedado no Github
– https://github.com/PhiInnovations/mdp28-linux-bsp
• Criada uma camada específica para a placa
– meta-phi
• Criada uma imagem específica para a placa
– image-phi-mdp28
• Criada uma configuração específica de hardware
– mdp28
Xenomai
• Framework para desenvolvimento de sistemas de tempo
real em Linux
– Objetivo é permitir com que software criado em outros
ambientes possam executar em Linux, mediante recompilação
• Projeto criado em 2001
• Se fundiu com o RTAI em 2003
– RTAI/Fusion
• Se separou do RTAI em 2005
Xenomai
USER
SPACE
Aplicativo
convencional
Chamadas
de sistema
Linux Kernel
KERNEL
SPACE
Aplicativo
tempo real
Chamadas
de API
Interrupções
de hardware
Xenomai RTOS (nucleus)
Interrupções de hardware
Chamadas
de I/O
Adeos/I-pipe
Interrupções
de hardware
Hardware
Chamadas
de I/O
Xenomai
• Utiliza o ADEOS como tecnologia de separação de domínios
– Tempo Real
– Não tempo real
• Possui um RTOS próprio (nucleus)
– Skins para utilização de código de outros sistemas operacionais
• Comunidade relativamente grande
– Em comparação com outras iniciativas similares
– Suporte a diversas plataformas
Principais componentes
• Xenomai Nucleus
– Sistema operacional de tempo real. Implementa todas as funcionalidades necessárias para execução
de aplicativo de tempo real
• Real Time Driver Model (RTDM)
– Infraestrutura para desenvolvimento de drivers e tasks para execução em kernel-space com Xenomai
• Native API
– Conjunto de funções que controlam o funcionamento do Xenomai Nucleus. Trata-se de uma biblioteca
nativa e específica para um projeto de software escrito para Xenomai
• POSIX Skin
– Implementação de funcionalidades de tempo real para execução no Xenomai Nucleos conforme as
especificações de API de tempo real definidas no padrão POSIX
• Padrão POSIX é a principal referência de API dos principais vendors de RTOS do mercado
• HAL
– Hardware Abstraction Layer. Utilizada para comunicação com ADEOS
• SCHED
– Funcionalidades para controle de escalonadores
Roadmap BSP
• Fase 1 – suporte inicial
– Configuração básica
– Ambiente de desenvolvimento
• Fase 2 – Qt
– Suporte ao desenvolvimento de interface gráfica com o usuário
• Fase 3 – Xenomai
– Suporte ao desenvolvimento de software em tempo real
PERGUNTAS ?
Obrigado
Informações para contato:
• [email protected][email protected]
Download