7.S5PV210启动过程详解

7.1.启动涉及的内存和外存
(1)内存:SRAM即静态内存,缺点是容量小、价格高,一般是几十K或几百K;优点是不需要软件初始化直接上电就能使用。DRAM即动态内存,优点是容量大、价格低;缺点是上电后不能直接使用,需要软件初始化后才可以使用。
(2)单片机:内存需求量小,而且希望开发尽量简单,适合全部使用SRAM;嵌入式系统:内存需求量大,而且没有NorFlash等可启动介质;PC机:内存需求量大,而且软件复杂,不在乎DRAM的初始化开销,适合全部用DRAM。
(3)外存:NorFlash的缺点是容量小、价格高;优点是可以和CPU直接总线式相连,CPU上电后可以直接读取,所以一般做启动介质。NandFlash的优点是容量大、价格低;缺点是不能总线式访问,即不能一上电CPU直接读取,需要CPU先运行一些初始化软件,然后通过时序接口读写。
(4)PC机:很小容量的BIOS(NorFlash)+很大容量的硬盘(类似于NandFlash)+大容量的DRAM;单片机:很小容量的NorFlash+很小容量的SRAM;嵌入式系统:因为NorFlash很贵,现在的嵌入式系统倾向于不用NorFlash而是使用:外接大容量的Nand+外接大容量的DRAM+SoC内置SRAM。



7.2.S5PV210启动方式
(1)210内置了96KB大小的SRAM(叫iRAM)和64KB大小的NorFlash(叫iROM)。
(2)第1步:CPU上电后先从内部IROM中读取预先设置的代码(BL0)到IRAM中执行。该段IROM代码首先执行基本的初始化(CPU时钟、关看门狗、初始化块设备拷贝函数…)(该段IROM代码是三星出厂前设置的,三星也不知道我们板子上将来接的是什么样的DRAM和NanFlash,因此该段IROM代码不能负责初始化外接的DRAM和NandFlash的,则该段IROM代码只能初始化SoC内部的东西);然后该段代码会判断我们选择的启动模式(我们通过硬件跳线可更改板子的启动模式),然后从相应的外部存储器去读取第1部分启动代码(BL1,大小为16KB)到IRAM。
(3)第2步:从IRAM中去运行读取来的BL1(16KB),BL1负责初始化NandFlash,然后将BL2(剩余的80KB)读取到IRAM,然后运行。
(4)第3步:从IRAM中运行BL2,然后BL2负责初始化DRAM,然后将OS读取到DRAM中,然后启动OS,启动过程结束。



7.3.S5PV210启动过程概述
(1)210内部有iROM和iRAM,因此启动时分两个阶段:内部启动阶段和外部启动阶段。对于内部启动阶段各种S5PV210的开发板都是相同的,对于外部启动阶段,不同开发板会有不同。启动过程主要参考”S5PV210_iROM_ApplicationNote_Preliminary_20091126.pdf”。
(2)S5PV210出厂时内置了64KB的iROM和96KB的iRAM。iROM中预先内置烧录了一些代码(称为iROM代码),iRAM属于SRAM(不需软件初始化,上电即可使用)。210启动时首先在内部运行iROM代码,然后由iROM代码开启外部启动流程。设计iROM和iRAM的目的是为了支持多种外部设备启动。
(3)Second boot support:When 1 st boot mode fails, SD/MMC boot will be tried through SD/MMC channel 2 with 4-bit data
当第1启动模式失败时,SD/MMC卡启动模式下将会从SD/MMC2通道尝试再次启动。这种二级启动是一种冗余设计。SoC中第1启动介质故障而导致不能启动时,可以从备用启动介质启动。我们做裸机实验时从SD2启动就是利用了这一设计特性。
(4)使用iROM启动的好处:降低BOM成本。因为iROM可以使SOC从各种外设启动,因此可以省下一块boot rom(专门用来启动的ROM,一般是norflash);支持各种校验类型的nand;可以在不使用编程器的情况下使用一种外部存储器(譬如SD卡)运行程序来给另一种外部存储器(譬如NandFlash)编程烧录。这样生产时就不用额外购买专用编程器了,降低了量产成本。
(5)BL0做了什么:关看门狗;初始化指令cache;初始化栈;初始化堆;初始化块设备复制函数device copy function;设置SoC时钟系统;复制BL1到内部iRAM(16KB);检查BL1的校验和;跳转到BL1去执行。
(6)S5PV210的所有启动方式:先1st启动,通过OMpin选择启动介质;再2nd启动,从SD2启动;再Uart启动;再USB启动(见图1和图2和图3)。



7.4.在开发板上选择不同的启动方式
(1)SoC通过OMpin来识别外部启动介质,GEC210开发板中的NandFlash启动方式是first启动中选择启动介质,而SD卡启动方式是second启动中的MMC通道2启动的,即GEC210上的SD卡是接在MMC通道2上的(见图4和图5)。
(2)在GEC210开发板中可通过拨码开发选择从NandFlash启动或从SD卡启动两种启动方式。











相关文档

  • 淡斑美白零负担养颜食谱大推荐
  • 感谢朋友的话怎么说
  • 保加利亚为什么被称为玫瑰之国
  • 《我的童年》读后感综合8篇
  • 2020年内蒙古公务员面试热点解析
  • 多图上传遇到的图片顺序问题及解决
  • 销售顾问计划书范本
  • excel怎么把空白列删掉
  • 中学生个人自我介绍精选范文
  • github 坑爹的仓库初始化设置
  • 怎样防止脸上长斑
  • 使用gcc编译运行Hello World
  • 2020年中秋祝福语送领导
  • 工程管理暑期实习报告
  • 健康教育讲座学习总结范文
  • 算法速成笔记,在Github上三天超过60K+star!力压LeetCode只为面试
  • MyWorld
  • 在Mac上基于XAMPP本地多站点的配置
  • 如何用思维导图整理教材框架知识点
  • 成功励志名言个性签名
  • 小孩子学习英语方法
  • 用思维导图的方法破解学习困难症
  • 基于hadoop的图书推荐
  • 关于描写雷电的好句好段
  • error: use of deleted function
  • 简单的springboot+activiti工作流搭建与实现
  • 失明的小女孩——奇迹
  • 2019年成考、自考工作总结
  • 写父母的作文800字3篇
  • mysql常用函数实例总结---这篇文章好在有实例数据表,可直接上机使用【聚集函数、字符串、数值、时间日期处理等
  • 电脑版