s3c2440之存储器SDRAM

1S3C2440 存储器控制特性

S3C2440存储器提供访问外存储器所需要的存储器控制信号。共8bank,每个bank128M,其中6个是ROM,SRAM等类型存储器bank2个是ROM,SRAM,SDRAM等存储器bank。其中最后一个bank的起始地址可调整,最后2bank大小可编程。所有bank的访问周期可编程,支持SDRAM的自刷新和掉电模式。

2:存储器控制器寄存器

总线宽度和等待寄存器BWSCON:用来设置总线宽的和等待状态。

Bank控制寄存器BANKCONn:控制各bank的片选,访问周期。

刷新控制寄存器REFRESHSDRAM的刷新控制寄存器。

BANKSIZE寄存器:用来设置BANK的容量。

SDRAM模式寄存器集寄存器

3:实验代码:

3.1:主要完成SDRAM的初始化代码

在初始化代码中,主要完成关闭看门狗,设置存储器控制寄存器,拷贝NANDFLASH 4KBSRAM到外部SDRAM中,并最后跳转到SDRAM中去运行。

.equ MEM_CTL_BASE, 0x48000000 @存储器控制寄存器首地址

.equ SDRAM_BASE, 0x30000000 @SDRAM首地址

.text

.global _start

_start:

bl disable_watch_dog

bl memsetup

bl copy_steppingstone_to_sdram

ldr pc, =set_sp @跳到SDRAM中继续执行

set_sp:

ldr sp, =0x34000000 @设置堆栈

bl main

halt_loop:

b halt_loop

disable_watch_dog: @关闭看门狗

mov r1,  #0x53000000

mov r2,  #0x0

str r2,  [r1]

mov pc, lr

copy_steppingstone_to_sdram:

@copy the 4k code from steppingstone(address begins at 0x00000000) to sdram(address begins at 0x30000000)

mov r1, #0

ldr r2, =SDRAM_BASE

mov r3, #4*1024

1: ldr r4, [r1],#4

str r4, [r2],#4

cmp r1, r3

bne 1b

mov pc,  lr

memsetup:

mov r1,  #MEM_CTL_BASE

adrl r2,  mem_cfg_val

add r3,  r1, #13*4

1: ldr r4,  [r2], #4

str r4,  [r1], #4

cmp r1,  r3

bne 1b

mov pc,  lr

.align 4

mem_cfg_val: @设置存储器控制器的13个寄存器

.long 0x2201D110 @BWSCON

.long 0x00000700 @BANKCON0

.long 0x00000700 @BANKCON1

.long 0x00000700 @BANKCON2

.long 0x00000700 @BANKCON3

.long 0x00000700 @BANKCON4

.long 0x00000700 @BANKCON5

.long 0x00018005 @BANKCON6

.long 0x00018005 @BANKCON7

.long 0x008C04F4 @REFRESH

.long 0x000000b1 @BANKSIZE

.long 0x00000030 @MRSRB6

.long 0x00000030 @MRSRB7

5:编译,下载测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值