Я не новичок в загрузчике и системном SW, но я не знаю происхождения причины, по которой общая программа начинается с 0x8000
. Я уже знаю, что адрес 0x8000
использовался как начальный адрес в обычной программе C/С++.
Соответствует ли минимальный размер загрузчика для общей программы до 0x8000
? Или минимальный размер блока ROM, который должен быть назначен загрузчику 32KB? Или есть еще одна причина?
Я хотел бы знать об этом, исторически или логически, и с точки зрения виртуального адреса.
Я ценю все, ваше время и помощь в этом. Чтобы вопрос стал более понятным, вопрос связан с виртуальным адресом не с физическим.
Я в основном согласен с мнением R с точки зрения физической памяти.
Не говоря о конкретной различной системе, например linux (даже в android), общем RTOS (ядро и другие, особенно ARM-компоновщик), все они используют адрес 0x8000 в качестве общей программы начального адреса. такие как crt_begin.o, crt.o и т.д., расположенные в 0x0 с загрузчиком, существуют в этой области.
Поэтому я предполагаю, что минимальный размер загрузчика для общей программы составляет 32 КБ с учетом размера блока, если он будет находиться в BootROM во время загрузки (холодная загрузка).
Уммм, Но я не уверен...