Chinaunix首页 | 论坛 | 博客
  • 博客访问: 41777
  • 博文数量: 17
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 150
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-05 09:59
文章分类
文章存档

2014年(8)

2013年(9)

我的朋友

分类: 嵌入式

2014-02-23 11:12:32

MINI2440 s3c2440 存储控制器 MEMORY CONTROLLER

分类: Mini2440裸机 559人阅读 评论(0) 举报

         Memory controller 即 存储控制器用来产生外部存储器使用所需的控制信号。

它具有如下特点:

1:可通过软件编程选择的大小端模式。

2:8个128M的BANK,总共1GB大小。

3:除了BANK0只能选择16/32位的数据宽度外,其他BANK可自由选择8bit、16bit,32bit

4:BANK0~BANK5比较相似,可外接rom,sram等外设;

BANK6~BANK7除了提供与BANK0~BANK5的一些功能外,还特别提供了SDRAM所需的配置。

5:BANK6跟BANK7的大小可通过编程选择,但是注意,BANK6与BANK7必须大小相同


地址划分如下:


S3C2440能寻址4G地址空 间,0x0000_0000~0x3FFF_FFFF这1G的地址空间为外部外围设备的寻址空间,0x4800_0000~0x5FFF_FFFF为处理 器内部的寄存器地址寻址区。S3C2440共有ADDR0~ADDR26,27跟地址线,可寻址128Byte。那它是怎么寻址到外部1G空间的呢?原来 每个Bank都有一个片选信号nGCSn,通过这8个片选信号,便能寻址128Byte*8=1GByte。

如上图所示,s3c2440有两种启动方式,从NORFLASH启动,从NANDFLASH启动。

系统复位后,pc自动指向0地址开始执行程序,在mini2440开 发板上Norflash接在Bank0上,起始地址为0x0000_0000.当OM[1:0]=01,10时,程序即从Norflsh启动,由于 Norflash是可在芯片内执行(XIP,execute in place),程序可直接在flash闪存中运行。

当OM[1:0]=00时系统即从Nandflash启 动,Nandflash没有接在Bank0上,它由专门的Nand flash Controller控制,无法具体寻址,但是复位后pc自动从0地址开始执行程序,那么程序如何运行到nandflash中去呢?原来在s3c2440 中有一个大小为4k的sram(stepping stone),它自动将nandflash中的前4k程序拷贝到该sram中运行,一般情况下,这4k程序需要初始化sdram等外设,并将剩余的 nandflash中的代码拷贝到sdram中去,而后程序跳转到sdram中运行。

在使用SRAM时需要配置如下13个寄存器:

寄存器的具体设置参考具体的外设。

mini2440的配置如下

DCD (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28))
DCD ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC))   ;GCS0
DCD ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC))   ;GCS1
DCD ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC))   ;GCS2
DCD ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC))   ;GCS3
DCD ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC))   ;GCS4
DCD ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC))   ;GCS5
DCD ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN))    ;GCS6
DCD ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN))    ;GCS7
DCD ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT)

DCD 0x32    ;SCLK power saving mode, BANKSIZE 128M/128M

DCD 0x30    ;MRSR6 CL=3clk
DCD 0x30    ;MRSR7 CL=3clk
阅读(1032) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~