A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Sistemas Embarcados com Linux Diego F. Nascimento

Apresentações semelhantes


Apresentação em tema: "Sistemas Embarcados com Linux Diego F. Nascimento"— Transcrição da apresentação:

1 Sistemas Embarcados com Linux Diego F. Nascimento

2 Tópicos Introdução aos Sistemas Embarcados O que são? Arquitetura Básica Processadores mais Utilizados Sistemas Operacionais Disponíveis. Desenvolvimento para Sistemas Embarcados Conceitos Básicos Plataforma Alvo (target) e Plataforma de Desenvolvimento (host) Tipos de Configuração Host-Target Cross-Compiling Linux como Ambiente de Desenvolvimento Modelo de Desenvolvimento em Linux Ferramentas Disponíveis (GNU Build Tools) O Linux na Plataforma Alvo (Embarcado) O Kernel Linux Sistema de Arquivos Bootloader

3 Objetivo O objetivo deste mini curso é apresentar alguns conceitos básicos sobre desenvolvimento para sistemas embarcados utilizando sistema operacional Linux.

4 Apresentação do Instrutor Engenheiro de Computação Atualmente atua como pesquisador técnico no Genius Instituto de Tecnologia desenvolvendo aplicações de reconhecimento de fala e sistemas embarcados.

5 Introdução aos Sistemas Embarcados O que são Sistemas Embarcados? São Sistemas computacionais projetados para executar tarefas pré-definidas

6 Introdução aos Sistemas Embarcados Características Interfaces Restritivas. Pouca memória principal Baixa capacidade de processamento Baixo consumo de energia Alguns devem executar suas tarefas em tempo real Geralmente são produzidos em larga escala

7 Introdução aos Sistemas Embarcados Exemplo de Sistemas Embarcados mais Comuns PDAs SmartPhones Celulares MP3 Players Video Games Impressoras Câmeras GPS

8 Introdução aos Sistemas Embarcados Aviônicos Sistema de Navegação Sistemas de Monitoramento de Pacientes Sistemas de Injeção Eletrônica Exemplo de Sistemas Embarcados de Tempo Real

9 Introdução aos Sistemas Embarcados Processador Memória Principal Memória Flash/EEPROM/ROM Periféricos (Sensores, Atuadores, Interface Serial, USB, etc) Interface para Gravação Interface de Usuário (Opcional) Arquitetura Básica

10 Introdução aos Sistemas Embarcados PowerPC (Freescale) ARM (Cirrus) MIPS (MIPS Technologies) SuperH - Hitachi X86 - Intel Processadores mais Utilizados

11 Introdução aos Sistemas Embarcados Embedded Linux RTLinux Windows Mobile Windows CE Windows XP Embedded Palm OS FreeRTOS Symbian LynxOS Sistemas Operacionais Disponíveis

12 Desenvolvimento para Sistemas Embarcados

13 Desenvolvimento – Conceitos Básicos Devido as limitações das plataformas embarcadas é necessário uma plataforma mais robusta para o desenvolvimento das aplicações. Esta plataforma é chamada de plataforma de desenvolvimento ou simplesmente Host Já as plataformas onde as aplicações serão executadas são chamadas de Plataforma Alvo ou simplesmente Target Introdução

14 Desenvolvimento – Conceitos Básicos Geralmente são computadores de propósito geral (Computadores Pessoais) Possuem grande capacidade de armazenamento Possuem grande quantidade de processamento Disponibiliza interfaces mais adequadas para o desenvolvedor. Éonde são executadas as ferramentas necessárias para o desenvolvimento de aplicações. Plataforma de Desenvolvimento - Host

15 Desenvolvimento – Conceitos Básicos Produto propriamente dito. Plataforma onde as aplicações serão executadas Suas características foram citadas anteriormente Geralmente são utilizadas plataformas de referência para o desenvolvimento até chegar ao produto final. Plataforma Alvo - Target

16 Desenvolvimento – Conceitos Básicos É necessário uma interface entre a plataforma host e a plataforma target Atualmente existem 3 configurações para estas interfaces que são mais comuns: Linked Setup Removable Storage Setup Standalone Setup Tipos de Configuração Host/Target

17 Desenvolvimento – Conceitos Básicos Configuração mais utilizada atualmente Host é conectado ao Target através de um cabo. Geralmente utiliza interface RS-232, USB ou Ethernet para comunicação com o target. Possibilita depuração de código remotamente Atualmente, é utilizado este tipo de configuração para a gravação e depuração de software na plataforma alvo com o auxílio de JTAGs. Tipos de Configuração Host/Target – Linked Setup

18 Desenvolvimento – Conceitos Básicos Esquema Linked Setup

