首页 理论教育ARM嵌入式系统S5PV210启动流程

ARM嵌入式系统S5PV210启动流程

【摘要】:S5PV210是三星公司推出的一款基于Cortex-A8架构的高性能应用处理器,其启动过程由BL0、BL1和BL23部分代码实现,其中BL0在出厂时已经被固化到64 KB的iROM中。S5PV210的启动过程如图4.3所示。图4.3S5PV210的启动流程S5PV210上电后首先执行BL0,该段代码主要的工作序列如下所示:关看门狗时钟。检查是否是安全模式启动,如果是则验证BL1完整性。BL2实际上是整个BootLoader的主体部分,因此它需要完成更多的初始化工作,例如初始化网卡、Flash等,之后BL2读取操作系统镜像到内存中运行。

S5PV210是三星公司推出的一款基于Cortex-A8架构的高性能应用处理器,其启动过程由BL0、BL1和BL2(BL为BootLoader的简称)3部分代码实现,其中BL0在出厂时已经被固化到64 KB的iROM中。S5PV210的启动过程如图4.3所示。

图4.3 S5PV210的启动流程

S5PV210上电后首先执行BL0,该段代码主要的工作序列如下所示:

(1)关看门狗时钟。

(2)初始化指令cache。

(3)初始化栈、堆。

(4)初始化块设备复制函数。(www.chuimin.cn)

(5)初始化PLL及设置系统时钟。

(6)根据OM引脚设置,从相应启动介质复制BL1到片内SRAM的0xD002_0000地址处(其中0xD002_0010之前的16个字节存储的是BL1的校验信息和BL1的大小),并检查BL1的checksum信息,如果检查失败,IROM将自动偿试第二次启动(从SD/MMC channel 2启动)。

(7)检查是否是安全模式启动,如果是则验证BL1完整性。

(8)跳转到BL1起始地址处。

从图4-3中可以看到,BL1的大小只有16 KB,因而一般情况下BL1负责完成的工作较少。BL1被执行后首先初始化系统时钟、内存、串口等,然后将BL2代码拷贝到Internal SRAM的BL2区中并跳转执行。从图中可以看到SRAM的BL2区的大小有80 KB,但很多情况下BL2代码的大小远远超过80 KB,所以将BL2代码拷贝到SRAM中意义不大。更好的做法是直接将BL2拷贝到容量更大的内存中,不过在拷贝之前一定要先初始化好系统时钟和内存。

BL2实际上是整个BootLoader的主体部分,因此它需要完成更多的初始化工作,例如初始化网卡、Flash等,之后BL2读取操作系统镜像到内存中运行。操作系统镜像的存放位置根据具体的开发平台而定,一般放到Flash上,也可以放到SD卡上。