2440内存初始化

时间:2022-02-25 19:46:44

2440地址空间

地址线

片选信号

2440内存初始化

观察可以发现ADDR0–ADDR26共有27根地址线 ,在不考虑片选信号的情况下可以访问2^27 = 128M内存。加上nGCS0 - nGCS7八根片选信号,所以可以访问 8 * 128 = 1G内存

外设空间

2440内存初始化

上图左边为使用NORflash 的内存分布图,右边为使用nandflash,可以看出SDRAM 的起始地址为0x30000000,即为内存的起始地址

储存控制器

2440内存初始化
地址通过储存控制器分解成行地址和列地址及片选信号

内存芯片硬件连接

2440有32根数据线,如果内存芯片是16位的则要采用两个内存芯片并联的方式

储存控制器寄存器

源码

#define men_contrl 0x48000000
init_sdram:
ldr r0, =men_contrl
add r3, r0, #4*13
adrl r1, men_data

0:
ldr r2, [r1], #4
str r2, [r0], #4
cmp r0, r3
bne 0b
mov pc, lr

men_data:
.long 22000000
.long 00000700
.long 00000700
.long 00000700
.long 00000700
.long 00000700
.long 00000700
.long 00018001
.long 00018001
.long 008C04F5
.long 000000B1
.long 00000030
.long 00000030