Kemp Technologies - Load Master Series - Webminar en Español
Webminar Freescale Desenvolvimento de sistemas …
Transcript of Webminar Freescale Desenvolvimento de sistemas …
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?
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
Uma solução flexível e de baixo custo para aplicação em sistemas embarcados
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
Placa Base
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
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 – 5 V
• 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
Hardware
Adeos/I-pipe
Interrupções de hardware
Xenomai RTOS (nucleus) Linux Kernel
Aplicativo tempo real
Aplicativo convencional
Interrupções de hardware
Interrupções de hardware
Chamadas de API
Chamadas de I/O
Chamadas de I/O
Chamadas de sistema
USER SPACE
KERNEL SPACE
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: