Escolar Documentos
Profissional Documentos
Cultura Documentos
Formao:
Atualmente:
Detalhes:
http://linuxabordo.com.br/wiki/index.php?title=Marcelo_Barros
smar
Criando Sistemas Embarcados com Linux da teoria prtica
Copyright 2007, Marcelo Barros de Almeida
Licena Creative Commons Attribution-ShareAlike 2.0
http://www.smar.com.br http://www.linuxabordo.com.br
4
Criando sistemas embarcados
com Linux
Introduo
Mercado
Vantagens e cuidados
Pr-requisitos
Qualidade do cdigo
Portabilidade e escalabilidade
Suporte
GPL3
Alternativas:
NetBSD
St. IGNUcius
Criando Sistemas Embarcados com Linux da teoria prtica
Copyright 2007, Marcelo Barros de Almeida
Licena Creative Commons Attribution-ShareAlike 2.0
http://www.smar.com.br http://www.linuxabordo.com.br
18
Criando sistemas embarcados
com Linux
Introduo
Pr-requisitos
Conhecimentos necessrios
Equipamento necessrios
Linux
Verso 2.6.12.5:
~ 189MB
~ 468 desenvolvedores
* A study of Linux kernel evolution, Oded Koren, ACM SIGOPS Operating Systems Review, Volume 40 , Issue 2, pag. 110-112
Criando Sistemas Embarcados com Linux da teoria prtica
Copyright 2007, Marcelo Barros de Almeida
Licena Creative Commons Attribution-ShareAlike 2.0
http://www.smar.com.br http://www.linuxabordo.com.br
20
Conhecimentos necessrios:
ferramentas
Emuladores
Qemu (x86/ARM/PPC/MIPS/Sparc)
Outros
Programar em C obrigatrio
Bnus track:
Java
Criando Sistemas Embarcados com Linux da teoria prtica
Copyright 2007, Marcelo Barros de Almeida
Licena Creative Commons Attribution-ShareAlike 2.0
http://www.smar.com.br http://www.linuxabordo.com.br
22
Conhecimentos necessrios:
eletrnica digital
Microcontroladores/Microprocessadores
Padres de memrias:
SDRAM
Flash
EEPROM
Outros:
Plataforma embarcada
Switches
Imagem: nbpfaus.net/~pfau/pictures/MyWorkstation.jpg
Criando Sistemas Embarcados com Linux da teoria prtica
Copyright 2007, Marcelo Barros de Almeida
Licena Creative Commons Attribution-ShareAlike 2.0
http://www.smar.com.br http://www.linuxabordo.com.br
24
Equipamentos necessrios:
plataforma embarcada
PC/104
Hardware proprietrio
Criando Sistemas Embarcados com Linux da teoria prtica
Copyright 2007, Marcelo Barros de Almeida
Licena Creative Commons Attribution-ShareAlike 2.0
http://www.smar.com.br http://www.linuxabordo.com.br
25
Alguns form-factors para
plataforma embarcada
http://www.linuxdevices.com/articles/AT2614444132.html
http://www.via.com.tw/en/products/mainboards/
Criando Sistemas Embarcados com Linux da teoria prtica
Copyright 2007, Marcelo Barros de Almeida
Licena Creative Commons Attribution-ShareAlike 2.0
http://www.smar.com.br http://www.linuxabordo.com.br
26
Exemplo de SBC:
Atmel NGW100
Layout da placa
GDB remoto
Criando Sistemas Embarcados com Linux da teoria prtica
Copyright 2007, Marcelo Barros de Almeida
Licena Creative Commons Attribution-ShareAlike 2.0
http://www.smar.com.br http://www.linuxabordo.com.br
29
Criando sistemas embarcados
com Linux
Introduo
Pr-requisitos
Fazendo escolhas
Conceitos
Criando dispositivos
Coldfire (Motorola)
PPC (Motorola/IBM/Apple)
MIPS (MIPS)
AVR/AVR32 (Atmel)
Suporte
Comercial x comunitrio
Criando Sistemas Embarcados com Linux da teoria prtica
Copyright 2007, Marcelo Barros de Almeida
Licena Creative Commons Attribution-ShareAlike 2.0
http://www.smar.com.br http://www.linuxabordo.com.br
31
Fazendo escolhas:
suporte a tempo real
Comercial:
MontaVista
Open source:
Qtopia
DirectFB
Matchbox
SDL
FLTK
MiniGUI
Nano-X (Microwindows)
Referncias: http://www.linuxdevices.com/articles/AT9202043619.html
http://www.linuxjournal.com/article/9403
Criando Sistemas Embarcados com Linux da teoria prtica
Copyright 2007, Marcelo Barros de Almeida
Licena Creative Commons Attribution-ShareAlike 2.0
http://www.smar.com.br http://www.linuxabordo.com.br
33
Fazendo escolhas:
interfaces grficas
Qtopia
Frame buffer
Linux
Qt/Embedded
Frame buffer x Xlib:
Criando Sistemas Embarcados com Linux da teoria prtica
Copyright 2007, Marcelo Barros de Almeida
Licena Creative Commons Attribution-ShareAlike 2.0
http://www.smar.com.br http://www.linuxabordo.com.br
34
Criando sistemas embarcados
Com tudo definido, hora de aprender novas lies:
Conceito 2: bootloader
Conceito 3: rootfs
Conceito 4: init
Criando Sistemas Embarcados com Linux da teoria prtica
Copyright 2007, Marcelo Barros de Almeida
Licena Creative Commons Attribution-ShareAlike 2.0
http://www.smar.com.br http://www.linuxabordo.com.br
35
Conceito 1: execuo em RAM
http://tree.celinuxforum.org/CelfPubWiki/KernelXIP
Criando Sistemas Embarcados com Linux da teoria prtica
Copyright 2007, Marcelo Barros de Almeida
Licena Creative Commons Attribution-ShareAlike 2.0
http://www.smar.com.br http://www.linuxabordo.com.br
36
Conceito 2: bootloader
Alguns exemplos:
O kernel est pronto, mas e o restante das aplicaes ? De onde elas sero
lidas ? Rootfs !
root=/dev/hda1
root=/dev/ram0 rootfstype=ramfs
root=/dev/mtdblock1 rootfstype=jffs2
O busybox pode ser uma boa alternativa para popular o rootfs, emulando vrios
aplicativos tradicionais do Linux. Pode usar a biblioteca uClibc, bem menor que a
glibc.
Criando Sistemas Embarcados com Linux da teoria prtica
Copyright 2007, Marcelo Barros de Almeida
Licena Creative Commons Attribution-ShareAlike 2.0
http://www.smar.com.br http://www.linuxabordo.com.br
38
Conceito 4: init
uClibc:
http://www.uclibc.org
Busybox
http://busybox.net/
Hurt me please
Ultra-violence
Nightmare
Target diferente, sem toolchain portado nem Linux para a CPU/placa (de preferncia
SoPC/FPGA)
Imagem: www.idsoftware.com/
Criando Sistemas Embarcados com Linux da teoria prtica
Copyright 2007, Marcelo Barros de Almeida
Licena Creative Commons Attribution-ShareAlike 2.0
http://www.smar.com.br http://www.linuxabordo.com.br
43
Criando um sistema Linux
para a NGW100 (AVR32)
Algumas facilidades:
Problemas:
Dificuldade de personalizao
Repetibilidade comprometida
http://code.google.com/p/avr32fs/wiki/MainPage
Criando Sistemas Embarcados com Linux da teoria prtica
Copyright 2007, Marcelo Barros de Almeida
Licena Creative Commons Attribution-ShareAlike 2.0
http://www.smar.com.br http://www.linuxabordo.com.br
45
Linux From Scratch e AVR32
Mudanas no Kernel:
[path_do_kernel]/arch/avr32/boards/atngw100/flash.c
Introduo
Pr-requisitos
buildroot: http://buildroot.uclibc.org/
Scratchbox: http://www.scratchbox.org/
Croostool: http://www.kegel.com/crosstool/
T2 Project: http://www.t2-project.org
Cross compiler
Rootfs
Linux kernel
ucdot: http://ucdot.org
Qemu: http://fabrice.bellard.free.fr/qemu/
Busybox: http://www.busybox.net/
avr32fs: http://code.google.com/p/avr32fs/wiki/MainPage