ok6410内存初始化--未完待续

Posted chd_zhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ok6410内存初始化--未完待续相关的知识,希望对你有一定的参考价值。

•DRAM:它的基本原件是小电容,电容可以在两个极板上保留电荷,但是需要定期的充电(刷新),否则数据会丢失。缺点:由于要定期刷新存储介质,存取速度较慢。

•SRAM:它是一种具有静止存取功能的内存,不需要定期刷新电路就能保存它内部存储的数据。其优点:存取速度快; 但是缺点是:功耗大,成本高。常用作存储容量不高,但存取速度快的场合,比如steppingstone.

在嵌入式硬件体系中,除了CPU内部的”垫脚石”采用SRAM外,板载内存一般会采用DRAM,而DRAM又可以分为SDRAM,DDR,DDR2等。

 

SDRAM(Synchronous Dynamic Random AccessMemory):同步动态随机存储器.

同步: 内存工作需要有同步时钟,内部的命令的发送与数据的传输都以该时钟为基准。

动态:存储阵列需要不断的刷新来保证数据不丢失。

随机:是指数据不是线性依次存储,而是自由指定地址进行数据读写。

备注:2440开发板上使用的内存通常是SDRAM

 

DDR (Double Data Rate SDRAM),即“双倍速率同步动态随机存储器”。与早期的SDRAM相比,DDR 除了可以在时钟脉冲的上升沿传输数据,还可以在下降沿传输信号,这意味着在相同的工作频率下,DDR 的理论传输速率为SDRAM的两倍。DDR2 则在DDR 的基础上再次进行了改进,使得数据传输速率在DDR 的基础上再次翻倍。
备注:6410开发板通常采用DDR内存    210开发板通常采用DDR2内存

 

2440内存初始化:

  1:地址空间:
(1)地址线:2440对外提供27条地址线,只能访问128MB的外设空间。
(2)片选信号:8个片选信号,扩大可访问的外设空间到1GB。
(3)外设空间:有2440的datasheet知道他将1GB分成8部分,即8块,通过不同的片选信号来访问不同的块空间。其中内存从band6开始(0x30000000),有可能占用band7。
(4)存储器控制器:所谓对内存初始化,实质上是对CPU的存储器控制器进行初始化,由他对给出的地址进行分析转换得到片选信号和行列地址。而CPU和内部寄存器之间的访问则是通过CPU内部的32位总线进行的。


2:内存芯片连接
由于每个单元格的容量是16bit,即内存芯片的数据宽度是16bit,而CPU的数据宽度是32bit,为了避免浪费,就用两块内存芯片并联,使得每一次cpu对内存访问的时候可以一次性取出32bit的数据。分为高16bit和低16bit。
当然不可避免的要涉及到片选信号,L_BANK选择信号,行列地址信号。


3存储器控制器寄存器
设置13个寄存器,要查阅2440的datasheet以及内存的datasheet,然后看时序图,找出寄存器的某些位控制的参数所需要设置的值。最后要学会在汇编里用循环的方式来给寄存器赋值。


4.  理论上2440可以寻址4GB,总体上分为内部空间和外设空间。外设空间又分为8个bank,每个bank为128MB

以上是关于ok6410内存初始化--未完待续的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式学习-uboot-lesson7-内存初始化

浅析Socket建立过程(未完待续)

转:OK6410内存及启动流程

210内存初始化

ok6410的LCD裸机范例

修改Eboot使OK6410A(128M内存+256MNand)支持HDMI高清显示