| In computing, firmware is a computer program that is embedded in a hardware device, for example a microcontroller. It can also be provided on flash ROMs or as a binary image file that can be uploaded onto existing hardware by a user.
As its name suggests, firmware is somewhere between hardware and software. Like software, it is a computer program which is executed by a microprocessor or a microcontroller. But it is also tightly linked to a piece of hardware, and has little meaning outside of it.
The term "firmware" was originally used for micro-programs written for microsequencers such as AMD29xx. Later on, it was coined to indicate a functional replacement for hardware on low-cost microprocessors.
Firmware has evolved to mean the programmable content of a hardware device, which can consist of machine language instructions for a processor, or configuration settings for a fixed-function device, gate array or programmable logic device.
A common feature of firmware is that it can be updated post-manufacturing, either electronically, or by replacing a storage medium such as a socketed memory chip.
Firmware may expose an externally accessible interface. For example, in some modem implementations the firmware is not directly accessible, but is part of a combination of hardware and firmware that responds to commands from the host system.
Firmware has traditionally been stored in ROM, however cost and performance requirements have driven component vendors to adopt various replacements, including non-volatile media such as EEPROM and Flash, or SRAM solutions, such as the firmware loaded by an operating system device driver, as described below.
|