七.ARM裸机学习之SDRAM
来源:互联网 发布:红帽系统yum源 编辑:程序博客网 时间:2024/05/29 16:14
一.SDRAM引入
SDRAM:Syncronized Dynamic Ramdam Access Memory,同步动态随机存储器
DDR:DDR就是DDR SDRAM,是SDRAM的升级版。(DDR:double rate,双倍速度的SDRAM)
DDR有好多代:DDR1 DDR2 DDR3 DDR4 LPDDR
SDRAM的特性(容量大、价格低、掉电易失性、随机读写、总线式访问)
SDRAM/DDR都属于动态内存(相对于静态内存SRAM),都需要先运行一段初始化代码来初始化才能使用,不像SRAM开机上电后就可以直接运行。
类似于SDRAM和SRAM的区别的,还有NorFlash和NandFlash(硬盘)这两个。
正是因为硬件本身特性有限制,所以才导致启动代码比较怪异、比较复杂。而我们研究裸机是为了研究uboot,在uboot中就充分利用了硬件的各种特性,处理了硬件复杂性。
二.210之SDRAM
S5PV210共有2个内存端口(就好象有2个内存插槽)。再结合查阅数据手册中内存映射部分,可知:
两个内存端口分别叫DRAM0和DRAM1:
DRAM0:内存地址范围:0x20000000~0x3FFFFFFF(512MB),对应引脚是Xm1xxxx
DRAM1: 内存地址范围:0x40000000~0x7FFFFFFF(1024MB),对应引脚是Xm2xxxx
结论:
(1)整个210最多支持内存为1.5GB,如果给210更多的内存CPU就无法识别。
(2)210最多支持1.5GB内存,但是实际开发板不一定要这么多,譬如我们X210开发板就只有512MB内存,连接方法是在DRAM0端口分布256MB,在DRAM1端口分布了256MB。
(3)由2可知,X210开发板上内存合法地址是:0x20000000~0x2FFFFFFF(256MB) + 0x40000000~0x4FFFFFFF(256MB)。当板子上DDR初始化完成之后,这些地址都是可以使用的;如果使用了其他地址譬如0x30004000就是死路一条。
原理图中每个DDR端口都由3类总线构成:地址总线(Xmn_ADDR0~XMnADDR13共14根地址总线) + 控制总线(中间部分,自己看原理图) + 数据总线(Xmn_DATA0~XMnDATA31共32根数据线)
分析:从数据总线的位数可以看出,我们用的是32位的(物理)内存。
三.数据手册中SDRAM相关部分
看数据手册《NT5TU64M16GG-DDR2-1G-G-R18-Consumer》第10页的block diagram。这个框图是128Bb×8结构的,这里的8指的是8bank,每bank128Mbit。
210的DDR端口信号中有BA0~BA2,接在内存芯片的BA0~BA2上,这些引脚就是用来选择bank的。
每个bank内部有128Mb,通过row address(14位) + column address(10位)的方式来综合寻址。
一共能寻址的范围是:2的14次方+2的10次方 = 2的24次方。对应16MB(128Mbit)内存。
四.汇编初始化SDRAM详解
暂时不做总结,没有理解透彻,后面补上。
2017/11/08 20:09
阅读全文
0 0
- 七.ARM裸机学习之SDRAM
- S5PV210系列(裸机七)之 SDRAM
- ARM裸机程序之存储管理器控制SDRAM
- ARM裸机程序之存储管理器控制SDRAM
- 一.ARM裸机学习之ARM汇编
- 朱老师ARM裸机学习笔记(七):汇编写启动代码之调用C语言
- MINI2440裸机实验之SDRAM
- 二.ARM裸机学习之S5PV210刷机
- 十三.ARM裸机学习之NandFlash详解
- 十四.ARM裸机学习之iNand详解
- ARM体系结构之SDRAM
- ARM裸机全集之ARM体系结构(学习笔记)
- 学习arm裸机程序
- arm裸机学习告一段落
- ARM裸机之ADC
- 1.5.ARM裸机第五部分-SDRAM和重定位relocate
- ARM裸机第五部分-SDRAM和重定位relocate
- ARM嵌入式linux系统学习之裸机(一)
- String,StringBuffer,StringBuilder
- 阿里云服务器被入侵挂上了wnTKYg挖矿程序解决办法
- vlcj loop
- 感知机perceptron-机器学习ML
- 用WebMagic框架写一个简单的爬虫
- 七.ARM裸机学习之SDRAM
- 矛与盾:二进制漏洞攻防思想对抗
- 容器
- log4j 指定类输出到指定位置
- 浅析TCP/IP协议
- 还原二叉树(25 分)
- ListView中onItemClickListener点击失效
- java 保存和读取本地json文件
- ItemTouchHelper 入门一