Cours # 1 ELE784 - Ordinateurs et programmation système 3
Amorçage d’un système
ROM code
•Initialise quelques composantes essentielles du CPU :
Horloge, Mémoire-interne, Périphériques de base
•Cherche un dispositif contenant un BootLoader valide.
•Charge le BootLoader trouvé en mémoire-interne :
•Pour finir, le ROM code se retire du système.
BootLoader
Le CPU « saute » à une
adresse bien précise de
la ROM
L’environnement du CPU est très
variable, d’un système à un autre
•Fait le gros de l’initialisation du système :
•Bus, cache et Mémoire externe
•Principaux périphériques du système
•Interruptions, …
•Charge et décompresse l’OS en mémoire
•Son travail fait, le BootLoader disparait du système
•Linux RedBoot, Yamon, Grub, LILO, U-Boot, …
ROM-interne assez petite
(initialisée par le fabricant)
U-Boot
Linux + (ARM, PowerPC)
NAND, NOR
SD Flash
1.3 - Démarrage sur un système embarqué
Cours # 2 5ELE674 – Systèmes embarqués avancés
Amorçage d’un système
Boot
Loader
Système
fonctionnel Noyau Init Système
prêt
RootFS
Monte
Initialise
paramètres
de
démarrage
•Finalise l’initialisation tel
que le MMU (virtualisation
de la mémoire), …
•Récupère, décompresse et
installe le RootFS.
•Exécute « linuxrc », démarre
les pilotes et les Daemons.
•Démarre la 1ière tâche : INIT
•Le 1er RootFS provient d’un fichier « initrd »
Système de fichier « initramfs »
chargé dans un « RAM Disk »
•Ce RootFS contient :
•Fichiers des modules et pilotes du système
•Fichiers des librairies et de configurations
•Outils, logiciels, …
•Surtout, le RootFS permet la « virtualisation » du
système voir les composantes du système
comme des « fichiers virtuels »
1
2
3
4
1.4 - Partie OS de l’amorçage
Cours # 2 6ELE674 – Systèmes embarqués avancés