Sistemas Embarcados com Linux

Slides:



Advertisements
Apresentações semelhantes
Sistemas operacionais.
Advertisements

Sistemas Operacionais
Material elaborado pela professora Alzennyr Cléa da UFRPE / DFM
Paulo Pedrosa Tiago Nogueira
PROTÓTIPO DE UM SISTEMA DE SEGURANÇA RESIDENCIAL COM LINUX EMBARCADO
DESENVOLVIMENTO DE SISTEMAS PARA INTERNET
Noções de Sistemas Operacionais
Infra-Estrutura de TI: Hardware e Software
Informática Aplica Prof.: Bruno Rafael de Oliveira Rodrigues.
Introdução à Informática
Instalação de Drivers de Dispositivos
Petiano: Yuri Gonzaga G. da Costa
Introdução à Informática
Device Drivers no Windows e Linux Visão Geral e Boas Práticas
Concepts and Capabilities
Sistemas Operacionais
Curso Técnico em Manutenção e Suporte em Informática
ROB 553.
Escola de Ensino Fundamental e Médio "Professora. Maura Abaurre"
FUNDAMENTOS DE SOFTWARE
Sistemas Embarcados com Linux
Aula 6 – Sistema Operacional
LINUX.
Professor Robson Campos
GESTÃO DE SISTEMAS DE INFORMAÇÃO
Professor Felipe Monteiro Lima
Discos SCSI Fonte de alimentação Controlador SCSI Disco SAS
PROF. PAULO NAJAR
Computadores Tipos e estrutura interna
XEn Universidade Federal do Rio de Janeiro
Linux Criado pelo finlandês Linus Torvalds;
Faculdade Cambury Sistemas Operacionais
Custo/Benefício e Impactos Organizacionais dos Sistemas de Informação
Gestão de Sistemas Operacionais II
Montagem e Manutenção de Computador I
Universidade Federal Fluminense Escola de Engenharia Departamento de Engenharia de Telecomunicações Sistemas de Computação para Telecomunicações Autores:
Gerencia de Redes Redes de Computadores II
Noções de Software Escola Almirante Soares Dutra
Sistemas Operacionais Linux
Linux Prof.: Antonio Reis Escola Brasileira. Histórico  Richard Stallman Personalidade importante da comunidade do software livre Ingressou no MIT em.
LINUX. GRUB Trata-se de um gerenciador de boot desenvolvido inicialmente por Erich Stefan Boleyn, disponibilizado como software GNU. Entre seus principais.
Definição A rigor, tudo o que pode ser armazenado eletronicamente pode ser chamado de software. Consideraremos aqui, como software, apenas os conjuntos.
Faculdade de Tecnologia SENAI de Desenvolvimento Gerencial
Gnu / Linux Relatório de Portfólio Fernando Filipe Teixeira nº 3113 Beja 2007.
Sistemas Operacionais
Tópicos em Sistemas Operacionais (LINUX) Prof:. Msc. Arimatéia Junior Fortaleza-2011.
Sistemas de Informação: Estrutura básica dos Sistemas Empresariais.
Introdução à Informática
CURSO DE INFORMÁTICA MÓDULO BÁSICO.
Hardware e software Alunos: Vinicius Brunelli e Pedro Armando
INTRODUÇÃO AOS SISTEMAS OPERACIONAIS
Ambiente de desenvolvimento Curso de Nivelamento LCG
SISTEMAS OPERACIONAIS
Introdução à Computação - Jorge Macêdo1 ICC – Software Jorge Macêdo.
Computação Móvel e Embarcada ANDRÉ GUSTAVO DEGAF UCHÔA DISCIPLINA: ENG. DE SOFTWARE PROF: ALCIDES CALSAVARA & EDSON SCALABRIN.
Engenharia de Sistemas Embarcados Aula 5: Um Conjunto Básico de Ferramentas.
Sistemas Operacionais
Informática Aplicada à Hotelaria Revisão AP1
INTRODUÇÃO À COMPUTAÇÃO
Introdução aos Sistemas Operacionais
Elementos de Informática
Ciência da Computação I
LINUX. O que é LINUX  Linux é um termo utilizado para se referir a sistemas operacionais que utilizem o núcleo Linux  O Linux foi desenvolvido pelo.
Sistemas Operacionais PLATAFORMALINUX PLATAFORMALINUX Ricardo de Oliveira Joaquim TECNOLÓGICOS.
Instalação e Manutenção de Computadores
VIRTUALIZAÇÃO - INTRODUÇÃO Na área de TI; O que é sistema legado? É o termo utilizado em referência aos sistemas computacionais de uma organização que,
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
INFORMÁTICA APLICADA À ELETROTÉCNICA Prof:Felipe Lira.
Professor: Carlos Silva Introdução a informática.
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
Transcrição da apresentação:

