ARM启动顺序
iROM(也叫BL0)的作用:
初始化系统时钟,设置看门狗,初始化栈和堆
加载BL1
BL1的作用:
初始化RAM , 关闭Cache , 设置栈
加载BL2
BL2的作用:
初始化其它外设
加载OS内核
按照三星《S5PV210_UM_REV1.1》手册上说明的启动流程为:
S5PV210上电将从IROM(interal ROM)处执行固化的启动代码,它对时钟等初始化、对启动设备进行判断,
并从启动设备中复制BL1(最大16KB)到IRAM(0xd002_0000处,其中0xd002_0010之前的16个字节储存的BL1的校验信息和BL1尺寸)中,并对BL1进行校验,校验OK转入BL1进行执行;
首先解释一下我认为的BL0、BL1、BL2:
(1)BL0:是指S5PV210的IROM中固化的启动代码;
(2)BL1:是指在IRAM自动从外扩存储器(nand /sd/usb)中拷贝的uboot.bin二进制文件的头最大16K代码;
(3)BL2:是指在代码重定向后在内存中执行的的UBOOT的完整代码;
(4)三者之间关系是:(Interal ROM固话代码)BL0将BL1(bootloader的前16kB)加载到iRAM;BL1然后在iRAM(SRAM)中运行将BL2(其实整个bootloader)加载到SDRAM(DDR);BL2加载内核;BL就是bootloader的简写;