Firmware
Firmware is the software written specifically to run on a particular piece of hardware and stored permanently inside it — neither quite 'hardware' nor the kind of app you double-click. The name captures its in-between nature: it is soft (it's code, and can be rewritten) yet firm (it lives in the device's flash, survives power-off, and rarely changes). Think of the printed safety card in an aircraft seat pocket: it's information, like software, but it ships welded into the product and isn't something the passenger swaps out daily.
On a microcontroller the firmware is the whole show — there's usually no operating system underneath, so your code talks directly to registers that switch pins, start timers, and read sensors. It boots from address zero the instant power arrives and loops forever. Updating it means 'flashing' new code over USB, a debugger, or over-the-air; a botched update can 'brick' the device, which is why critical systems keep a tiny bootloader that can always recover. Your router, SSD, earbuds, and washing machine all run firmware you never see.
The line between firmware and ordinary software is fuzzy and getting fuzzier: modern firmware can be megabytes and updated weekly. The useful distinction is that firmware is bound to specific hardware and stored in non-volatile memory on the device itself.