arduino - tdc 2011
TRANSCRIPT
![Page 1: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/1.jpg)
Firmware, esse ilustre desconhecidoMarcelo Castellani – mindaslab.com
![Page 2: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/2.jpg)
Sobre o que falaremos aquiDesenvolvimento de firmware e oportunidades
profissionais
Mostrar que Arduino não é apenas um hobby e, diferente do que eu já ouvi, não é “perda de tempo”
![Page 3: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/3.jpg)
O que é um firmware?Em eletrônica e computação, Firmware é o
conjunto de instruções operacionais programadas diretamente no hardware de um equipamento eletrônico. É armazenado permanentemente num circuito integrado (chip) de memória de hardware, como uma ROM, PROM, EPROM ou ainda EEPROM e memória flash, no momento da fabricação do componente.
http://pt.wikipedia.org/wiki/Firmware
![Page 4: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/4.jpg)
E onde encontro um
firmware?(em todo lugar?)
![Page 5: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/5.jpg)
![Page 6: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/6.jpg)
![Page 7: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/7.jpg)
![Page 8: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/8.jpg)
![Page 9: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/9.jpg)
![Page 10: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/10.jpg)
![Page 11: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/11.jpg)
Firmware está em todo lugar!
Acredite, em todo lugar MESMO.
![Page 12: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/12.jpg)
E quem desenvolve isso?Engenheiros e técnicos eletrônicos
Analistas de sistemas e afins
![Page 13: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/13.jpg)
E isso dá dinheiro?Sim. Segundo diversas pesquisas um
desenvolvedor Sênior de firmware possui um salário superior a desenvolvedores Sênior em outras especialidades.
![Page 14: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/14.jpg)
www.itjobswatch.co.uk
Average salary33000
34000
35000
36000
37000
38000
3900038750
35000
FirmwareOthers
![Page 15: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/15.jpg)
www.indeed.com
![Page 16: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/16.jpg)
E por que pagam mais?
Lei da oferta e da procura
![Page 17: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/17.jpg)
![Page 18: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/18.jpg)
![Page 19: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/19.jpg)
![Page 20: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/20.jpg)
![Page 21: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/21.jpg)
Mas é tão complicado assim?Não é fácil, mas o que é fácil quando o assunto
é desenvolvimento de software?
Existem boas IDEs e ferramentas que facilitam a vida
A maior parte das IDEs pagas possuem assistentes e ferramentas que facilitam muito a vida do desenvolver
![Page 22: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/22.jpg)
Configurador TCP/IP µVision
![Page 23: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/23.jpg)
Simulador de HW do µVision
![Page 24: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/24.jpg)
JTAGs
![Page 25: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/25.jpg)
Debug
![Page 26: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/26.jpg)
Ok, e agora?O Que fazer?
![Page 27: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/27.jpg)
Primeiro: hardware
![Page 28: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/28.jpg)
Segundo: ambiente
![Page 29: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/29.jpg)
Terceiro: escrever o FW
![Page 30: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/30.jpg)
Conceitos básicosTodo firmware deve ter um “código de
inicialização”, chamado por alguns de boot loader, por outros de startup, que é o responsável por iniciar o hardware (processador) e executar a função de entrada do firmware (geralmente main())
Geralmente os firmwares possuem um “loader”, ou seja, um código independente capaz de atualizar o código principal.
![Page 31: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/31.jpg)
Loader
Loader Firmware
![Page 32: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/32.jpg)
ConceitosUm firmware deve ser altamente tolerante a
falhas e ter alta disponibilidade. Imagine o firmware de um sistema de freios ABS ou de uma máquina que emite radiação (aparelho de Raios-X)
Um firmware deve executar para sempre e ser robusto suficiente para continuar funcionando. Quando você precisou reiniciar o seu controle remoto por que ele estava consumindo muita memória?
![Page 33: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/33.jpg)
ConceitosHardware possui pouca memória e recursos
limitados. Otimização é uma palavra chave.
A legislação de muitos Países hoje exige baixo consumo de energia, desligar recursos de processador não usados pode ajudar a economizar energia.
Ler datasheets de componentes é importante. Conhecer o ambiente que irá trabalhar sempre é fundamental.
![Page 34: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/34.jpg)
Mão na massa?Não, não vamos escrever um firmware agora,
mas sim entender melhor tudo isso, na prática.
![Page 35: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/35.jpg)
![Page 36: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/36.jpg)
Atmega328p
![Page 37: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/37.jpg)
![Page 38: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/38.jpg)
![Page 39: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/39.jpg)
Aplicação
![Page 40: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/40.jpg)
Sem firmware o hardware não é e não faz nada.
Ok, pode ser um peso de papel, ou um enfeite, ou uma obra de arte futurista... Coisas mil....
![Page 41: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/41.jpg)
![Page 42: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/42.jpg)
ResumãoSe você gosta de desenvolver hardware deve
considerar ser um desenvolvedor de firmware;
Existe um mercado grande por aí, com salários interessantes;
C, um pouco de Assembly e eletrônica são conhecimentos importantes;
Cada vez mais empresas desenvolverão hardware, e cada vez mais desenvolvedores de firmware serão necessários.
![Page 43: Arduino - TDC 2011](https://reader031.vdocuments.net/reader031/viewer/2022013105/55b6cb9cbb61ebfd468b46e1/html5/thumbnails/43.jpg)