启动基石(stepping stone)技术介绍
Posted 正在起飞的蜗牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了启动基石(stepping stone)技术介绍相关的知识,希望对你有一定的参考价值。
1、设备启动的难点
1.1、存储介质的划分
1.1.1、RAM(随机存储器)
RAM是随机存储器,可以和CPU直接总线式连接,掉电就丢失数据,分为SRAM和DRAM。
(1)SRAM是静态随机存储器,不需要初始化就可以使用,DRAM是动态随机存储器,需要初始化才能使用;
(2)SRAM单位容量价格高,容量做不大;DRAM的单位价格低,可以做的比较大,现在常用的大内存读书DRAM的;
1.1.2、ROM(只读存储器)
(1)只读存储器不能上电直接用,需要先初始化,但是掉电不丢失数据;
(2)现在常见的ROM包括硬盘、FLASH等,其实都是可以读和写的,只是写的速度慢或者很麻烦;
(3)Flash分为NandFlash和NorFlash,其中NandFlash价格低,需要初始化,不能和CPU总线式连接;NorFlash价格高,不需要初始化,可以和CPU总线式连接;
1.2、启动的条件
(1)首先得有启动代码,启动代码必须要保存在掉电不丢失的ROM中;
(2)启动代码要能运行去初始化硬件,但是代码又不能在ROM中运行,必须在RAM中运行;
(3)代码的保存和运行在不同的存储介质中,这就产生了一个矛盾:硬件要代码先运行去初始化才能用,可硬件不能用就没法读取代码和运行代码;
(4)NorFlash是比较特殊的存储介质,即不需要初始化又可以和CPU总线式连接,于是NorFlash就可以当做启动介质。把代码保存在NorFlash中,上电先运行NorFlash中的代码,这些代码负责去初始化其他硬件(主要是DDR),然后代码就可以在DDR中运行;
(5)NorFlash价格高,容量小,只能当做启动介质,不能作为系统运行的内存,而且NorFlash的不能直接写。单片机可以用NorFlash做内存,这叫片上运行,因为单片机的程序都很小,NorFlash就足够;
2、S5PV210的启动过程
参考博客:《S5PV210的启动过程详解》。
3、传统的设备启动方式
(1)从上面的介绍可知,设备要启动需要NorFlash或者有NorFlash类似功能的存储介质,即可以保存数据又可以运行数据;
(2)之前的Soc是不带存储介质的,存储介质都需要外接,所以开发板需要额外接一块NorFlash去保存启动代码。常见的个人电脑就是bios启动,需要接一块bios芯片,本质就是NorFlash芯片。
(3)外接一块NorFlash芯片就是成本,但是外接的NorFlash容量要求不大,只是用来存储启动代码,相当于四两拨千斤的作用;
4、stepping stone技术介绍
4.1、技术发展
(1)技术发展越来越规范化。之前不同的存储芯片厂家可能有不同的标准,导致存储芯片的初始化各不相同,CPU的生产厂商不能提前固化存储器初始化的代码。现在存储芯片都有标准的协议,
比如SD卡协议、SPI协议等,不同存储厂商生产的存储芯片都是按照统一标准生产,这样初始化的代码都是通用的,生产CPU的厂商就可以提前把存储芯片的初始化代码内置到Soc里;
(2)芯片的发展趋向于单芯片方案。就是一颗芯片能自带所有功能,包括把内存、外存等集成到Soc内部;
(3)芯片的集成度更高,可以把更多的器件放到Soc内部,包括小容量的IRAM和IROM;
4.2、stepping stone技术
(1)在Soc内部集成小容量的IRAM和IROM。IRAM实质上是SRAM,不需要初始化就可以运行代码;IROM实质上是NorFlash,不需要初始化就可以读取代码。IRAM和IROM就临时充当系统的内存和外存,
运行代码去初始化硬件;
(2)IROM里保存的代码,一部分是Soc内部初始化的,一部分是不同存储介质的初始化代码。在我们启动Soc时,通过引脚的高低电平告诉Soc当前外接的外存是何种存储介质,然后Soc就会在从IROM
中读取代码在IRAM中运行,初始化外接的外存。
(3)S5PV210的启动就是stepping stone技术的具体应用,结合起来理解。
5、stepping stone技术的优势
(1)因为在IROM中固化了不同存储介质的初始化代码,所以之前不能做启动介质的NandFlash等也可以做启动介质,Soc可以在启动的时候去完成初始化;
(2)使用芯片的厂家更省成本,不用再外接一块NorFlash去做启动介质;
以上是关于启动基石(stepping stone)技术介绍的主要内容,如果未能解决你的问题,请参考以下文章