注:以下内容学习于韦东山老师arm裸机第一期视频教程
辅线1_硬件知识 SDRAM的设置
CPU发送地址给内存控制,由内存控制去访问外面SDRAM
SDRAM逻辑结构图
-
SDRAM 有4个块 BANK 0 、BANK 1、 BANK2、BANK3,上图所示每块里面的每个格子表示的是16位数据
-
先发出片选信号选择整个芯片,然后选中bankn,然后发出行信号、列信号
例:执行下面的命令
LDR R0 , = 0x3000,0000
LDR R1 , [R0]
### 读内存操作
cpu将地址0x3000,0000 发个内存控制器
内存控制器拿到地址
1、发出 nGCS6(片选型号)
2、根据类型拆分地址(SDRAM)
- BANK 地址
- 行地址
- 列地址
3、读数据
如何拆分行地址几条线,列地址几条线,都需要设置寄存器
wait信号:内存控制器发出所有信号,而内存芯片没有准备好数据的时候,可以向内存控制发出一个wait芯片
设置寄存器
2440 用了2个16位SDRAM芯片组成一个32位的(看J2440的原理图)
bank7 和bank6 设置成一样
设置BANKCON 寄存器
设置REFREE寄存器
我们的SDRAM不像静态内存那么可靠,需要不断的刷新,否者数据会丢失