SDRAM引入
SDRAM:Synchronous Dynamic Random Access Memory,同步动态随机存储器
DDR 就是DDR ADRAM
DDR SDRAM是Double Data Rate SDRAM的缩写
SDRAM通过地址总线和数据总线接口(总线接口)与SoC通信。
SDRAM的特性(容量大、价格低、掉电易失性、随机读写、总线式访问)
SDRAM/DDR都属于动态内存(相对于静态内存SRAM),都需要先运行一段初始化代码来初始化才能使用
不像SRAM开机上电后就可以直接运行。
类似于SDRAM和SRAM的区别的,还有NorFlash和NandFlash(硬盘)这两个
数据手册了解一下
数据手册:《K4T1G164QE》
《NT5TU64M16GG-DDR2-1G-G-R18-Consumer》
K4T1G164QE:
K表示三星产品,4表示是DRAM,T表示产品号码,1G表示容量(1Gb,等于128MB,我们开发板X210上一共用了4片相同的内存,所以总容量是128×4=512MB)16表示单芯片是16位宽的,4表示是4bank,
SDRAM初始化
S5PV210共有2个内存端口(就好象有2个内存插槽)
再结合查阅数据手册中内存映射部分,可知:两个内存端口分别叫DRAM0和DRAM1:
DRAM0:内存地址范围:0x20000000~0x3FFFFFFF(512MB),对应引脚是Xm1xxxx
DRAM1: 内存地址范围:0x40000000~0x7FFFFFFF(1024MB),对应引脚是Xm2xxxx
结论:
1、整个210最多支持内存为1.5GB
2、210最多支持1.5GB内存,但是实际开发板不一定要这么多,譬如我们X210开发板就只有512MB内存,连接方法是在DRAM0端口分布256MB,在DRAM1端口分布了256MB
3、X210开发板上内存合法地址是:0x20000000~0x2FFFFFFF(256MB) + 0x40000000~0x4FFFFFFF(256MB)。当板子上DDR初始化完成之后,这些地址都是可以使用的;如果使用了其他地址譬如0x30004000就是死路一条。
原理图中每个DDR端口都由3类总线构成:地址总线(Xmn_ADDR0~XMnADDR13共14根地址总线) + 控制总线(中间部分,自己看原理图) + 数据总线(Xmn_DATA0~XMnDATA31共32根数据线)
分析:从数据总线的位数可以看出,我们用的是32位的(物理)内存。
原理图中画出4片内存芯片的一页
X210开发板共使用了4片内存(每片1Gb=128MB,共512MB),每片内存的数据总线都是16位的(单芯片是16位内存)。
如何由16位内存得到32位内存呢?可以使用并联方法。
在原理图上横向的2颗内存芯片就是并联连接的。并联时地址总线接法一样,但是数据总线要加起来。这样连接相当于在逻辑上可以把这2颗内存芯片看成是一个(这一个芯片是32位的,接在Xm1端口上)。
汇编初始化SDRAM详解
基于重定位代码开始编写
link.lds 重定位代码修改了,
内存合法地址是:0x20000000~0x2FFFFFFF(256MB) + 0x40000000~0x4FFFFFFF(256MB)
start.S 增加调用sdram_asm_init 实现SDRAM初始化
添加了
SDRAM初始化使用一个函数sdram_asm_init,函数在sdram_init.S文件中实现,是一个汇编函数。
强调:汇编实现的函数在返回时需要明确使用返回指令(mov pc, lr)
步初始化DDR2
具体怎么样初始化需要看文档
总结:DDR配置过程比较复杂,基本上是按照DDR控制器的时序要求来做的,其中很多参数要结合DDR芯片本身的参数来定,还有些参数是时序参数,要去详细计算。所以DDR配置非常繁琐、细致、专业。所以我们对DDR初始化的态度就是:学会这种思路和方法,结合文档和代码能看懂,会算一些常见的参数即可。
重定位代码到SDRAM中
DRAM初始化之后,实际上重定位代码过程和之前重定位到SRAM中完全相同。
总结
SDRAM 是一种外部外设
DDR 就是DDR ADRAM,需要先运行一段代码进行初始化才能使用
X210开发板连接方法是在DRAM0端口分布256MB,在DRAM1端口分布了256MB
X210开发板上内存合法地址是:0x20000000~0x2FFFFFFF(256MB) + 0x40000000~0x4FFFFFFF(256MB)
两个16位的内存并联为一个32位内存,就和X210的接口对应了
816MB =128MB
128MB4 = 512MBMB
这就是X210上的512MB SDRAM
首先理解引脚是怎么连接的,然后具体的内存空间是怎么样对齐和使用的,最后自己实操实现重定位SRAM
学习记录,侵权联系删除。
来源:朱老师物联网大课堂