2存储控制器
上一节写的太细,这节写重点
正如在GPIO里面说的
这个ARM统一编址(1G~4G留给寄存器)
0x0000_0000~0x4000_0000这1G
给外设用的,硬件把这些地址分成8块
叫做BANK0~BANK7
BANK0地址是0~128
BANK7是(1G-128M)~1G
那么一块的大小是多少呢?!
1G/8=128M。。。。
上面有NOR FLASH IDE 网卡A 网卡B 串口芯片 内存
这些BANK就是由存储控制器管理的。
存储管理器实际上是管理类似于内存这样直接寻址的外设
出厂的时候这些外设就已经粘在这些BANK上面
一开始是没法使用的,所以当然是要设置好这个存储管理器了。
这里我们就配置存储管理器使用SDRAM内存
因为我们S3C2440硬件上对外的地址线只有27根,所以寻址128M
要加上8个片选,用来选择那个BANK,一共1G
寄存器当然是不用对外地址线了
不过这些跟我们没关系,他们是透明的,我们写代码也不需要指定那个BANK
只需要给地址,CPU会自己处理
如图BANK6接的外设是内存,正是我们今天要弄明白的内存。
显然BANK6的地址是0x3000_0000~0x3800_0000这128M了,我们这个S3C2440的内存SDRAM没用完,万恶的资本家只用了64M的内存设备在上面
2.1 BANK寄存器
现在来介绍一下BANK的操作方法,就是在BANK寄存器地址操作了
那么BANK需要几个寄存器操作呢!?
一共是
BWSCON
BANKCON0~BANKCON7
REFRESH
BANKSIZE
MRSRB6~MRSRB7