I'm not new to the bootloader and system SW, but I do not know the origin of the reason why the general program starts with 0x8000 . I already know that the address 0x8000 used as the starting address in a regular C / C ++ program.
Does the minimum bootloader size for a common program up to 0x8000 ? Or the minimum ROM block size to be assigned to a 32KB bootloader? Or is there another reason?
I would like to know about this, historically or logically, and in terms of a virtual address.
I appreciate everything, your time and help with this. To make the question more understandable, the question is connected with a virtual address not with a physical one.
I basically agree with R's point of view in terms of physical memory.
Not to mention a specific different system, for example linux (even in android), general RTOS (the kernel and others, especially the ARM linker), they all use the 0x8000 address as a common starting address program. such as crt_begin.o, crt.o etc. located at 0x0 with the bootloader exist in this area.
Therefore, I assume that the minimum bootloader size for the general program is 32 KB, taking into account the block size, if it is in BootROM at boot time (cold boot).
Ummm, But I'm not sure ...
c ++ c linker bootloader
KJK Mar 13 '12 at 6:32 2012-03-13 06:32
source share