un programme d’application intégré dans un système d’exploitation.
Caractéristiques
Ciblé :
Domaine d’action limité aux fonctions de l’application
Fiable et sécurisé :
Fiabilité importante pour un fonctionnement autonome :
Le système de freinage d’une voiture ne doit pas tomber en panne lors d’une demande de freinage.
Le régulateur de vitesse ne doit pas se bloquer sur une vitesse supérieure à la vitesse autorisée.
Dans certains cas l’intervention humaine est même impossible (satellite, ...).
Pas de Bug autorisé sur ces systèmes embarqués.
Maintenable dans le temps :
Un logiciel "classique" est maintenu pendant un certains temps, d’où la nécessité de changer ou de mettre à jour le logiciel.
Un logiciel embarqué doit être maintenu tant que l’application est utilisée.
Spécifique :
L’interface homme-machine n’est pas l’interface habituelle, mais une interface spécifique définie par les besoins de l’appareil (boutons poussoirs, écran LCD, écran tactile, ...).
Cette interface nécessite des drivers et des librairies spécifiques adaptées au matériel utilisé.
Optimisé :
Logiciel implémenté sur un système avec des ressources réduites (processeur, taille mémoire) ⇒ adaptation de ce logiciel aux ressources disponibles.
Le développement pour les systèmes standard n'est pas adapté aux systèmes avec des faibles ressources.
Code optimisé à la capacité mémoire et à la vitesse du processeur, toujours en privilégiant la fiabilité et la sécurité
Augmentation de la capacité mémoire ou de la vitesse du processeur ⇒ augmentation du prix et de la consommation.
Privilégier l’efficacité aux gadgets inutiles
L’empreinte mémoire est la taille mémoire occupée par le système.
Pour des questions de consommation, de coût et éventuellement d’encombrement, l’empreinte mémoire est souvent optimisée au minimum.
Le langage le plus utilisé reste le langage C, éventuellement C++, car il reste proche du matériel.
Les contraintes de l’empreinte mémoire peuvent obliger à utiliser des options d’optimisation du code :
-O1, -O2, -O3 ou bien -Os pour optimiser la taille du code avec le compilateur gcc (GNU)