Je ne suis pas de nouvelles de chargeur de démarrage et système de SW, mais je ne sais pas l'origine de la raison pour laquelle le programme général commence à 0x8000
. Je connais déjà l'adresse 0x8000
a été utilisé comme adresse de départ dans la normale programme C/C++.
La taille minimale du chargeur de démarrage pour un programme général de prendre jusqu'à 0x8000
? Ou est le minimum de la taille du bloc de ROM qui devrait être alloué pour le bootloader de 32 ko? Ou est-il une autre raison?
Je voudrais savoir à ce sujet, historiquement et logiquement, et à partir d'une adresse virtuelle de point de vue.
J'apprécie tous, de votre temps et de votre aide à ce sujet. Pour rendre la question plus clairement, la question est d'adressage virtuel pas avec la physique.
J'ai fondamentalement d'accord avec la R de l'avis de la mémoire physique de l'adresse de point de vue.
Sans dire un système spécifique qui est diversifié, par exemple linux (même sur android), le général RTOS (noyau, et les autres, et surtout le BRAS de linker l'article), elles utilisent l'adresse 0x8000 comme adresse de départ sur le programme en général. de telles nommé comme crt_begin.o, le crt.o, etc situé à 0x0 avec chargeur existent dans ce domaine.
Donc je suppose que la taille minimale du chargeur de démarrage pour le programme général est de 32 ko compte tenu de la taille du bloc si il serait situé à la BootROM en temps de démarrage(démarrage à froid).
Ummm, Mais je ne suis pas sûr...