In computing, Firmware
consists of the fixed, usually rather small, programs that internally control various electronic devices. Typical examples of devices containing firmware range from end-user products such as remote controls or calculators, through computer parts and devices like hard disks, keyboards, TFT screens or memory cards, all the way to scientific instrumentation and industrial robotics. Also more complex consumer devices, such as mobile phones, digital cameras, synthesizers, etc., contain firmware to enable the device's basic operation as well as implementing higher-level functions.
No strict or well-defined boundaries separate firmware from software; both are loose descriptive terms. However, firmware is typically involved with very basic low-level operations in a device, without which the device would be completely non-functional. Firmware is also a relative term, as most embedded devices contain firmware at more than one level. Subsystems such as LCD modules, flash chips, communication controllers etc, have their own (usually fixed) program code and/or microcode, regarded as "part of the hardware" by the higher-level firmware.