Il software incorporato è simile al firmware, poiché di solito hanno la stessa funzione. Quest’ultimo, tuttavia, è un tipo speciale di software incorporato che è scritto in una memoria non volatile (come ROM o EPROM), che non può essere facilmente modificata – da qui il nome “fermo” – e viene utilizzato principalmente per l’esecuzione o l’avvio del dispositivo. Al contrario, il software incorporato è usato per il funzionamento complessivo del dispositivo.
Il software incorporato può essere molto semplice, come quello usato per il controllo dell’illuminazione nelle case, e può girare su un microcontrollore a 8 bit con pochi kilobyte di memoria, oppure può essere abbastanza complesso come il software che gestisce tutti i componenti elettronici di una moderna auto intelligente, completo di controlli climatici, crociera automatica e rilevamento delle collisioni, così come il controllo della navigazione. Complessi software incorporati si possono trovare anche nei sistemi avionici degli aerei, nei sistemi fly-by-wire molto complessi usati negli aerei da combattimento e persino nei sistemi di guida dei missili.
La principale differenza tra il software incorporato e il software applicativo è che il primo è di solito legato a un dispositivo specifico, che serve come il sistema operativo stesso, con restrizioni legate alle specifiche di quel dispositivo, quindi gli aggiornamenti e le aggiunte sono strettamente controllati, mentre il software applicativo fornisce la funzionalità in un computer e gira sopra un sistema operativo completo, quindi ha meno restrizioni in termini di risorse.
.