处理器启动过程

1 处理器启动过程简介

处理器上电后,PC寄存器固化了一个默认值
PC默认值用于决定第一条执行的指令
第一条执行指令隶属于启动程序


2 启动程序(BootLoader)

系统上电后运行的第一个程序(Not Os)
根据运行阶段、体积和功能的不同分为三个部分 
BL0 - 固化于硬件中,用于初始化硬件,加载并运行BL1
BL1 - 存储于外部设备中,用于初始化主存,加载并运行BL2
BL2 - 存储于外部存储设备中,用于引导操作系统执行
3 S3C6410启动过程

4 S5PV210启动过程

4.1 启动过程简介

S5PV210使用的启动方式是:外接的大容量Nand + 外接大容量DRAM + SoC内置SRAM。

实际上210的启动还要更好玩一些,210内置了一块96KB大小的SRAM(叫iRAM),同时还有一块内置的64KB大小的NorFlash(叫iROM)。210的启动过程大致是: 
第一步:CPU上电后先从内部IROM中读取预先设置的代码(BL0),执行。这一段IROM代码首先做了一些基本的初始化(CPU时钟、关看门狗···)(这一段IROM代码是三星出厂前设置的,三星也不知道我们板子上将来接的是什么样的DRAM,因此这一段IROM是不能负责初始化外接的DRAM的,因此这一段代码只能初始化SoC内部的东西);然后这一段代码会判断我们选择的启动模式(我们通过硬件跳线可以更改板子的启动模式),然后从相应的外部存储器去读取第一部分启动代码(BL1,大小为16KB)到内部SRAM。 
第二步:从IRAM去运行刚上一步读取来的BL1(16KB),然后执行。BL1负责初始化NandFlash,然后将BL2读取到IRAM(剩余的80KB)然后运行。 
第三步:从IRAM运行BL2,BL2初始化DRAM,然后将OS读取到DRAM中,然后启动OS,启动过程结束。

通过以上分析可以发现只能运行最大为96KB的bootloader,以上只是三星官方推荐的启动方式,实际上并不一定采取这种启动方式。

4.2 S5PV210启动过程相关补充说明

210内部有iROM和iRAM,因此启动时分两个阶段:内部启动阶段和外部启动阶段。对于内部启动阶段各种S5PV210的开发板都是相同的,对于外部启动阶段,不同开发板会有不同。

IROM和IRAM 
S5PV210出厂时内置了64KB iROM和96KB iRAM。iROM中预先内置烧录了一些代码(称为iROM代码),iRAM属于SRAM(不需软件初始化,上电即可使用)。210启动时首先在内部运行iROM代码,然后由iROM代码开启外部启动流程。

为什么需要设计iROM和iRAM?答案是为了支持多种外部设备启动。

Second boot support 
When 1 st boot mode fails, SD/MMC boot will be tried through SD/MMC channel 2 with 4-bit data。 
当第一启动模式失败时,SD/MMC卡启动模式下将会从SD/MMC2通道尝试再次启动。这种二级启动是一种冗余设计。SoC中第一启动介质故障而导致不能启动时,可以从备用启动介质启动。我们做裸机实验时从SD2启动就是利用了这一设计特性。

使用IROM启动的好处 
1、降低BOM成本。因为iROM可以使SOC从各种外设启动,因此可以省下一块boot rom(专门用来启动的rom,一般是norflash)。 
2、支持各种校验类型的nand。 
3、可以在不使用编程器的情况下使用一种外部存储器运行程序来给另一种外部存储器编程烧录。这样生产时就不用额外购买专用编程器了,降低了量产成本。

BL0做了什么

关看门狗
初始化指令cache
初始化栈
初始化堆
初始化块设备复制函数device copy function
设置SoC时钟系统
复制BL1到内部IRAM(16KB)
检查BL1的校验和
跳转到BL1去执行
S5PV210的启动顺序(不优先选择Uart、USB启动)

先1st启动,通过OMpin选择启动介质
再2nd启动,从SD2
再Uart启动
再USB启动
X210开发板的启动方式选择

SoC通过OMpin来识别外部启动介质。

从SD0的eMMC启动:开发板收到默认就是从eMMC启动,内部预先烧录了android。

从SD2启动:可以使用外置SD卡从SD2通道启动,但这需要先破坏板载的eMMC中的android镜像。破坏方法见九鼎官方的裸机教程文档《x210v3开发板裸机教程.pdf》中2.5.2节(P19)。OMpin设置和SD0启动一样。

USB调试模式

总结:拨码开关设置我们只需动OM5即可,其他几个根本不需要碰。需要SD启动时OM5打到GND,需要USB启动时OM5打到VCC。
--------------------- 
作者:一万HOURS 
来源:CSDN 
原文:https://blog.csdn.net/qq_20233867/article/details/70670104 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值