Sistemas Embarcados com Linux Diego F. Nascimento diego.fnascimento@gmail.com

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

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

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.

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

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

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

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

Introdução aos Sistemas Embarcados Arquitetura Básica 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)

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

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

Desenvolvimento para Sistemas Embarcados

Desenvolvimento – Conceitos Básicos Introdução 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

Desenvolvimento – Conceitos Básicos Plataforma de Desenvolvimento - Host 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.

Desenvolvimento – Conceitos Básicos Plataforma Alvo - Target 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.

Desenvolvimento – Conceitos Básicos Tipos de Configuração Host/Target É 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 Para que as aplicações desenvolvidas na plataforma host sejam gravadas, executadas e testadas na plataforma alvo, existe a necessidade de uma interface entre as duas plataformas. Atualmente os três tipos de configurações mais comuns utilizadas este tipo de interface são

Desenvolvimento – Conceitos Básicos Tipos de Configuração Host/Target – Linked Setup 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. Para que as aplicações desenvolvidas na plataforma host sejam gravadas, executadas e testadas na plataforma alvo, existe a necessidade de uma interface entre as duas plataformas. Atualmente os três tipos de configurações mais comuns utilizadas este tipo de interface são

Desenvolvimento – Conceitos Básicos Esquema Linked Setup Para que as aplicações desenvolvidas na plataforma host sejam gravadas, executadas e testadas na plataforma alvo, existe a necessidade de uma interface entre as duas plataformas. Atualmente os três tipos de configurações mais comuns utilizadas este tipo de interface são

Desenvolvimento – Conceitos Básicos Tipos de Configuração Host/Target – Removable Storage Setup 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 Para que as aplicações desenvolvidas na plataforma host sejam gravadas, executadas e testadas na plataforma alvo, existe a necessidade de uma interface entre as duas plataformas. Atualmente os três tipos de configurações mais comuns utilizadas este tipo de interface são

Desenvolvimento – Conceitos Básicos Esquema Removable Storage Setup Para que as aplicações desenvolvidas na plataforma host sejam gravadas, executadas e testadas na plataforma alvo, existe a necessidade de uma interface entre as duas plataformas. Atualmente os três tipos de configurações mais comuns utilizadas este tipo de interface são

Desenvolvimento – Conceitos Básicos Tipos de Configuração Host/Target – Standalone Setup 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. Para que as aplicações desenvolvidas na plataforma host sejam gravadas, executadas e testadas na plataforma alvo, existe a necessidade de uma interface entre as duas plataformas. Atualmente os três tipos de configurações mais comuns utilizadas este tipo de interface são

Desenvolvimento – Conceitos Básicos Esquema Standalone Setup Para que as aplicações desenvolvidas na plataforma host sejam gravadas, executadas e testadas na plataforma alvo, existe a necessidade de uma interface entre as duas plataformas. Atualmente os três tipos de configurações mais comuns utilizadas este tipo de interface são

Desenvolvimento – Conceitos Básicos Cross-Compiling É 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. Para que as aplicações desenvolvidas na plataforma host sejam gravadas, executadas e testadas na plataforma alvo, existe a necessidade de uma interface entre as duas plataformas. Atualmente os três tipos de configurações mais comuns utilizadas este tipo de interface são

Desenvolvimento – O Linux O que é 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. Para que as aplicações desenvolvidas na plataforma host sejam gravadas, executadas e testadas na plataforma alvo, existe a necessidade de uma interface entre as duas plataformas. Atualmente os três tipos de configurações mais comuns utilizadas este tipo de interface são

Desenvolvimento – O Linux como Host Modelo de Desenvolvimento Linux 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. Para que as aplicações desenvolvidas na plataforma host sejam gravadas, executadas e testadas na plataforma alvo, existe a necessidade de uma interface entre as duas plataformas. Atualmente os três tipos de configurações mais comuns utilizadas este tipo de interface são

