Sistemas Embarcados - Inf

Propaganda
Introdução
Sistemas Embarcados
• Sistemas embarcados são parte integrante de
muitos dispositivos na vida moderna
• Sistema eletrônico computacional de propósito
específico visando o controle de um produto
• Características importantes
Alexandre Carissimi
João Cesar Netto
Luigi Carro
• Baixo consumo de bateria
• Tamanho reduzido
• Baixo custo (hardware e software)
([email protected], [email protected], [email protected])
Instituto de Informática – UFRGS
Aula 01
INF01059 - Sistemas Embarcados
Software embarcado
Características de sistemas embarcados
• Sistema projetado para executar em um sistema embarcado
• Exemplos:
•
•
•
•
•
•
2
• Funcionalidade sofisticada
• algoritmos de controle sofisticados
• interfaces com usuário dedicadas
Eletrônica de consumo: celular, PDAs,…
Automação: CLPs
Automóvel: ignição, freios, ...
Entretenimento: TV digital, games, …
Robótica
Comunicação: telefonia, roteadores, switches, modems,…
• Baixo custo de projeto e fabricação
• Pequena exigência de memória
• Interação com dispositivos físicos
• sensores, atuadores
• Dispositivos portáteis
• tamanho, peso, duração da bateria, etc.
• Propriedades não-funcionais críticas
• robustez, tempo-real, segurança, tolerância a falhas, etc.
INF01059 - Sistemas Embarcados
3
INF01059 - Sistemas Embarcados
4
Características do software embarcado
Desenvolvimento de software embarcado
• Exigências impostas ao projeto são mais rígidas do que
aquelas consideradas para o software tradicional (PCs)
• Restrições não-funcionais
•
•
•
•
• Complexidade crescente das aplicações
• Plataforma de hardware complexa (múltiplos processadores)
• dificulta desenvolvimento do software
tamanho da memória
consumo de energia
desempenho
tempo real
• Janela de mercado cada vez mais estreita
• clientes desejam um produto cada vez mais sofisticado e por um
preço cada vez mais baixo
• funcionalidades normalmente são adicionadas por software
• Software tradicional: processo de projeto visa principalmente
atendimento de restrições funcionais
• Aumentar a produtividade do desenvolvimento de software é
imprescindível neste mercado
• atendimento de restrições não-funcionais (desempenho,
memória) são secundárias
INF01059 - Sistemas Embarcados
• Time to market
• Baixo custo
5
INF01059 - Sistemas Embarcados
Métricas para sistemas embarcados
Plataformas de hardware e de software
• Métricas tradicionalmente aplicadas
•
•
•
•
•
6
• Plataforma = infra-estrutura de recursos de hardware e ou
software a partir dos quais se pode desenvolver um sistema
desempenho
ocupação de memória (dados/programa)
consumo de energia
dissipação de potência
tamanho físico/peso
•
•
•
•
• Requisitos em geral desejam o melhor valor possível de cada
métrica
• Não indicam a qualidade do produto de software
processadores, outros componentes IP (propriedade intelectual)
software básico (RTOS, drivers…)
bibliotecas de software para domínio de aplicação
ambiente de desenvolvimento
• Tendência definitiva no projeto de sistemas embarcados
• menor time-to-market pelo reuso da plataforma
• Aplicação = customização da plataforma
• configuração do hardware
• principalmente customização por software
INF01059 - Sistemas Embarcados
7
INF01059 - Sistemas Embarcados
8
Infra-estrutura de software disponíveis
•
•
•
•
•
•
•
•
•
•
VxWorks (Wind River)
uCOS
RTX
QNX
VxWorks
eCOS
Symbian
Linux
Linux c/ patch RT (e variantes)
Win-CE
…
INF01059 - Sistemas Embarcados
• Núcleo com funções de tempo real
• Suporte
• interrupções, 256 níveis de prioridades
• memória compartilhada
• escalonamento preemptivo e round-robin
• Aplicações
•
•
•
•
•
9
INF01059 - Sistemas Embarcados
Symbian
•
•
•
•
•
•
10
WindowsCE
Projetado para dispositivos portáteis
Núcleo com suporte a multithread
Capacidades de hard realt-time
Suporte parcial ao POSIX (P.I.P.S)
Roda exclusivamente em processadores ARM (ARMv5, v6 e v7)
Embarcado em vários celulares Ericsson e Nokia e em PDAs
•
•
•
•
sistemas controladores de processos industriais
câmeras digitais
simuladores de vôo
PDAs
sistemas de navegação em automóveis.
Sony Ericsson P800 (2002), P1 (2007), W960 (2007)
Motorola A920, A925, A1000, RIZR Z10
DoCoMo M1000
BenQ P30, P31
•
•
•
•
Sistema operacional multithreaded de tempo real
Núcleo com baixa ocupação de memória (250 KB)
Altamente componentizado (350+ componentes individuais)
Arquiteturas suportadas
•
•
•
•
ARM (ST, Intel, Samsung,Texas, Freescale, Altera ...)
MIPS (MIPS Technologies, AMD, Broadcom, ... )
SH4 (Renesas, ST)
X86 (AMD, Intel, ST, ...)
http://www.symbian.com/
INF01059 - Sistemas Embarcados
11
INF01059 - Sistemas Embarcados
12
WindowsCE 6: inovações
WindowsCE: desenvolvimento
• Não código aberto, MAS ...
• Ambientes de desenvolvimento
• Platform Builder 5.0: Device image building tool
• desenvolvimento de aplicações:
• código gerenciado (.Net® Compact Framework) com Visual C#
ou Visual Basic®
• código nativo ou Win32: Embedded Visual C++
• licença shared source do Windows CE 6.0
• 100% do kernel do Windows CE tem seu código-fonte
disponível para consulta
• algumas partes do código podem ser também alteradas, mas
não o kernel!
• Tamanho mínimo (300KB)
• 600 componentes selecionáveis
• Maior espaço de endereçamento de memória para processos
INF01059 - Sistemas Embarcados
13
Windows Mobile
14
Windows XP Embedded
• Projetado para Smartphones e Pocket PCs
• Uso:
• Versão componentizada do Windows XP
• Dirigido a dispositivos embarcados que são construídos sobre
hardware PC commodity
• Por possuir a mesma API (Application Programming
Interface) do Windows XP, é capaz de rodar aplicativos
existentes no mesmo
• Desenvolvimento com: Windows XP Embedded Studio
• Fiat Punto
• vários modelos de smartphones
• HP iPAQ hw6940/hw6945, Motorola Q, Palm Treo 700wx,
Samsung i321n
INF01059 - Sistemas Embarcados
INF01059 - Sistemas Embarcados
15
INF01059 - Sistemas Embarcados
16
ITRON
eCos
• RTOS de código aberto
• Compatibilidade com as APIs POSIX e os software GNU
• Configurável
• ITRON é um kernel japonês de tempo real para sistemas
embarcados
• Usado em telefones celulares, câmeras digitais, tocadores de
CD, etc.
• customizado para os requisitos da aplicação
• otimizado para os recursos de hardware
• Suporte a 10 diferentes arquiteturas-alvo
• ARM, Hitachi H8300, Intel x86, MIPS, Matsushita AM3x, Motorola
68k, PowerPC, SuperH, SPARC e NEC V8xx
Segundo a revista Linux Insider, em 2003, o ITRON já rodava em
mais de 3 bilhões de microprocessadores
http://ecos.sourceware.org/
INF01059 - Sistemas Embarcados
17
eCos: características
•
•
•
•
18
Adequação para utilização
• Hardware Abstraction Layer (HAL)
• Real-time kernel
•
•
•
•
•
•
INF01059 - Sistemas Embarcados
• Custo de licença
• Treinamento de pessoal para suporte do sistema operacional
• Treinamento para desenvolvimento de aplicações (quando
em API específica)
• Disponibilidade de porte para processador/placa utilizada
• Custo (pessoal e/ou financeiro) para porte para hardware
específico da aplicação
• Custo do porte de um boot loader
gerenciamento de interrupções e exceções
escolha de escalonadores e alocadores de memória
support a threads
rico conjunto de primitivas de sincronização
timers, contadores e alarmes
suporte a depuração e instrumentação
API compatível com µITRON 3.0
API compatível com POSIX
Bibliotecas ISO C e matemática
Suporte a depuração GDB
INF01059 - Sistemas Embarcados
19
INF01059 - Sistemas Embarcados
20
Próxima aula
Introdução ao Linux embarcado e
aspectos de software livre
Download