Je suis confus en clarifiant mes concepts concernant ces trois questions
pourquoi avons-nous besoin d'un chargeur de programme secondaire?
dans quelle mémoire est-il chargé et déplacé?
pour autant que je sache via la lecture de liens is .. SPL est requis lorsque la mémoire interne du système ne peut pas contenir complètement uboot; nous devons donc initialiser la mémoire à l'aide d'un morceau de code minimal appelé SPL . Est-ce que SPL se déplace ou est-ce seulement uboot qui se rapporte?
Laissez-moi l'expliquer en prenant OMAP plateforme à titre d'exemple (juste pour fournir un contexte réel plutôt que simplement de la théorie ou des connaissances communes). Regardez quelques faits pour commencer:
Donc, ce premier chargeur de démarrage est U-Boot SPL; et chargeur de démarrage de deuxième étape est U-Boot normal _ (ou U-Boot proprement dit). Pour être clair: SPL signifie chargeur de programme secondaire. Ce qui signifie que le code ROM est le première chose qui charge (et exécute) un autre programme et SPL est le deuxième chose qui charge (et exécute) un autre programme. Donc, généralement, la séquence de démarrage est la suivante: ROM code -> SPL -> u-boot -> noyau. Et en réalité, il ressemble beaucoup au démarrage sur PC, à savoir: BIOS -> MBR -> GRUB -> kernel.
METTRE À JOUR
Pour clarifier les choses absolument, voici le tableau décrivant toutes les étapes de la séquence d'amorçage (pour clarifier les incertitudes possibles concernant la terminologie utilisée):
+--------+----------------+----------------+----------+
| Boot | Terminology #1 | Terminology #2 | Actual |
| stage | | | program |
| number | | | name |
+--------+----------------+----------------+----------+
| 1 | Primary | - | ROM code |
| | Program | | |
| | Loader | | |
| | | | |
| 2 | Secondary | 1st stage | u-boot |
| | Program | bootloader | SPL |
| | Loader (SPL) | | |
| | | | |
| 3 | - | 2nd stage | u-boot |
| | | bootloader | |
| | | | |
| 4 | - | - | kernel |
| | | | |
+--------+----------------+----------------+----------+
J'utilise donc simplement bootloader comme synonyme de U-Boot, et Program Loader comme terme commun pour tout programme chargeant un autre programme.
Voir également:
[2] TPL: chargement SPL SPL - Denx
Il n'y a aucun besoin théorique pour un chargeur de programme secondaire. Cependant, il y a souvent des raisons pragmatiques pour en avoir un. Deux sur le haut de ma tête. Tout d'abord, la modularité et la facilité de développement.
Deuxièmement, le processus de démarrage du matériel peut être trop restrictif. Il se peut que le chargeur de livre se trouve dans un emplacement spécifique où l'espace disponible est insuffisant pour stocker l'intégralité du processus de démarrage. Le chargeur principal fait tout ce qui est nécessaire pour charger le processus de livre complet (SPL). Le chargeur principal, par exemple, peut être stocké dans ROM avec des limites de mémoire.