JLInk 调试加载的执行初始化存储器脚本(2440) Setmem 0x53000000 0x00000000 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*/ |
2410内存控制器介绍(BWSCON)
http://blogold.chinaunix.net/u1/59572/showart_1914422.html
|
上一篇:S3C2440 Mini 2440 DMA方式实现Uart(串口)通信
下一篇:Jlink + ADS调试 S3C2440
推荐阅读最新更新时间:2024-03-16 14:59