2440初始化存储器原理(接上一篇)
2012-10-03 22:10
211 查看
JLInk 调试加载的执行初始化存储器脚本(2440) Setmem 0x53000000 0x00000000 32 Setmem 0x4A000008 0xFFFFFFFF 32 Setmem 0x4A00001C 0x000007FF 32 Setmem 0x53000000 0x00000000 32 Setmem 0x56000050 0x000055AA 32 Setmem 0x4C000014 0x00000007 32 Setmem 0x4C000000 0x00FFFFFF 32 Setmem 0x4C000004 0x00061012 32 Setmem 0x4C000008 0x00040042 32 Setmem 0x48000000 0x22111120 32 Setmem 0x48000004 0x00002F50 32 Setmem 0x48000008 0x00000700 32 Setmem 0x4800000C 0x00000700 32 Setmem 0x48000010 0x00000700 32 Setmem 0x48000014 0x00000700 32 Setmem 0x48000018 0x0007FFFC 32 Setmem 0x4800001C 0x00018005 32 Setmem 0x48000020 0x00018005 32 Setmem 0x48000024 0x008E0459 32 Setmem 0x48000028 0x00000032 32 Setmem 0x4800002C 0x00000030 32 Setmem 0x48000030 0x00000030 32 原理: 1、什么是存储控制器 存储控制器是创建和控制其他存储设备的一种设备。S3C2440中存储控制器的起始地址为0x48000000结束地址为0x48000030。通过配置存储控制器提供的13个寄存器的具体数值来达到访问外围设备的目的。 2、如何得到外围设备的访问地址 在说明得到外围设备地址之前,先说明一下什么是片选信号。读过微机原理的同志应该很清楚了。 在S3C2440中分为nGCS0~nGCS7,共8个片选信号。分别对应了BANK0~BANK7,当需要访问外围设备的空间时(即访问BANKx 时),nGCSx 引脚输出低电平信号,这样选择相对应的BANKx外围设备来访问。(注:nGCS0~nGCS7在S3C2440手册中可以查找到相应的地址分配表) BANK访问地址=BANK起始地址+地址线地址。 3、存储控制器中寄存器的使用 3.1、存储控制器提供的13个寄存器 BWSCON,BANKCONx(x=0~7),REFRESH,BANKSIZE,MRSRBx(x=6~7),共13个寄存器。在这些寄存器的配置中,当配置BANK0~BANK5的时候,只需要配置BWSCON和BANKCONx(x=0~5)即可。由于BANK6和BANK7嘤糜谕饨覵DRAM,所以配置的时候除配置BWSCON和BANKCONx(x=6~7)外,还需要配置REFRESH,BANKSIZE,MRSRB6和MRSRB7等4个寄存器。 BWSCON(R/WBusWidth & WaitStatusControl,位宽和等待寄存器) BWSCON共32位,BWSCON的高4位对应了外设的BANK7,然而BWSCON是每4位对应一个BANK,所以依次类推可以得到其余BANK6~BANK0的对应位数。 STx(x= 0~7):启动/禁止SDRAM数据掩码引脚。对于SDRAM此位为0,对于SRAM此位为1。一般为0。 WSx(x= 0~7):是否使用存储器的WAIT信号。通常设为0。 /*0 = WAIT disable*/ DWx(x= 0~7):用2位来设置对应BANK位宽(数据总线宽度),00=8-bit;01=16-bit;10=32-bit;11=reserved 其中,比较特殊的BANK0,它没有ST0和WS0,且DW0[2:1]为只读,由硬件电路跳线决定01=16-bit;10=32-bit。 BANKCONx(x= 0~5):用来控制外接设备的访问时序,默认设置0X0700可以满足使用需求。 BANKCONx(x= 6~7):只有BANK6和BANK7可以用来外接SRAM或SDRAM,所以在配置BANK6~BANK7会有所不同。 MT[16:15]位:用来标识外接的设备是ROM/SRAM,还是SDRAM。 /*00 = ROM or SRAM;01 = Reserved;10 = Reserved;11 = Sync.DRAM */ 当MT=0b00时(即外接ROM):此时设置与BANKCONx(x= 0~5)并无多大差异。 当MT=0b11时(即外接SDRAM): Trcd[3:2]:Time of RAS toCASdelay(内存行地址传输到列地址的延迟时间) /*00 = 2 clocks;01 = 3 clocks;10 = 4 clocks*/ SCAN[1:0]:表示SDRAM列的地址,可根据具体芯片情况设置 /*00 = 8-bit;01 = 9-bit;10= 10-bit*/ REFRESH:刷新控制寄存器。 REFEN[23]:使能控制SDRAM刷新功能。/*0 = Disable;1 = Enable (self or CBR/auto refresh)*/ TREFMD[22]:SDRAM刷新模式。/*0 = CBR/Auto Refresh;1 = Self Refresh (休眠模式)*/ Trp[21:20]:Time of SDRAM RASpre-charge(RAS预充电时间)。/*00 = 2 clocks;01 = 3 clocks;10 = 4 clocks;11 = Not support*/ Tsrc[19:18]:Time of SDRAM SemiRowcycle(半行周期时间)。/*00 = 4 clocks;01 = 5 clocks;10 = 6 clocks;11 = 7 clocks*/ 注:Reserved[17:11]:Not used. Refresh Counter[10:0]:SDRAM refresh count value(刷新计数值)。 BANKSIZE寄存器: BURST_EN[7]:ARM coreburst operation enable(ARM内核心突发操作使能)。/*0 = Disable burst operation;1 = Enable burst operation*/ 注:Reserved[6]:Not used. SCKE_EN[5]:SDRAM power down mode enable control bySCKE。(SCKE power down模式使能)/*0 = SDRAM power down mode disable;1 = SDRAM power down mode enable*/ SCLK_EN[4]:SCLK is enabled only during SDRAM access cycle for reducing power consumption. When SDRAM is not accessed SCLK becomes 'L' level(低电平). /*0 = SCLK is always active. 1 = SCLK is active only during the access (recommended).*/ 注:Reserved[3]:Not used. BK76MAP[2:0]:设置BANK6~BANK7的大小。/* 010 = 128MB/128MB;001 = 64MB/64MB;000 = 32M/32M;111 = 16M/16M;110 = 8M/8M;101 = 4M/4M;100 = 2M/2M */ MRSRBx(x= 6~7):SDRAM模式设置寄存器。 能做修改的只有CL[6:4]:代表SDRAM时序的一些参数。 /*000 = 1 clock;010 = 2 clocks;011=3 clocks;Others: reserved*/ |
http://blogold.chinaunix.net/u1/59572/showart_1914422.html
相关文章推荐
- 接上一篇文章,导出一个表,或者整个数据库到Excel表
- 大数据_HBase(Region分裂、接上一篇HBase)
- 能同步的队列才是好队列(接上一篇)
- 基于S5PC100的FIMC的部分解释——一篇让我理解透彻2440和S5PV210 摄像头camera控制器的文章
- 接上一篇
- 第5章6节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 初始化事件源(原创)
- 一篇文章通透理解序列号实现原理
- MUI -- plus初始化原理及plus is not defined,mui is not defined 错误汇总
- 接上一篇
- 转一篇写得很好的关于iptables原理和流程的文章
- 原理分析之三:初始化(配置文件读取和解析)
- ASP.NET Core 运行原理剖析1:初始化WebApp模版并运行
- 寄存器、存储器与外设的内存映射原理
- jQuery文档初始化函数原理
- MySQL索引背后的数据结构及算法原理(写的很要好的一篇文章,在“结构之法算法之道”中看到的推荐文章)
- 泛型介绍(接上一篇,具体的事例随后呈上)
- 接上一篇文章,导出一个表,或者整个数据库到SQL形式
- 存储器原理之二
- i2c子系统之platfor_device初始化——smdk2440_machine_init()
- plus 初始化原理