Desenvolvimento – O Linux como Host GNU Build Tools É 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. Para que as aplicações desenvolvidas na plataforma host sejam gravadas, executadas e testadas na plataforma alvo, existe a necessidade de uma interface entre as duas plataformas. Atualmente os três tipos de configurações mais comuns utilizadas este tipo de interface são

Desenvolvimento – O Linux como Target Características É 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.

Desenvolvimento – O Linux como Target Estrutura de um Sistema Embarcado com Linux Bootloader Kernel Sistema de Arquivos Para que as aplicações desenvolvidas na plataforma host sejam gravadas, executadas e testadas na plataforma alvo, existe a necessidade de uma interface entre as duas plataformas. Atualmente os três tipos de configurações mais comuns utilizadas este tipo de interface são

Desenvolvimento – O Linux como Target Bootloader 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 Para que as aplicações desenvolvidas na plataforma host sejam gravadas, executadas e testadas na plataforma alvo, existe a necessidade de uma interface entre as duas plataformas. Atualmente os três tipos de configurações mais comuns utilizadas este tipo de interface são

Desenvolvimento – O Linux como Target Kernel É o linux propriamente dito. Responsável por gerenciar o hardware do sistema assim como as tarefas executadas pelo mesmo. Pode ser baixado em www.kernel.org Possui suporte para muitos hardwares disponíveis no mercado. Para que as aplicações desenvolvidas na plataforma host sejam gravadas, executadas e testadas na plataforma alvo, existe a necessidade de uma interface entre as duas plataformas. Atualmente os três tipos de configurações mais comuns utilizadas este tipo de interface são

Desenvolvimento – O Linux como Target Sistema de Arquivos É 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. Para que as aplicações desenvolvidas na plataforma host sejam gravadas, executadas e testadas na plataforma alvo, existe a necessidade de uma interface entre as duas plataformas. Atualmente os três tipos de configurações mais comuns utilizadas este tipo de interface são

Desenvolvimento – O Linux como Target Estrutura do Sistema de Arquivos Para que as aplicações desenvolvidas na plataforma host sejam gravadas, executadas e testadas na plataforma alvo, existe a necessidade de uma interface entre as duas plataformas. Atualmente os três tipos de configurações mais comuns utilizadas este tipo de interface são

Desenvolvimento – O Linux como Target Exemplo de Sistemas Embarcados que Utilizam Linux Para que as aplicações desenvolvidas na plataforma host sejam gravadas, executadas e testadas na plataforma alvo, existe a necessidade de uma interface entre as duas plataformas. Atualmente os três tipos de configurações mais comuns utilizadas este tipo de interface são

Desenvolvimento – O Linux como Target Exemplo de Sistemas Embarcados que Utilizam Linux Para que as aplicações desenvolvidas na plataforma host sejam gravadas, executadas e testadas na plataforma alvo, existe a necessidade de uma interface entre as duas plataformas. Atualmente os três tipos de configurações mais comuns utilizadas este tipo de interface são

Desenvolvimento – O Linux como Target Exemplo de Sistemas Embarcados que Utilizam Linux Para que as aplicações desenvolvidas na plataforma host sejam gravadas, executadas e testadas na plataforma alvo, existe a necessidade de uma interface entre as duas plataformas. Atualmente os três tipos de configurações mais comuns utilizadas este tipo de interface são

Desenvolvimento – O Linux como Target Exemplo de Sistemas Embarcados que Utilizam Linux Para que as aplicações desenvolvidas na plataforma host sejam gravadas, executadas e testadas na plataforma alvo, existe a necessidade de uma interface entre as duas plataformas. Atualmente os três tipos de configurações mais comuns utilizadas este tipo de interface são

Desenvolvimento – O Linux como Target Exemplo de Sistemas Embarcados que Utilizam Linux Para que as aplicações desenvolvidas na plataforma host sejam gravadas, executadas e testadas na plataforma alvo, existe a necessidade de uma interface entre as duas plataformas. Atualmente os três tipos de configurações mais comuns utilizadas este tipo de interface são

Perguntas e Dúvidas ?

Referências http://www.embeddedarm.com http://www.ucdot.org/archive/tb/tb20020807.shtml http://www.linuxdevices.com