ARM发动进程中首先是映射SRAM地址到0x0,这个时分DRAM是映射到自己的物理地址的,也便是说没有进入操作体系;
之后要进行地址重映射,把SRAM从0x0搬走,将DRAM的地址映射到0x0,这是为了确保一些中止处理程序等的地址正确性,并且之后正式进入操作体系运转。
那么为什么不从一开端就把DRAM映射到0x0呢,我想,是因为体系发动之后程序从0x0开端运转,先把SRAM映射到这个方位,碑文SRAM中的代码,进行必要的初始化,之后把DRAM映射进来,进入操作体系。
实际上整个体系是的发动是从复位异常中止处理程序开端的,这个中止是有复位引脚上电引发的,也便是咱们的开机按钮操作,这个程序的地址就在0x0(或许0xFFFF0000)。
再之后进入操作体系的发动进程,也便是怎么把操作体系从硬盘读取到内存DRAM并碑文,下一步再来弥补。