44
Firmware, esse ilustre desconhecido Marcelo Castellani – mindaslab.com

Arduino - TDC 2011

Embed Size (px)

Citation preview

Page 1: Arduino - TDC 2011

Firmware, esse ilustre desconhecidoMarcelo Castellani – mindaslab.com

Page 2: Arduino - TDC 2011

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

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

E onde encontro um

firmware?(em todo lugar?)

Page 5: Arduino - TDC 2011
Page 6: Arduino - TDC 2011
Page 7: Arduino - TDC 2011
Page 8: Arduino - TDC 2011
Page 9: Arduino - TDC 2011
Page 10: Arduino - TDC 2011
Page 11: Arduino - TDC 2011

Firmware está em todo lugar!

Acredite, em todo lugar MESMO.

Page 12: Arduino - TDC 2011

E quem desenvolve isso?Engenheiros e técnicos eletrônicos

Analistas de sistemas e afins

Page 13: Arduino - TDC 2011

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

www.itjobswatch.co.uk

Average salary33000

34000

35000

36000

37000

38000

3900038750

35000

FirmwareOthers

Page 15: Arduino - TDC 2011

www.indeed.com

Page 16: Arduino - TDC 2011

E por que pagam mais?

Lei da oferta e da procura

Page 17: Arduino - TDC 2011
Page 18: Arduino - TDC 2011
Page 19: Arduino - TDC 2011
Page 20: Arduino - TDC 2011
Page 21: Arduino - TDC 2011

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

Configurador TCP/IP µVision

Page 23: Arduino - TDC 2011

Simulador de HW do µVision

Page 24: Arduino - TDC 2011

JTAGs

Page 25: Arduino - TDC 2011

Debug

Page 26: Arduino - TDC 2011

Ok, e agora?O Que fazer?

Page 27: Arduino - TDC 2011

Primeiro: hardware

Page 28: Arduino - TDC 2011

Segundo: ambiente

Page 29: Arduino - TDC 2011

Terceiro: escrever o FW

Page 30: Arduino - TDC 2011

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

Loader

Loader Firmware

Page 32: Arduino - TDC 2011

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

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

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
Page 36: Arduino - TDC 2011

Atmega328p

Page 37: Arduino - TDC 2011
Page 38: Arduino - TDC 2011
Page 39: Arduino - TDC 2011

Aplicação

Page 40: Arduino - TDC 2011

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
Page 42: Arduino - TDC 2011

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
Page 44: Arduino - TDC 2011

[email protected]

@mfcastellani