Eingebettete Software ist eine spezielle Programmierung in einem Chip oder in der Firmware eines eingebetteten Geräts, um dessen Funktionen zu steuern.
Hardwarehersteller verwenden eingebettete Software, um die Funktionen verschiedener Hardwaregeräte und -systeme zu steuern. Eingebettete Software steuert Gerätefunktionen auf die gleiche Weise, wie das Betriebssystem eines Computers die Funktion von Softwareanwendungen steuert. Fast jedes Gerät kann eingebettete Software enthalten – von so einfachen Geräten, dass man sich nicht vorstellen kann, dass sie von einem Computer gesteuert werden, wie Toaster und Glühbirnen, bis hin zu komplexen Verfolgungssystemen in Raketen.
Eingebettete Software wird verwendet, um die begrenzten, festgelegten Funktionen von Hardware-Geräten zu steuern, und benötigt im Allgemeinen keine Eingaben; sie wird in der Regel nicht direkt vom Benutzer bedient. Ihre Funktionen werden durch externe Steuerungen aktiviert, entweder durch externe Aktionen des Geräts selbst oder durch Remote-Eingaben. Das Gerät kann über Kommunikationsverbindungen zu anderen Geräten verfügen, um die Funktionalität zu gewährleisten oder falls das Gerät eingestellt, kalibriert oder diagnostiziert werden muss. Über diese Verbindungen kann auch versucht werden, ein eingebettetes System zu hacken.
Eingebettete Software variiert in ihrer Komplexität ebenso wie die Geräte, die sie steuern soll. Obwohl der Begriff oft austauschbar mit Firmware verwendet wird, ist eingebettete Software oft der einzige Computercode, der auf einem Stück Hardware läuft, während Firmware im Gegensatz dazu die Kontrolle an ein Betriebssystem weitergibt, das wiederum Programme startet und steuert.