Pensons au processeur de votre bureau. Tout ce qu'il fait, c'est exécuter les instructions de la machine, et par lui-même, ne se préoccupe pas vraiment des «systèmes d'exploitation» ou des «programmes».
Vous allumez votre ordinateur, le processeur pointe vers la première instruction et il commence à s'exécuter.
Sur votre bureau, il démarre l'exécution du "système d'exploitation". Mais il n'y a aucune raison pour que le processeur ne puisse pas exécuter un ensemble d'instructions que vous avez choisi. (Cela peut ne pas être très utile, car vous voudriez toujours afficher les résultats à l'écran, et cette fonctionnalité réside dans le système d'exploitation.) En même temps, si les instructions de votre machine se composaient des bons opcodes pour que le processeur produise la séquence correcte de signaux pour peindre une image sur le moniteur, tant mieux. Aucun système d'exploitation nécessaire.
Les ordinateurs de bureau font tellement de choses que nous avons généralement besoin de l'abstraction d'un système d'exploitation. Mais à la base, tout ce que fait le processeur est d'exécuter des instructions.
Idem pour le processeur dans les machines à coke et les machines à café. Tout ce qu'il fait, c'est exécuter des instructions.
Eh bien, écrire les instructions de la machine petit à petit est fastidieux. Ainsi, tout comme pour les bureaux, nous écrivons généralement du code en C, qui est ensuite compilé en code machine. Ce code machine est chargé sur le processeur intégré et il s'exécute.
Les systèmes embarqués font si peu qu'ils n'ont pas besoin de systèmes d'exploitation complets. Un microcontrôleur peut avoir 8 ou 16 broches sur la puce - par rapport à des dizaines de broches dans votre socket CPU habituel.
Le flux de travail consiste donc à écrire du code (par exemple, en C), à le compiler sur votre ordinateur de bureau. Ce compilateur génère du code machine pour la puce intégrée. Ensuite, ce code est chargé sur le microprocesseur (et vous avez besoin d'un matériel spécial pour ce faire.) Ensuite, vous alimentez la puce et elle commence à exécuter les instructions. Facile!