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