O'que é firmware?


{getToc} $title={Índice}

O que é firmware?

Firmware ou software embarcado é um programa gravado em uma memoria não volátil, resumidamente é um software destinado a um hardware.

O termo "embarcado" se refere justamente a um firmware embutido em um dispositivo de hardware, como por exemplo:

  • Smartphone
  • Televisores 
  • Computadores
  • Relógio digital
  • Entre outros ...

Podemos deduzir que o firmware é a parte lógica de um dispositivo, é o "cérebro" da placa, uma inteligência programada que define as ações e controla todo o conjunto de hardware atribuído a ele.

Como desenvolver um firmware

Para desenvolver um firmware, primeiramente deve-se ter conhecimento em alguma linguagem de programação com suporte a sistemas embarcados, como por exemplo:

  • C
  • C++
  • Verilog
  • Entre outros ...
Aprender linguagens de baixo nível é essencial para ter o controle total do hardware, porem, hoje em dia o firmware dos dispositivos estão cada vez mais abstraídos para o desenvolvedor de software embarcado, sendo assim temos mais opções como java, micropython , etc.

Após dominar uma linguagem de programação, é fundamental ter conhecimento sobre o hardware onde deseja embarcar o software, seja ele um microcontrolador, microprocessador, FPGA ...

Iniciante em sistemas embarcados

A área de sistemas embarcados é muito complexa, requer conhecimento diversos em programação e analises de hardware, para quem deseja iniciar na área de desenvolvimento de sistemas embarcados segue um guia dos principais tópicos que devem ser estudados.

  1. Linguagem de programação com suporte a sistemas embarcados.
  2. Compiladores (sistema de compilação, diferença compiladores, ...).
  3. Sistemas operacionais (Conceitos de SO, FreeRTOS e outros SO).
  4. Ferramentas de controle de versões (git).
  5. Ferramentas de depuração.
  6. Habituar-se a ler datasheet.
  7. Entendimento de Hardware.
O estudo e a pratica constante te levarão a ser um profissional capacitado na área. 

Bruno Lima

Engenheiro de computação atuando em desenvolvimento de sistemas embarcados (Firmware) com microcontroladores e processadores (Linux Embarcado). Contribuidor de projetos públicos e fóruns de c/c++. linkedin github

Postar um comentário

Deixe seu comentário ou sua sugestão!

Postagem Anterior Próxima Postagem

Formulário de contato