1.硬件原理
2.数据手册
2.1.SDRAM引入
2.1.1、SDRAM:Syncronized Dynamic Ramdam Access Memory,同步动态随机存储器
DDR:DDR就是DDR SDRAM,是SDRAM的升级版。(DDR:double rate,双倍速度的SDRAM)
DDR有好多代:DDR1 DDR2 DDR3 DDR4 LPDDR
2.1.2、SDRAM的特性(容量大、价格低、掉电易失性、随机读写、总线式访问)
SDRAM/DDR都属于动态内存(相对于静态内存SRAM),都需要先运行一段初始化代码来初始化才能使用
不像SRAM开机上电后就可以直接运行。
类似于SDRAM和SRAM的区别的,还有NorFlash和NandFlash(硬盘)这两个。
正是因为硬件本身特性有限制,所以才导致启动代码比较怪异、比较复杂。而我们研究裸机是为了研究uboot,在uboot中就充分利用了硬件的各种特性,处理了硬件复杂性。
2.1.3、开发板上贴的内存芯片型号:N2TU1616GG-AC
SDRAM通过地址总线和数据总线接口(总线接口)与SoC通信。
开发板原理图上使用的是K4T1G164QQ,但是实际开发板上贴的不是这个,是另一款。但是这两款是完全兼容的,进行软件编程分析的时候完全可以参考K4T1G164QQ的文档。
全球做SDRAM的厂商不多,二线厂家做的产品参数都是向一线厂家(三星、KingSton)看齐,目的是兼容一线厂家的设计,然后让在意成本的厂商选择它的内存芯片替代一线厂家的内存芯片。SDRAM的这个市场特征就导致这个东西比较标准化,大部分时候细节参数官方(芯片原厂家)都会给你一个参考值。
K4T1G164QE:
K表示三星产品,4表示是DRAM,T表示产品号码,1G表示容量(1Gb,等于128MB,我们开发板X210上一共用了4片相同的内存,所以总容量是128×4=512MB)16表示单芯片是16位宽的,4表示是4bank,
三星官方的数据手册上其实没有芯片相关的参数设置信息,都是芯片选型与外观封装方面的信息,选型是给产品经理来看的,封装和电压等信息是给硬件工程师看的。软件工程师最关注的是工作参数信息,但是数据手册没有。
3.代码编写
4.参考资料
1. S5PV210之SDRAM初始化
2.S5PV210的内存分配研究分析
3.s5pv210——初始化SDRAM
4.《嵌入式Linux软硬件开发详解——基于S5PV210处理器》——2.2 DDR2 SDRAM芯片
6.s5pv210核心板原理图
7.X210CV3核心板简介.pdf