Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Linux Embarcado: Criando Sistemas com Linux para Dispositivos Embarcados, Notas de estudo de Informática

Este documento fornece informações sobre o uso de linux em sistemas embarcados, incluindo as diferenças entre linux tradicional e linux embarcado, exemplos de dispositivos que utilizam linux embarcado, o mercado de linux embarcado, vantagens e cuidados especiais com linux embarcado, e etapas para criar um sistema linux embarcado. O autor é marcelo barros de almeida.

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 18/12/2008

leonardo-cs-3
leonardo-cs-3 🇧🇷

2 documentos

1 / 39

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Linux a Bordo: Criando Sistemas Embarcados com Linux
© Copyright 2006, Marcelo Barros de Almeida
Licença Creative Commons Attribution-ShareAlike 2.0
http://linuxabordo.com.br
Linux a Bordo
Criando sistemas embarcados
com Linux
Marcelo Barros de Almeida
marcelobarrosalmeida@yahoo.com.br
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27

Pré-visualização parcial do texto

Baixe Linux Embarcado: Criando Sistemas com Linux para Dispositivos Embarcados e outras Notas de estudo em PDF para Informática, somente na Docsity!

Linux a Bordo: Criando Sistemas Embarcados com Linux © Copyright 2006, Marcelo Barros de Almeida Licença Creative Commons Attribution-ShareAlike 2.

Linux a Bordo

Criando sistemas embarcados

com Linux

Marcelo Barros de Almeida

[email protected]

Linux a Bordo: Criando Sistemas Embarcados com Linux © Copyright 2006, Marcelo Barros de Almeida Licença Creative Commons Attribution-ShareAlike 2.

Criando sistemas embarcados

com Linux

Introdução

  • (^) Definição de sistema embarcado
  • (^) Linux tradicional x Linux embarcado
  • (^) Exemplos ● (^) Motivação ● Pré-requisitos ● Criando sistemas embarcados ● (^) Créditos, agradecimentos e links

Linux a Bordo: Criando Sistemas Embarcados com Linux © Copyright 2006, Marcelo Barros de Almeida Licença Creative Commons Attribution-ShareAlike 2.

Linux tradicional x Linux Embarcado

Kernel Linux
Biblioteca GNU C
libjpeg, libstdc++, libxml, libvorbis...
ls, vi, wget, ssh, httpd, gcc...
Navegador web, escritório, multimídia...

Utilitários de

linha de

comando

Kernel

Biblioteca

C

Bibliotecas

compartilhad

as

Interface

com o

usuário

GNU Tradicional / Sistema Linux Sistema Linux embarcado

uClibc

Muito mais leve do que a biblioteca C GNU!

libjpeg, libstdc++, libxml, libvorbis...
busybox
(ls, vi, wget, httpd...)
dropbear (ssh)...

Implementações muito mais leves! Sem ferramentas de desenvolvimento.

Kernel Linux / uClinux (sem MMU)
Interface personalizada

Kernel leve, somente com as características necessárias e drivers Kernel completo com a maioria das características e com drivers para todo tipo de hardware de PC do planeta!! Gráficos, navegador web, servidor de web.

Linux a Bordo: Criando Sistemas Embarcados com Linux © Copyright 2006, Marcelo Barros de Almeida Licença Creative Commons Attribution-ShareAlike 2.

Introdução

Alguns exemplos de sistemas embarcados com Linux:

PDA Sharp Zauro SL-C

Multimídia Archos PMA

Telefone VoIP WiFi Accton VM1188T

Celular Haier N60 (WiFi, GSM,

câmera, touchscreen, MP3 player)

Roteador Linksys WTR54G

Thinclients

Relógio

Tablets

DVDs

Robôs

Linux a Bordo: Criando Sistemas Embarcados com Linux © Copyright 2006, Marcelo Barros de Almeida Licença Creative Commons Attribution-ShareAlike 2.

Mercado de Linux embarcado

● (^) Grande número de concorrentes:

  • (^) Sistemas proprietários

(home-brew)

  • (^) VxWorks
  • (^) QNX
  • (^) Windows ● (^) Principal concorrente (2005): Windows Embedded Fonte: http://linuxdevices.com/articles/AT6743418602.html http://linuxdevices.com e http://windowsfordevices.com)

Linux a Bordo: Criando Sistemas Embarcados com Linux © Copyright 2006, Marcelo Barros de Almeida Licença Creative Commons Attribution-ShareAlike 2.

Mercado de Linux embarcado

SO Usado (próximos 2 anos)

Linux Windows Proprietários VxWorks QNX eCos DOS

● Pesquisa espontânea

realizada em

www.linuxdevices.com

● Números mais modestos

(~25% para Linux) em

pesquisas realizadas pela

www.vdc-corp.com

