码迷,mamicode.com
首页 > 其他好文 > 详细

Part8-不用内存怎么行_2440内存初始化lesson2

时间:2016-08-21 00:45:14      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:

1、2440地址空间

先去找PCB原理图,看CPU引出的内存地址线和数据线的宽度。

技术分享

说明内存的其实地址是0x30000000为起始地址。

技术分享

初始化内存其实是去初始化存储器控制器,只有初始化好这个存储器控制器之后才能访问相应的芯片。

2、内存芯片的硬件连接

技术分享

技术分享

3、存储控制器

打开芯片手册,找到存储器控制器章节,

技术分享

该寄存器分成了8个组,用于设置总线宽度和等待状态的寄存器,有8个组可控制8个BANK。

因为BANK7和BANK6用于接SDRAM的,因为原理图没有使用UB/LB,所以ST7位选择为0,WS7等待状态设置为0,DW7用于设置总线宽度,选择10为32位。BANK6的值与BANK的设置一样。

其他BANK不用保持默认值即可。

技术分享

技术分享

用于控制内存的寄存器,MT位用于控制内存使用的什么类型,我们用的SDRAM,值位11,

技术分享

技术分享

Trcd表示行列型号之间转换的延时,到底延时是多少,可以看上面的时序图

技术分享

到具体使用的SDRAM里面去查看列地址数量,打开该芯片手册搜索column

技术分享

为9位所以SCAN应该为01,

技术分享

刷新寄存器

TREFMD刷新模式选择:选择自动刷新所以取值0,

Trp:准备充电的时间,从时序可以看出

技术分享

2个时钟选择00;

Tsrc:行刷新时间,一般是7个时钟,选择11,

Refresh Counter:隔多长时间进行刷新一次,用这里来设置,

技术分享

技术分享

BURST_EN突发模式,使用起来,是指访问内存时一次性可以使用批量的数据;

SCKE_EN是否使能节点模式,使能起来

SCLK_EN选择推荐模式选择1;

BK76MAP:用于控制设置BANK6和7的大小的。应该选择001为64M

技术分享

他们的取值是一样的。

CAL域:

技术分享

选择011,

到这里内存控制器里面所有值已经列出来了。

手把手写代码:

技术分享

技术分享

技术分享

技术分享

对存储器控制器初始化之后,便可以使用我们的内存了。

 

Part8-不用内存怎么行_2440内存初始化lesson2

标签:

原文地址:http://www.cnblogs.com/gary-guo/p/5791522.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!