裸板的DDR(双倍速率内存)
发布时间
阅读量:
阅读量
当系统上电后,会将nand flash中前8k的数据复制到6410芯片的内部内存中进行执行,若数据量超过8k,程序将无法正常运行。因此,必须将程序链接至DDR的地址空间进行执行,而前面的代码应采用位置无关的编码方式编写。此外,DDR在使用前需要完成初始化操作,这部分内容也需在前期代码中实现。
1、如何实现对DDR的访问?
根据原理图显示,系统具备15条地址线,理论上可访问2^15=32K大小的存储空间。然而DDR的实际容量为32M16,两个DDR总容量达到32M16*2=128MB。若需访问完整的128MB空间,则需要27条地址线支持。因此,在实际操作中,地址信息是通过多个周期逐步发送出去的。
假设DDR起始地址为0x5000,0000时,CPU会依次执行以下两条指令:
mov R0,#0x5000,0000
LDR R1,[R0]
此时CPU尝试从地址为0x5000, 000的位置读取数据。要获取该位置的数据内容,首先需发送BANK地址(即确定存储块),随后发送行地址和列地址。那么这些信号的具体发送顺序由谁来决定呢?
在此过程中涉及一个关键组件——DRAMC(动态内存控制器) ,它负责接收来自CPU的指令,并按照一定规则发出相应的控制信号。因此,在对DDR进行访问之前,必须完成DRAMC的初始化配置工作,包括设置地址线参数、位宽以及时序
全部评论 (0)
还没有任何评论哟~
