SlideShare uma empresa Scribd logo
1 de 30
Desenvolvimento em
Linux Embarcado para
Dispositivos IoT
Fernando Luiz Cola
Emc Logic – fernando.cola@emc-logic.com
I – Inside Fábrica de Aplicativos – Uninove
Campus Memorial
18/11/2017
Sobre o palestrante
• Engenheiro Eletrônico – USP São Carlos
• 5 anos de atuação profissional em sistemas embarcados com foco em dispositivos com Linux
Embarcado
• 2 anos como Engenheiro de Aplicações da Toradex Brazil - Grande conhecimento da
indústria e realidade das equipes de desenvolvimento. Visita a mais de 300 empresas em
todo Brasil
• Proprietário da Emc Logic onde atua como desenvolvimento e consultoria em software e
tecnologias open source para sistemas embarcados
https://www.emc-logic.com/
http://blog.emc-logic.com/
O que define um sistema embarcado?
• Firmware
• Software
• Sistema Operacional
• Hardware
• Eletrônica
• Informática
O que é um sistema embarcado?
O que é um sistema embarcado?
O que é um sistema embarcado?
Interfaces muito comuns em sistemas embarcados
• I2C
• RS-232
• GPIO
• Jtag
Qual software ?
O que é um sistema embarcado?
https://adrenaline.uol.com.br/2011/10/18/9512/sandforce-
conserta-problema-de-firmware-em-ssds-sf-2200/
O que é um sistema
embarcado?
Um sistema embarcado é um sistema
computacional que inclui hardware e
software dedicados para uma aplicação
especifica.
Dicas de Material para Estudo de
Sistemas Embarcados
• https://www.embarcados.com.br/estrategias-de-desenvolvimento-chipset/
• https://www.embarcados.com.br/estrategias-de-desenvolvimento-
arquitetura-modular/
• https://www.embarcados.com.br/estrategias-de-desenvolvimento-
arquitetura-de-prateleira/
https://sergioprado.org/
http://cleitonbueno.com/
Relevância de Sistemas Embarcados
Relevância de Sistemas Embarcados
Internet das Coisas
Internet das Coisas
Smart Home
Linux
• > 20 Milhões de Linha de código
• C e Assembly
• Projeto maduro - 26 anos
• Licença GPLv2
• Apoiado por diversas empresas e
corporações – Intel, ARM, NXP,
AMD, IBM e etc
• Suporte a diversas Arquiteturas:
x86, PowerPC, ARM e etc
Estatísticas(fun!) sobre o Linux
https://www.linuxcounter.net/statistics/kernel
Exemplo de Device com Linux Embarcado
https://nest.com/therm
ostats/nest-learning-
thermostat/overview/
Hands-on
Hardware
• Processador NXP i.MX7
• Dual-Core ARM Cortex A7 1.0Ghz
• Co-processador ARM Cortex M4 200MHz
• 512MB RAM
• 512MB Flash
Módulo Toradex Colibri iMX7
Hardware
Placa Base Aster
Estrutura Linux Embarcado
Hardware
Bootloader
Linux Kernel
Bibliotecas
Serviços
Aplicações
Toolchain
Ferramentas de
desenvolvimento
Cross-Compilação
Host
x86
Target ARM
Customização Distribuição Linux
• Distribuição Personalizada com Yocto Project
• Baseada no recipe core-image-base
• Adicionado pacotes de software para Psdash
• python-psutil,python-flask
• https://github.com/ferlzc/psdash.git
Customização Distribuição Linux
• Gerenciamento de pacotes, software e
licenças
• Otimização para hardware
• Personalização
• Controle das versões e direção do
projeto
• Toolchain e SDKs
• Genérico e não otimizado
• Não há gerenciamento dos
softwares e licenças utilizadas
• Dependências externas
Distribuição Pronta vs Distribuição Personalizada
Estudando Python-Psdash
https://github.com/Jahaja/psdash
Licença domínio público CC0
Fork hands-on
https://github.com/ferlzc/psdash
Psdash depedências
Python 2.7
flask
jinja2
psutils
Psdash
netifaces
gevent
glob2
zerorpc
werkzeug
argparse
Sysfs
Front-End
Bootstrap
HTML
CSS
Psdash
js
Flask
Resultados - Dashboard
Resultados - Processos
Resultados - Network
Resultados – I/Os
Dúvidas ?
Obrigado!
Email
fernando.cola@emc-logic.com
Site
https://blog.emc-logic.com/

