Firmware is the low-level software stored in non-volatile memory that provides the control, monitoring and data-handling logic for a hardware device. It sits between the physical hardware and higher-level software, initialising components, exposing device functions and often forming the only software a simple device runs. Firmware is typically tightly coupled to specific hardware and is updated through controlled mechanisms such as over-the-air updates. It is foundational to embedded systems, peripherals and connected devices.
Overview
- Firmware provides the persistent, device-specific logic that brings hardware to life: initialising peripherals, managing power, exposing functions and, in simple devices, constituting the entire software stack. It is stored in flash, ROM or other non-volatile memory so it survives power cycles.
- Because it is tightly coupled to particular hardware, firmware bridges the gap between bare silicon and any operating system or application that runs above it, and is a frequent target of security hardening and update governance.
Key aspects
- The bootloader is the first code to execute, initialising the system and optionally validating and loading newer firmware images.
- Device drivers within firmware translate generic requests into hardware-specific register operations.
- Hardware abstraction layers let higher software interact with components without knowing their electrical details.
- Secure and signed update mechanisms protect integrity and allow defect and vulnerability remediation in the field.
Applications
- Microcontrollers and embedded controllers in appliances, vehicles and industrial equipment.
- Peripherals such as storage drives, network cards and printers.
- Internet-of-things devices requiring remote update and management.
- Battery management, sensor and actuator controllers.