Linux a Bordo: Criando Sistemas Embarcados com Linux © Copyright 2006, Marcelo Barros de Almeida Licença Creative Commons Attribution-ShareAlike 2.

Mercado de Linux embarcado

2003 2004 2005 0 10 20 30 40 50 60 70 80 Você pagaria royalties por unidade? Não Sim Indecidos 2003 2004 2005 0 5 10 15 20 25 30 35 40 45 50 55 60 65 Você pagaria por suporte? Sim Não Indecidos

Pesquisa espontânea realizada em www.linuxdevices.com

Linux a Bordo: Criando Sistemas Embarcados com Linux © Copyright 2006, Marcelo Barros de Almeida Licença Creative Commons Attribution-ShareAlike 2.

Vantagens Linux embarcado

● (^) Qualidade do código ● (^) Footprint relativamente pequeno:

  • (^) Kernel: 0,5 – 2MB de flash
  • (^) Sistema de arquivos: variável
  • (^) Mesmo assim, pode ser grande para algumas aplicações ● (^) Portabilidade e escalabilidade ● (^) Grande número de aplicativos disponíveis ● (^) Custos reduzidos ● (^) Suporte
  • (^) Fórum, listas, email, FAQs, exemplos, suporte comercial disponível.

Linux a Bordo: Criando Sistemas Embarcados com Linux © Copyright 2006, Marcelo Barros de Almeida Licença Creative Commons Attribution-ShareAlike 2.

Criando sistemas embarcados

com Linux

● (^) Introdução ● (^) Motivação ● (^) Pré-requisitos

  • (^) Conhecimentos necessários
  • (^) Equipamento necessários
  • (^) Criando sistemas embarcados ● (^) Créditos, agradecimentos e links

Linux a Bordo: Criando Sistemas Embarcados com Linux © Copyright 2006, Marcelo Barros de Almeida Licença Creative Commons Attribution-ShareAlike 2.

Conhecimentos necessários:

Kernel Linux

● (^) Linux

  • (^) Operação e funcionamento do sistema Linux
  • (^) Inicialização na plataforma desejada
  • (^) Conhecimento da estrutura do Kernel
  • (^) Compilação e instalação do Kernel

Linux a Bordo: Criando Sistemas Embarcados com Linux © Copyright 2006, Marcelo Barros de Almeida Licença Creative Commons Attribution-ShareAlike 2.

Conhecimentos necessários:

programação

● (^) Programar em C é obrigatório ● (^) Assembly para a plataforma desejada pode ser necessário ● Um pouco de shell script não faz mal a ninguém ● Desenvolvimento de módulos (device drivers) ● (^) Bônus track:

  • (^) HTML, servidores HTTP
  • (^) CGI e scripts (Python, PHP, Perl, etc)
  • (^) Java

Linux a Bordo: Criando Sistemas Embarcados com Linux © Copyright 2006, Marcelo Barros de Almeida Licença Creative Commons Attribution-ShareAlike 2.

Conhecimentos necessários:

eletrônica digital

● (^) Microcontroladores/Microprocessadores ● (^) Padrões de memórias:

  • (^) SDRAM
  • (^) Flash
  • (^) EEPROM ● (^) Padrões de barramentos pode ajudar caso precise desenvolver drivers ● (^) Outros:
  • (^) Timers, PWM, SPI, I2C, interrupções, RTCs, etc

Linux a Bordo: Criando Sistemas Embarcados com Linux © Copyright 2006, Marcelo Barros de Almeida Licença Creative Commons Attribution-ShareAlike 2.

Equipamentos necessários:

plataforma embarcada

● (^) Principais alternativas para a plataforma embarcada

  • (^) Emulação: Qemu ou outro emulador específico
  • (^) PC (ATX, mini-ATX, nano-ATX)
  • (^) PC/
  • (^) SBC (Single Board Computers)
  • (^) BSP (Board Support Package)
  • (^) Hardware hackeado (PDAs, celulares, MP3 players, roteadores, set

top boxes, vídeo games, relógios, etc)

  • (^) Hardware proprietário

Linux a Bordo: Criando Sistemas Embarcados com Linux © Copyright 2006, Marcelo Barros de Almeida Licença Creative Commons Attribution-ShareAlike 2.

Equipamentos necessários:

plataforma embarcada

● (^) Hardware proprietário pode ter custo elevado:

  • (^) Projeto do circuito eletrônico
  • (^) Layout da placa
  • (^) Confecção do PCB (Printed Circuit Board) e montagem
  • (^) Instrumentação (osciloscópios, analisadores lógicos, multímetros,

estações de soldagem)

  • (^) Integração hardware x software
  • (^) Mecânica (caixas, fixação, conectores, etc)
  • (^) Certificação, quando necessário ● Avaliar sempre o custo do investimento versus a fabricação por terceiros