Em eletrônica e computação, firmware é um termo comumente utilizado para designar os programas fixos, geralmente muito pequenas e / ou estruturas de dados que controlar internamente vários dispositivos electrónicos. Exemplos típicos de dispositivos com intervalo de firmware do usuário final de produtos como controles remotos e calculadoras, através de peças de computadores e dispositivos como discos rígidos, teclados, telas TFT ou cartões de memória, todo o caminho para a instrumentação científica e robótica industrial. dispositivos de consumo também mais complexo, tais como telefones celulares, câmeras digitais, sintetizadores, etc, contêm firmware para permitir o funcionamento básico do dispositivo, bem como implementar funções de nível superior.
Não há limites descritos entre firmware e software, pois ambos são muito soltos termos descritivos. No entanto, o firmware termo foi originalmente cunhado para comparação com o software de nível superior que poderá ser alterado sem a substituição de um componente de hardware, firmware e é geralmente envolvido com operações básicas de baixo nível, sem o qual um dispositivo seria totalmente não-funcional. Firmware é também um termo relativo, como a maioria dos dispositivos embutidos contêm firmware em mais de um nível. Subsistemas, tais como processadores, chips de memória flash, os controladores de comunicação, módulos LCD, e assim por diante, têm o seu próprio código de programa (geralmente fixo) e / ou microcódigo, considerado como “parte do hardware” do nível mais alto (s) do firmware.
firmware de baixo nível geralmente reside em uma estrutura de PLA ou em um CD (ou OTP / PROM), enquanto o firmware de nível superior (muitas vezes na fronteira com o software) tipicamente utiliza memória flash para permitir atualizações, pelo menos em dispositivos modernos. (As razões mais comuns para a atualização do firmware incluem corrigir bugs ou adicionar funcionalidades ao dispositivo Isso geralmente envolve o carregamento de um arquivo binário imagem fornecida pelo fabricante para o dispositivo, de acordo com um procedimento específico;. Este é, por vezes, destina-se a ser feita pelo usuário final .)
Assim, embora o alto nível de firmware (ou software) normalmente é armazenado como uma configuração de cargas, o firmware de baixo nível, em vez podem muitas vezes ser considerada como real de hardware em si. Por exemplo, o firmware antigo era frequentemente implementada como uma matriz de diodos semicondutores discretos. O equivalente moderno é uma matriz integrada de transistores de efeito de campo, onde 0’s e 1’s são representados por saber se um determinado componente na ROM e matrizes / ou PLA está presente ou não.