Pensiamo al processore sul desktop. Tutto ciò che fa è eseguire le istruzioni della macchina e, di per sé, non è veramente preoccupato per "sistemi operativi" o "programmi".
Accendi il computer, il processore punta alla prima istruzione e inizia l'esecuzione.
Sul desktop, inizia l'esecuzione del "sistema operativo". Ma non c'è motivo per cui il processore non possa eseguire alcuna serie di istruzioni scelte. (Questo potrebbe non essere molto utile, dal momento che vorresti comunque visualizzare i risultati sullo schermo e che la funzionalità risieda nel sistema operativo.) Allo stesso tempo, se le istruzioni della tua macchina fossero costituite dai giusti codici operativi in modo che il processore potesse emettere la sequenza corretta di segnali per dipingere un'immagine sul monitor, tanto meglio. Nessun sistema operativo necessario.
I desktop fanno così tante cose che generalmente richiediamo l'astrazione di un sistema operativo. Ma alla base, tutto ciò che il processore fa è eseguire le istruzioni.
Lo stesso vale per il processore di macchine per coke e macchine da caffè. Tutto ciò che fa è eseguire le istruzioni.
Bene, scrivere le istruzioni della macchina bit per bit è noioso. Quindi, proprio come con i desktop, in genere scriviamo codice in C, che viene quindi compilato in codice macchina. Quel codice macchina viene caricato sul processore incorporato e viene eseguito.
I sistemi integrati fanno così poco che non hanno bisogno di sistemi operativi completi. Un microcontrollore potrebbe avere 8 o 16 pin sul chip, rispetto ai decine di pin presenti nel normale socket della CPU.
Quindi il flusso di lavoro è scrivere del codice (diciamo, in C), compilarlo sul tuo computer desktop. Quel compilatore genera il codice macchina per il chip incorporato. Quindi quel codice viene caricato sul microprocessore (e per farlo è necessario un hardware speciale). Quindi si alimenta il chip e inizia l'esecuzione delle istruzioni. Semplice!