您的位置:首页 > 其它

嵌入式学习笔记2—S3C2440的内存初始化

2014-09-25 20:41 253 查看
本文基于国嵌的视频教程,总结一下ARM内存体系架构。

由S3C2440的datasheet可以看出,该芯片具有27根地址总线,则2^27=134217728bits=131072Kb=128Mb。总共有8根片选总线,所以最大可扩展内存为8*128=1024Mb=1GB地址空间。从外部看即有8个memory banks。ARM核访问内存地址则主要是通过存储控制器去访问内存空间。





具体初始化代码如下:

#define mem_contrl 0x48000000
init_sdram:
	ldr  r0,=mem_contrl  @first register address
	add  r3,r0,#4*13     @final register address,every register's length is 4 byte,
			     @total has 13 registers
	adrl r1,mem_data     @"adrl" load long address,r1 save data list first address 

0:
	ldr r2,[r1],#4  @"#4"(decimalism) next loop [r1]=[r1]+4
	str r2,[r0],#4
	cmp r0,r3       @r0 and r3 compare 
	bne 0b 		@judge:if not equal,then turn to 0 . "b" means turn to before
	mov pc,lr
mem_data:
	.long 0x22000000  @.long indicate it's length
	.long 0x00000700
	.long 0x00000700
	.long 0x00000700
	.long 0x00000700
	.long 0x00000700
	.long 0x00000700
	.long 0x00018001
	.long 0x00018001
	.long 0x008c04f5
	.long 0x000000b1
	.long 0x00000030
	.long 0x00000030


关于寄存器的取值和地址详见S3C2440的datasheet或者参考国嵌的视频教程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: