ARM之内存控制器与SDRAM

S3C2440是SOC(system on chip),板载CPU,内存管理器,GPIO控制器,协议类接口,内存类接口,NAND控制器等。

CPU和内存类接口:

其中ARM9为32位处理器,可是一般在实际只用到其中27条地址线。

对不同位宽的设备,有不同的处理方式。

当执行语句:

mov r0 #3

LdrB r1 [r0] //r1寄存器读取地址3处的一个字节

  CPU地址 内存控制器转发给ROM ROM返回数据 内存控制器处理数据
8bitROM 0011 0011 8bit(3) 接收8bit(3)
16bitROM 0011 0001  16bit(1) 接收16bit(1),并读取要的地址3内容
32bitROM 0011 0000 32bit(0) 接收32bit(0),并读取要的地址3内容

现在改一下 

mov r0 #4

Ldr r1 [r0] //现在一次读取四个字节 从地址4开始读取,读取地址 4,5,6,7处的内容

  CPU地址 内存控制器转发给ROM ROM返回数据 内存控制器处理数据
8bitROM 0100

0100

0101

0110

0111

得到地址4的1byte

得到地址5的1byte

...

之后将4byte组装完成后,再传个CPU
16bitROM 0100

0010

0011

得到地址2的2byte,和地址3的2byte 同上
32bitROM 0100

0000

0001

得到地址0的1byte

和地址1的3byte

同上

怎么确定芯片访问地址呢?

1.根据片选信号确定基地址

2.根据芯片所接地址线,确定范围。

猜你喜欢

转载自blog.csdn.net/weixin_40288381/article/details/81093011