Mais conteúdo relacionado

Semelhante a Linux Embarcado para Dispositivos de IoT - Uninove 18/11/2017

Soi2011 partei
Soi2011 parteiSoi2011 partei
Soi2011 partei
paulocsm
 
RAD Studio XE8 - Delphi Tour 2015
RAD Studio XE8 - Delphi Tour 2015RAD Studio XE8 - Delphi Tour 2015
RAD Studio XE8 - Delphi Tour 2015
Fernando Rizzato
 
3b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e53886343b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e5388634
JADSON SANTOS
 
ReVir – Programabilidade em Redes Virtualizadas
ReVir – Programabilidade em Redes VirtualizadasReVir – Programabilidade em Redes Virtualizadas
ReVir – Programabilidade em Redes Virtualizadas
Wanderson Paim
 
Slides do treinamento Altera - Introdução a FPGA
Slides do treinamento Altera - Introdução a FPGASlides do treinamento Altera - Introdução a FPGA
Slides do treinamento Altera - Introdução a FPGA
andrecasp
 

Semelhante a Linux Embarcado para Dispositivos de IoT - Uninove 18/11/2017 (20)

Conceitos Iniciais LP I
Conceitos Iniciais LP IConceitos Iniciais LP I
Conceitos Iniciais LP I
 
Soi2011 partei
Soi2011 parteiSoi2011 partei
Soi2011 partei
 
RAD Studio XE8 - Delphi Tour 2015
RAD Studio XE8 - Delphi Tour 2015RAD Studio XE8 - Delphi Tour 2015
RAD Studio XE8 - Delphi Tour 2015
 
A Internet das coisas e a programação de micro controladores
A Internet das coisas e a programação de micro controladoresA Internet das coisas e a programação de micro controladores
A Internet das coisas e a programação de micro controladores
 
Python e suas aplicações
Python e suas aplicaçõesPython e suas aplicações
Python e suas aplicações
 
Arquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMGArquitetura de Computadores - Lecom - UFMG
Arquitetura de Computadores - Lecom - UFMG
 
IoT para Devs c#
IoT para Devs c#IoT para Devs c#
IoT para Devs c#
 
Linux Embarcado - O Sistema Operacional da Internet das Coisas
Linux Embarcado - O Sistema Operacional da Internet das CoisasLinux Embarcado - O Sistema Operacional da Internet das Coisas
Linux Embarcado - O Sistema Operacional da Internet das Coisas
 
ASP.NET vNext no MAC OS
ASP.NET vNext no MAC OSASP.NET vNext no MAC OS
ASP.NET vNext no MAC OS
 
Tendências e Oportunidades - Robótica
Tendências e Oportunidades - RobóticaTendências e Oportunidades - Robótica
Tendências e Oportunidades - Robótica
 
3b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e53886343b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e5388634
 
Redes2 aula02
Redes2 aula02Redes2 aula02
Redes2 aula02
 
Introdução à Computação
Introdução à ComputaçãoIntrodução à Computação
Introdução à Computação
 
Programabilidade em Redes Virtualizadas
Programabilidade em Redes VirtualizadasProgramabilidade em Redes Virtualizadas
Programabilidade em Redes Virtualizadas
 
ReVir – Programabilidade em Redes Virtualizadas
ReVir – Programabilidade em Redes VirtualizadasReVir – Programabilidade em Redes Virtualizadas
ReVir – Programabilidade em Redes Virtualizadas
 
Internet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouInternet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começou
 
ASP.NET Core com Linux, Docker e Azure
ASP.NET Core com Linux, Docker e AzureASP.NET Core com Linux, Docker e Azure
ASP.NET Core com Linux, Docker e Azure
 
Micropython - Python para microcontroladores
Micropython - Python para microcontroladoresMicropython - Python para microcontroladores
Micropython - Python para microcontroladores
 
Capítulo 04 - Infraestrutura de tecnologia da informação
Capítulo 04 - Infraestrutura de tecnologia da informaçãoCapítulo 04 - Infraestrutura de tecnologia da informação
Capítulo 04 - Infraestrutura de tecnologia da informação
 
Slides do treinamento Altera - Introdução a FPGA
Slides do treinamento Altera - Introdução a FPGASlides do treinamento Altera - Introdução a FPGA
Slides do treinamento Altera - Introdução a FPGA
 

Linux Embarcado para Dispositivos de IoT - Uninove 18/11/2017