|  
    
Les composants du micrologiciel varient en fonction de l'appareil sur lequel il est exécuté, mais incluent généralement :
  
 1. Chargeur de démarrage : Il s'agit du premier morceau de code exécuté à la mise sous tension de l'appareil. Ses principales responsabilités comprennent : 
  
 * Initialisation du matériel : Configuration du processeur, de la mémoire et des périphériques.  
 * Chargement du firmware principal : Localisation et chargement du système d'exploitation ou du code d'application à partir du stockage (mémoire flash, ROM, etc.).  
 * Effectuer des autotests : Vérification des défauts matériels.  
 * Gestion des mises à jour : Fournir des mécanismes de mise à jour du micrologiciel principal.  
  
 2. Système d'exploitation (OS) ou système d'exploitation en temps réel (RTOS) : De nombreuses implémentations de micrologiciels incluent un système d'exploitation léger ou RTOS pour gérer les ressources et les tâches. Ceci est plus courant dans les appareils complexes. Les appareils plus simples peuvent ignorer complètement ce composant. Le système d'exploitation/RTOS gère : 
  
 * Planification des tâches : Gérer l'exécution de différents modules logiciels.  
 * Gestion de la mémoire : Allocation et libération de mémoire pour les tâches.  
 * Communication inter-processus (IPC) : Permettre à différents modules logiciels de communiquer.  
 * Gestion des interruptions : Répondre aux interruptions matérielles.  
 * Pilotes de périphérique : Interfaçage avec les composants matériels.  
  
 3. Code de candidature : Il s’agit de la fonctionnalité principale de l’appareil. Il effectue les tâches spécifiques pour lesquelles l'appareil est conçu. Les exemples incluent : 
  
 * Algorithmes de contrôle : Dans les systèmes embarqués, contrôlant des moteurs, des capteurs ou d’autres actionneurs.  
 * Routines de l'interface utilisateur (UI) : Gérer les entrées utilisateur et afficher la sortie sur un écran ou une autre interface.  
 * Protocoles réseau : Communiquer avec d'autres appareils sur un réseau.  
 * Traitement et stockage des données : Collecte, traitement et stockage des données.  
  
 4. Pilotes de périphérique : Il s'agit de modules logiciels qui servent d'interfaces entre le firmware et les composants matériels de l'appareil. Ils fournissent des fonctions pour accéder et contrôler du matériel spécifique, telles que : 
  
 * Contrôleurs de mémoire : Accéder à différents types de mémoire.  
 * Pilotes périphériques : Contrôler les périphériques tels que les capteurs, les écrans et les interfaces de communication (UART, SPI, I2C, USB, etc.).  
 * Contrôleurs d'interface réseau (NIC) : Permettre la communication sur les réseaux.  
  
  
 5. Bibliothèques et utilitaires : Il s'agit de modules de code pré-écrits qui fournissent des fonctions communes, telles que : 
  
 * Fonctions mathématiques : Effectuer des calculs.  
 * Manipulation de chaînes : Travailler avec des chaînes de texte.  
 * Structures de données : Organisation et gestion des données.  
  
  
 Essentiellement, le micrologiciel est un système en couches. Le chargeur de démarrage initialise le matériel et charge le système d'exploitation/RTOS (le cas échéant), qui gère ensuite l'exécution du code de l'application et interagit avec le matériel via les pilotes de périphérique. Les bibliothèques et les utilitaires fournissent des fonctions de support à toutes les couches. Les composants spécifiques et leur complexité dépendent fortement des fonctionnalités et des capacités du périphérique cible.
 
 |