Embedded software is computer software that is written to control embedded systems, which are machines or devices with a specific purpose (in contrast to a a general-purpose computer). Embedded software is specialized for the particular hardware that it runs on. Frequently, embedded software has time and memory constraints. The term "embedded software" is used interchangeably with firmware.
Manufacturers build embedded software into a variety of systems, such as the electronics of cars, telephones, modems, robots, appliances, toys, security systems, pacemakers, televisions and set-top boxes, and digital watches.
The complexity of embedded software varies based on the application. Some software is very simple, such as a lighting control program that runs on an 8-bit microcontroller, requiring only a few kilobytes of memory. Other embedded software is complex, such as the embedded software written for automotive subsystems, airplane subsystems, missiles, and process control systems.