2017-04-04 1 views
4

Je crée ma propre distribution Linux. Le développement va bien, mais j'ai du mal à comprendre la différence entre l'adresse de chargement du noyau et le point d'entrée. Pour que le noyau soit chargé par uBoot, je pense que l'adresse mémoire où le noyau est chargé sera toujours la même que celle où l'entrée (le point de départ) du noyau serait quand elle est exécutée (démarrée).Différence entre l'adresse de chargement du noyau et le point d'entrée

Mais je suppose que parce que ce sont deux valeurs séparées qui ne doivent pas toujours être les mêmes, il y a une raison pour qu'elles soient séparées.

Pourriez-vous s'il vous plaît expliquer la différence entre les deux pour moi?

Je suis encore nouveau dans le développement du noyau, donc c'est probablement une question du premier jour.

Merci de votre aide!

Thomas

+1

Voir http://stackoverflow.com/questions/31725605/building-kernel-uimage-using-loadaddr – sawdust

Répondre

4

Adresse de chargement est l'emplacement où la RAM est à copier l'image binaire du noyau. Point d'entrée est l'emplacement du fichier binaire copié à exécuter par uboot pour démarrer le noyau.

Si la RAM est mis en correspondance à 80.000.000 et le noyau commande bootm CHARGE ADRESSE est 80008000. décompressez le uImage de l'emplacement de l'image copiée à 80.008.000 adresse et appelle le point d'entrée du noyau (peut être la même adresse: 80008000) pour exécuter le noyau .