裸机:SDRAM引入

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
128MB
4 = 512MBMB
这就是X210上的512MB SDRAM
首先理解引脚是怎么连接的,然后具体的内存空间是怎么样对齐和使用的,最后自己实操实现重定位SRAM

学习记录,侵权联系删除。
来源:朱老师物联网大课堂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

li星野

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值