19 Desenvolvimento – Conceitos Básicos Utiliza dispositivos removíveis para cópia da aplicação desenvolvida para a plataforma alvo. Antigamente eram utilizadas placas de gravação contendo sockets para a memória a qual era utilizada na plataforma alvo. Modelo quase obsoleto, pois este não permite a depuração da aplicação de forma eficaz Tipos de Configuração Host/Target – Removable Storage Setup

20 Desenvolvimento – Conceitos Básicos Esquema Removable Storage Setup

21 Desenvolvimento – Conceitos Básicos São utilizados em plataforma alvo bem mais robustas. As ferramentas de desenvolvimento são executadas na plataforma alvo. A plataforma de desenvolvimento é utilizada apenas para acessar a plataforma alvo. Devido a evolução das plataformas embarcadas, este modelo já vem sendo utilizado. Tipos de Configuração Host/Target – Standalone Setup

22 Desenvolvimento – Conceitos Básicos Esquema Standalone Setup

23 Desenvolvimento – Conceitos Básicos É a construção de uma aplicação para um plataforma distinta da qual está sendo construída. O Compilador, é executado na plataforma de desenvolvimento, porém gera um binário para outra plataforma: A plataforma Alvo. Um binário compilado para uma plataforma, só pode ser executado nesta, pois as instruções geradas são específicas para cada arquitetura de processador. Cross-Compiling

24 Desenvolvimento – O Linux Sistema Operacional Robusto Desenvolvido por Linus Torvalds. Baseado no antigo Minix (Derivado do Unix). Possui seu código fonte aberto. Licença GPL – (utilizar, modificar, estudar, distribuir) Bastante visado pelas empresas devido ao baixo custo. O que é o Linux?

25 Desenvolvimento – O Linux como Host A grande maioria das ferramentas são utilizadas através de linhas de comando. Alguns IDEs também são utilizados. São utilizadas linguagens auxiliares como shellscript, perl e python para auxiliar no processo de desenvolvimento. GNU Build Tools é o conjunto de ferramentas que é mais utilizado entre os desenvolvedores Linux. Modelo de Desenvolvimento Linux

26 Desenvolvimento – O Linux como Host É um conjunto de ferramentas (softwares) utilizadas para facilitar o processo de compilação e construção de aplicações É composta pelos seguintes softwares: autoconf – gera scripts para auxiliar na construção de Makefiles automake – auxilia na geração de makefiles portáveis libtool – conjunto de ferramentas para geração de biliotecas estáticas e dinâmicas. GNU Build Tools

27 Desenvolvimento – O Linux como Target É exatamente o mesmo linux utilizado em computadores pessoais. Todos os recursos que não são utilizados na plataforma embarcada são descartados. Algumas aplicações essenciais para execução do sistema são customizadas. Alguns drivers de dispositivos precisam ser desenvolvidos. Características

28 Desenvolvimento – O Linux como Target Bootloader Kernel Sistema de Arquivos Estrutura de um Sistema Embarcado com Linux

29 Desenvolvimento – O Linux como Target Primeiro software que é executado em um sistema embarcado Executa a detecção e inicialização do hardware Alguns possuem interfaces tftp para download de arquivos Inicializa o kernel Os mais famosos são o u-boot e o redboot, lilo e grub Bootloader

30 Desenvolvimento – O Linux como Target É o linux propriamente dito. Responsável por gerenciar o hardware do sistema assim como as tarefas executadas pelo mesmo. Pode ser baixado em Possui suporte para muitos hardwares disponíveis no mercado. Kernel

31 Desenvolvimento – O Linux como Target É responsável pelo armazenamento de dados do sistema. Os mais comuns são: JFFS2, cramfs, ext3, ext2, fat32, ntfs JFFS2 e cramfs são os mais utilizados em sistemas embarcados. É composto por uma estrutura de diretórios baseada na FHS (Filesystem Hierarchy Standard) É nele que são armazenadas as aplicações. Sistema de Arquivos

32 Desenvolvimento – O Linux como Target Estrutura do Sistema de Arquivos

33 Desenvolvimento – O Linux como Target Exemplo de Sistemas Embarcados que Utilizam Linux

34 Desenvolvimento – O Linux como Target Exemplo de Sistemas Embarcados que Utilizam Linux

35 Desenvolvimento – O Linux como Target Exemplo de Sistemas Embarcados que Utilizam Linux

36 Desenvolvimento – O Linux como Target Exemplo de Sistemas Embarcados que Utilizam Linux

37 Desenvolvimento – O Linux como Target Exemplo de Sistemas Embarcados que Utilizam Linux

38 Perguntas e Dúvidas

39 Referências


Carregar ppt "Sistemas Embarcados com Linux Diego F. Nascimento"

Apresentações semelhantes


Anúncios Google