Field Guide · concept

Also known as: firmware

Firmware is low-level software loaded onto a device’s chip to control its hardware directly, sitting between the pure hardware and ordinary application programs.1

Microcontroller Firmware = the whole program Hardware General-purpose PC Applications Operating system Firmware (BIOS/UEFI) Hardware
Firmware always sits directly on the hardware. On a microcontroller there is nothing above it — the firmware is the entire program. On a full computer it is a thin foundation layer beneath the operating system and applications. Either way it lives in non-volatile flash and changes only by reflashing.

Overview

On a microcontroller there is no operating system, so the firmware is the whole program: it runs bare metal, owning the chip from the moment it powers on. On larger machines firmware is instead a thin layer — the BIOS/UEFI of a PC, the microcode in a disk drive — that boots the hardware and hands off to an operating system above it.

Firmware is stored in non-volatile flash memory so it survives a power cycle, and it is changed by reflashing the chip rather than by installing software the usual way. Because it runs so close to the metal, a bad firmware image can render a device unusable (“bricked”) until it is reflashed through a recovery path.

How it is loaded and updated

Getting firmware onto a chip, and replacing it later, follows a small set of paths:

Method When Note
In-system programming First flash, bring-up Via SWD/JTAG/SPI on a blank chip
Bootloader Routine updates A small resident loader accepts new images over USB/serial
Over-the-air Deployed IoT devices New image pushed over the network, then reflashed

Where it fits

Almost every embedded device runs firmware of some kind — from a thermostat to a Wi-Fi radio. Updating it means writing a new image to flash, which is why “firmware update” and “reflashing” describe the same act. The tiny radios whose signals fill the airwaves GopherTrunk listens to are all driven by firmware of this sort, and SDR dongles are no exception — the tuner and USB chips inside them run their own firmware, with the demodulation done in software on the host.

Sources

  1. Firmware — Wikipedia, on firmware’s role between hardware and software and its storage in flash. 

See also