ARM9------ 存储控制器

初入领悟:

1、 bank、L-bank的概念

2、 s3c2440内部管理SDRAM寄存器配置

 

Frist part:原理分析

S3c2440为32位微处理器,其可访问空间为4G;但其中提供1G外设访问空间,这1G空间有8个bank组成;及平均每个bank有128M的访问空间;其中8bank的特性为:

1、 bank0~bank5支持外接SRAM、ROM等,bank6、bank7支持外接SRAM、ROM与SDRAM等;

2、 bank0~bank6的起始地址是固定

3、 bank7的起始地址可编程设定

4、 bank6、bank7大小可编程确定

5、 每个bank访问周期均可编程设定

6、 外接SDRAM是支持自刷新与省电模式

 

S3c2440向外引出27根地址线,可实现128M的寻找空间;那他怎么实现1G的空间范围访问呢?这就涉及到了nGCSx片选信号,由控制这几根信号线实现bank的切换,如下图所示:


左边为nor flash下;右边为nand flash;

说到此又想起一概念,就是有关于nor flash与nand flash启动方式;

一、norflash启动

简而言之,既是nor flash启动模式下cpu启动会执行地址0x00000000的指令此指令在使能了nor flash下是就是nor flash的首地址;其中原因为nor flash支持一种名为XIP的执行机制;

二、nandflash启动

nand flash下不支持XIP因此在执行nandflash的程序是,系统将会把nandflash的头4K(最大)启动代码拷贝至系统SRAM中既s3c2440中的steppingstone;

 

我使用的是GT2440开发板从原理图中可知:

Bank6外接2片H57V2562GTR芯片;

在使用SDRAM时要设置到如下13个寄存器的操作:


各个寄存器值的设置参考开发板每一个bank所接的外设进行设置;

此设置参考示例程序:

    .long  0x22011110      @ 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   0x008C07A3      @ REFRESH

    .long   0x000000B1      @ BANKSIZE

    .long   0x00000030      @ MRSRB6

   .long   0x00000030      @ MRSRB7

(.long 汇编中词法,既long数据型)

 

Second part:程序编写

现在开始编写代码,如我上诉一样启动时CPU将会报前4K程序拷贝至steppingstone中运行;现在编写的代码任务为将steppingstone中的代码拷贝回SDRAM中,并程序从SDRAM中开始执行;

汇编部分:

.equ       MEM_CTL_BASE,       0x48000000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值