S5PV210启动详解

S5PV210启动详解

1. 内存中的一些基本知识

  • 内存

    SRAM :静态内存 。特点容量小、成本高。优点是不需要软件初始化,上电立马能用。

    DRAM:动态内存。特点容量大、价格低。缺点是需要软件初始化,上电后不能直接使用

  • 外存

    Norflash:特点是容量小、价格高,优点是CPU可以直接和总线连接,CPU上电后可以直接读取,一般用作启动介质

    Nandflash:(跟硬盘一样):特点是容量大,价格低,缺点是不能总线式访问,也就是说不能上电CPU直接读取,需要CPU先运行一些初始化软件,然后通过时序接口读写

  • 单片机、嵌入式系统、PC机的选择

    单片机:很小容量的NorFlash + 很小容量的SRAM

    嵌入式系统:因为NorFlash很贵,现在很多嵌入式系统倾向于不用NorFlash,直接用:外接的大容量Nand + 外接大容量DRAM + SoC内置SRAM

    PC机:很小容量的BIOS(NorFlash)+ 很大容量的硬盘(类似于NandFlash)+ 大容量的DRAM

    S5PV210:外接的大容量Nand + 外接大容量DRAM + SoC内置SRAM。实际上210的启动方式更有意思。210内置了一块96KB大小的SRAM(iRAM),同时还有一块内置的64KB大小的Norflash(iROM)

2. 启动过程介绍

210的启动过程大致如下

  • 第一步:CPU上电后先从内部的iROM中读取预先设置的代码(BL0),执行。然后判断启动模式(USB/SD/emmc),然后从相应的外部存储器去读取第一部分启动代码BL1(16K),到内部的iRAM
  • 第二步:从iRAM(只有96K限制),去运行读取BL1并执行,BL1负责初始化NAND,并将BL2读取到iRAM剩余的80k。
  • 第三步:从iRAM运行BL2,BL2初始化DRAM,然后将OS读取到DRAM,然后启动OS,启动过程结束。

    这里写图片描述

3. 总结

(1)BL0:是指S5PV210的iROM中固化的启动代码

​ 作用:初始化Soc时钟系统

​ 关闭看门狗

​ 初始化堆和栈

​ 初始化指令cache

​ 初始化块设备复制函数

​ 加载BL1到内部SRAM

​ 检查BL1校验和

​ 跳转到BL1执行

(2)BL1:是批在iRAM自动从外扩存储器(nand/sd/usb)中拷贝的uboot.bin二进制文件的头最大16K代码

​作用:初始化RAM,关闭Cache,设置栈,加载BL2

(3)BL2:是指在代码重定向后在内存中执行的uboot的完整代码

作用:初始化其它外设,加载OS内核

(4)三者之间的关系:(Interal ROM固化代码)BL0将BL1(bootloader的前16KB–BL1)加载到iRAM;BL1然后在iRAM中运行将BL2(剩下的bootloader)加载到SDRAM;BL2加载内核,把OS在SDRAM中运行起来,最终OS是运行在SDRAM(内存)中的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值