S5PV210-iROM-ApplicationNote-Preliminary的分析

S5PV210-iROM-ApplicationNote-Preliminary文件的分析

                                                                                                                                          ---参考朱有鹏大讲坛信息


1、210的启动方式的优势点:

S5PV210-iROM-ApplicationNote-Preliminary的分析_第1张图片

(1)降低BOM成本,因为IROM可以使SOC从各种外设启动,因此可以省下

一块bootROM(专门用来启动ROM,一般是NorFLASH)

(2)支持各种校验类型的nand

(3)可以在不使用编程器的情况下使用一种外部存储器运行程序来给

另一种外部存储器编程烧录,这样生产时就不用额外购买专用编程器了

降低了量产的成本。



2、210的启动流程概述

S5PV210-iROM-ApplicationNote-Preliminary的分析_第2张图片

(1)CPU上电后先从内部IROM读取预先设置的代码(BL0)执行

这一段代码IROM代码首先做了一些基本的初始化。

这一段代码IROM是不能负责初始化DRAM,因此这段代码只能初始化SOC内部的东西

我们可以通过OMPIN的硬件跳线可以更改板子的启动模式,然后从相应的存储器去读取

第一部分启动代码(BL1,大小为16KB)到内部SRAM。

(2)从IRAM运行刚从上一步读取来的BL1(16KB),然后执行,

BL1负责初始化NANDFLASH等外部的(硬盘类的物质),然后跳转到BL2

(3)从IRAM运行BL2,BL2初始化DRAM,然后将OS读取到DRAM中,然后可以启动操作系统。


3、BL0里面的代码主要做了啥事情?

S5PV210-iROM-ApplicationNote-Preliminary的分析_第3张图片

1、关闭看门狗

2、初始化指令Cache

3、初始化栈和堆(汇编)

4、初始化块设备的复制函数device copy function

14页的代码有相应的地址存放着,用来读取8BIT的ECC校验。

分别读取不同的外部存储器。

5、初始化PLL锁相环和设置SOC系统时钟

6、复制BL1到内部SRAM储存器

7、检查非常多的检验和到BL1

8、看是不是安全启动?

9、跳转到BL1去执行。


4、210的完整的启动流程

S5PV210-iROM-ApplicationNote-Preliminary的分析_第4张图片

1、第一部分BL0

(1)IROM的开始启动,也就是所谓的BL0的启动,接着就是关闭看门狗,初始化Cache,

如果没有进入休眠的模式的话,那么就初始化栈和堆,目的就是要使用C语言了,也就是前面

不能使用C语言,前面的都要使用汇编进行编写。

(2)初始化系统的控制:

设置时钟的分辨率,也就是设置时钟的PLL和设置时钟(好像这里有一个很牛逼的名字叫做设备树)

设置源时钟源

(3)判断OM pin

其中有很多种的启动方式,SSD,NAND,ONENAND,NORFLASH,SD,USB

当校验成功,判断是否进入安全的模式,


2、第二部分BL1

其中的过程跟BL0的过程是相同的,然后过了一段时间就到了BL2的情况。


5、最后的启动的方法

S5PV210-iROM-ApplicationNote-Preliminary的分析_第5张图片

(1)检查通道0是否有程序,如果有的话,那么就直接执行通道0的程序

(2)如果通道1没有程序的话,那么就尝试UART的启动的方式

(3)UART的方式不行的话,那么就只能进行USB的方式了。




你可能感兴趣的:(嵌入式:裸机开发)