Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Eng.Dr.MarceloBarrosdeAlmeida
marcelobarrosalmeida@gmail.com
SmarEquipamentosIndustriaisLTDA
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br
Direitosdecpia
CrditosShareAlike2.0 Voclivrepara copiar,distribuir,apresentareexecutartrabalhos fazertrabalhosderivados fazerusocomercialdestetrabalho Sobasseguintescondies Crditos.Vocdevedarcrditoaoautororiginal. Compartilhedomesmomodo.Sevocalterar,mudar, ourealizartrabalhosusandoestecomobase,vocdeve redistribuirotrabalhosresultantesobumalicena idnticaaesta. Paraqualquerreusooudistribuiovocdevedeixarclaro ostermosdelicenadestetrabalho. Qualquerumadestascondiespodemserabandonadasse vocobtiverumapermissododetentordosdireitos autorais. Faausojustoeodireitosdosoutrosnoseroafetadosde formaalgumapelasrestriesacima. Textodalicena: http://creativecommons.org/licenses/bysa/2.0/legalcode
MarceloBarros?
Formao:
Atualmente:
smar
Detalhes: http://linuxabordo.com.br/wiki/index.php?title=Marcelo_Barros
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br
Criandosistemasembarcados comLinux
Introduo
Definiodesistemaembarcado
Oqueexatamentesignificasistemaembarcado?
DefiniodaWikipedia:umcomputadordepropsitoespecial,que completamenteencapsuladopelodispositivoquecontrola.
Definiomuitoabrangente.Algumasdicas:
Propsitoespecfico Microprocessado/Microcontrolado AplicaoemROM/Flash Restriesdeconsumooutamanho sofreqentes
?
5
Exemplosdesistemasembarcados comLinux
Telefonescelulares PDASharpZauroSLC3100
MultimdiaArchosPMA400 RoteadorLinksysWTR54G
TelefoneVoIPWiFiAcctonVM1188T
Thinclients
Relgio
Tablets
DVDs
Robs
MercadodeLinuxembarcado
QuaisSOstmsidousadospelasuaempresanosltimosdois anosemprojetosembarcados?
MercadodeLinuxembarcado
QuefontesdoLinuxforamusadosnoseusprojetos embarcados?
MercadodeLinuxembarcado
Vocpagariaporsuporte?
MercadodeLinuxembarcado
Queferramentasdedesenvolvimentovocesperausar?
10
MercadodeLinuxembarcado
Eapartelegaldoprojeto?
11
MercadodeLinuxembarcado
QuaisforamasCPUusadanosprojetos?
12
LinuxtradicionalxLinuxEmbarcado
GNUTradicional/SistemaLinux SistemaLinuxembarcado
Grficos, navegadorweb, servidordeweb. Implementaes muitomaisleves! Semferramentasde desenvolvimento.
ls,vi,wget,ssh,httpd,gcc...
libjpeg,libstdc++,libxml,libvorbis...
libjpeg,libstdc++,libxml,libvorbis...
uClibc
BibliotecaGNUC
Kernelcompletocoma maioriadascaractersticasecom KernelLinux driversparatodotipodehardware dePCdoplaneta!!
KernelLinux/uClinux(semMMU)
13
VantagensdeLinuxembarcado
Qualidadedocdigo Footprintrelativamentepequeno:
Usethesourcesyou must,Luke
Frum,listas,email,FAQs,exemplos,suportecomercial disponvel.
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br
14
CuidadoscomLinuxembarcado
15
LicenaseLinuxembarcado
GPL2:
Youmaycopyanddistributethe Program(oraworkbasedonit...)... providedthatyou...accompanyitwith thecompletecorrespondingmachine readablesourcecode...
LesserGPL(LGPL):
Weusethislicenseforcertainlibraries inordertopermitlinkingthoselibraries intononfreeprograms...Asan exception...youmayalsocombineor linka"workthatusestheLibrary"with theLibrarytoproduceaworkcontaining portionsoftheLibrary,anddistribute thatworkundertermsofyourchoice, providedthatthetermspermit modificationoftheworkforthe customer'sownuseandreverse engineeringfordebuggingsuch modifications...
KernelLinuxGPL2,mas...
Thiscopyrightdoes*not*coveruser programsthatusekernelservicesby normalsystemcallsthisismerely considerednormaluseofthekernel,and does*not*fallundertheheadingof "derivedwork"...(LinusTorvalds)
16
LicenaseLinuxembarcado
GPL3
Alternativas:
17
Criandosistemasembarcados comLinux
Introduo Prrequisitos
Crditos,agradecimentoselinks
18
Conhecimentosnecessrios: KernelLinux
Linux
AlgunsdetalhesdoLinux*:
Verso2.6.12.5:
*AstudyofLinuxkernelevolution,OdedKoren,ACMSIGOPSOperatingSystemsReview,Volume40,Issue2,pag.110112
19
Conhecimentosnecessrios: ferramentas
Compiladorescruzados(toolchains)
Emuladores
Qemu(x86/ARM/PPC/MIPS/Sparc) Especficos:Skyeye/Softgun/SWARM(ARM),Coldfireemulator
Outros
20
Conhecimentosnecessrios: programao
21
Conhecimentosnecessrios: eletrnicadigital
Microcontroladores/Microprocessadores Padresdememrias:
Timers,PWM,SPI,I2C,interrupes,RTCs,MMUs,etc
22
Equipamentosnecessrios
Imagem:nbpfaus.net/~pfau/pictures/MyWorkstation.jpg
23
Equipamentosnecessrios: plataformaembarcada
Principaisalternativasparaaplataformaembarcada
24
Algunsformfactorspara plataformaembarcada
http://www.linuxdevices.com/articles/AT2614444132.html http://www.via.com.tw/en/products/mainboards/
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br
25
ExemplodeSBC: AtmelNGW100
ProcessadorAtmelAVR32,32AP7000,industrial, 150Mhzmximoe210DMIPS. Doiscontroladoresethernet(34Mbits/sde performance) 32MBdeSDRAM,16MBdeflash(8MBparalelae8MB serial) ConectorparacartesSD/MMC USB,JTAG,conectoresparaexpanso ToolchainekernelLinuxcomsuporteatodosos perifricos Esquemas,gerberfiles
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br
26
Equipamentosnecessrios: plataformaembarcada
Hardwareproprietriopodetercustoelevado:
Avaliarsempreocustodoinvestimento
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br
27
Equipamentosnecessrios: debug
JTAG(JointTestActionGroup)
BDM(BackgroundDebugMode)
FuncionalidadeICEsimilaraoJTAG,empregadopelaMotorola
Emuladores(viahardware)
Equipamentosqueemulamoprocessador/microcontrolador.Bemmaiscaros.
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br
GDBremoto
28
Criandosistemasembarcados comLinux
Crditos,agradecimentoselinks
29
Fazendoescolhas: plataformaesuporte
Vriasplataformasexistentes:
Suporte
Comercialxcomunitrio
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br
30
Fazendoescolhas: suporteatemporeal
Suporteatemporeal:
Comercial:
Opensource:
31
Fazendoescolhas: interfacesgrficas
Vriassistemasgrficos:
32
Fazendoescolhas: interfacesgrficas
FramebufferxXlib:
33
Criandosistemasembarcados
Comtudodefinido,horadeaprendernovaslies: Conceito1:execuoemRAM Conceito2:bootloader Conceito3:rootfs Conceito4:init
34
Conceito1:execuoemRAM
Oprograma,armazenadoemflash,emgeraldescompactadoparaa RAM.Depois,aexecuotransferidaparaaRAM.
AtenocomprocessadoressemMMU:
ExecutandodiretodaflashcomXIP(eXecutionInPlace):
http://tree.celinuxforum.org/CelfPubWiki/KernelXIP
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br
35
Conceito2:bootloader
36
Conceito3:rootfs
37
Conceito4:init
Apsmontarorootfs,okernelexecutaoprograma init(ououtro,casosejausadooparmetroinit=). Tambmprocuraporlinuxrc. Esteoprimeiroprogramaexecutadoeirfazera inicializaodosistema.Oarquivo/etc/inittabdas diretrizesdecomoistodeveserfeito. MquinascomversocompletadoLinuxpodemter esquemasdiferentesquandosousadosmdulos externosqueprecisamsercarregadosantesdo rootfs (esquemakernel initrd rootfs).
Arquivo initrd
mount
Diretrio rootfs
38
Criandoumsistemamnimo comsasheLinux
OquenecessrionumsistemamnimocomLinux?
Sistemamnimocomsash
39
Criandoumsistemamnimo comsasheLinux
Compileumkernelmonoltico Crieumarquivovazioeformateocomoext2
ddif=/dev/zeroof=rootfs.imgbz=1024kcount=1 /sbin/mkfs.ext2i1024m0Frootfs.img
Arquivo initrd
Monteestearquivonumdiretriotemporrio
mountolooprootfs.imgrootfs
mount
Populeestediretrio:
Diretrio rootfs
Executeoqemuparainiciaraemulao
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br
40
Criandoumsistemamnimo comsasheLinux:melhorias
uClibc:
Busybox
DeveseterumtoolchainconstrudocomauClibc
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br
41
Emteoria,noexistediferena entreteoriaeprtica...
I'mtooyoungtodie
Targetigual(x86),toolchainekernelprontosparaaCPU/placa
Hey,nottoorough
Targetdiferente,toolchainekernelprontosparaaCPU/placa(kits)
Hurtmeplease
Targetdiferente,toolchainportado,portedokernelparaa CPUmascomnovosperifricosnaplaca(drivers)
Imagem:www.idsoftware.com/
Ultraviolence
Targetdiferente,toolchaineportedoLinuxquaseprontos(CPUparecida)
Nightmare
Targetdiferente,semtoolchainportadonemLinuxparaaCPU/placa(depreferncia SoPC/FPGA)
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br
42
CriandoumsistemaLinux paraaNGW100(AVR32)
Algumasfacilidades:
Problemas:
43
LinuxFromScratcheAVR32
LinuxFromScratch(LFS):
passoapassodaconstruodosistemaLinux.Merece umalidapelomenosumavez.
AutomatedLinuxFromScratch(ALFS)
avr32fs(AVR32fromscratch)
44
LinuxFromScratcheAVR32
Oavr32fsdivididoemtrsestgios:
Obootloader(uboot)usadoparaagravaodanova imagem
vriasopes:TFTP,serial,cartosd,NFS funesparaapagamentoegravaonaflash
45
JFFS2eoparticionamentodaflash
JournallingFlashFileSystemverso2
/dev/mtdblock0(128k) uboot
MudanasnoKernel:
/dev/mtdblock1(8000k) kernel+rootfs
[path_do_kernel]/arch/avr32/boards/atngw100/flash.c osdispositivosdeblocksocriadosnapartida
/dev/mtdblock2(64k) parmetrosdouboot
Flash(NOR)paralela daNGW100
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br
46
GravandoanovaimagemviaUBoot
Comandos:
protectoff0x200000x7effff erase0x200000x7effff setenvipaddr10.0.0.1 setenvtftpip10.0.0.100 tftp0x90000000avr32linuximagebasic.jffs2.img cp.b0x900000000x200000x23e014<<<<====tamanho!! protectonall setbootargs'console=ttyS0root=/dev/mtdblock1 rootfstype=jffs2';fsload;bootm boot
47
Criandosistemasembarcados comLinux
48
Agradecimentos
49
Projetosdeconstruodosistema
Vriasplataformassuportadas(x86,ARM,PPC,MIPS...)
CriandoSistemasEmbarcadoscomLinuxdateoriaprtica Copyright2007,MarceloBarrosdeAlmeida LicenaCreativeCommonsAttributionShareAlike2.0 http://www.smar.com.brhttp://www.linuxabordo.com.br
50
Links
51