2440初始化存儲器原理(接上一篇)
JLInk 調試加載的執行初始化存儲器腳本(2440) 本文引用地址:http://dyxdggzs.com/article/201611/317613.htmSetmem 0x53000000 0x00000000 32 原理: 1、什么是存儲控制器 存儲控制器是創(chuàng )建和控制其他存儲設備的一種設備。S3C2440中存儲控制器的起始地址為0x48000000結束地址為0x48000030。通過(guò)配置存儲控制器提供的13個(gè)寄存器的具體數值來(lái)達到訪(fǎng)問(wèn)外圍設備的目的。 2、如何得到外圍設備的訪(fǎng)問(wèn)地址 在說(shuō)明得到外圍設備地址之前,先說(shuō)明一下什么是片選信號。讀過(guò)微機原理的同志應該很清楚了。 在S3C2440中分為nGCS0~nGCS7,共8個(gè)片選信號。分別對應了BANK0~BANK7,當需要訪(fǎng)問(wèn)外圍設備的空間時(shí)(即訪(fǎng)問(wèn)BANKx 時(shí)),nGCSx 引腳輸出低電平信號,這樣選擇相對應的BANKx外圍設備來(lái)訪(fǎng)問(wèn)。(注:nGCS0~nGCS7在S3C2440手冊中可以查找到相應的地址分配表) BANK訪(fǎng)問(wèn)地址=BANK起始地址+地址線(xiàn)地址。 3、存儲控制器中寄存器的使用 3.1、存儲控制器提供的13個(gè)寄存器 BWSCON,BANKCONx(x=0~7),REFRESH,BANKSIZE,MRSRBx(x=6~7),共13個(gè)寄存器。在這些寄存器的配置中,當配置BANK0~BANK5的時(shí)候,只需要配置BWSCON和BANKCONx(x=0~5)即可。由于BANK6和BANK7嚶糜諭飩覵DRAM,所以配置的時(shí)候除配置BWSCON和BANKCONx(x=6~7)外,還需要配置REFRESH,BANKSIZE,MRSRB6和MRSRB7等4個(gè)寄存器。 BWSCON(R/WBusWidth & WaitStatusControl,位寬和等待寄存器) BWSCON共32位,BWSCON的高4位對應了外設的BANK7,然而B(niǎo)WSCON是每4位對應一個(gè)BANK,所以依次類(lèi)推可以得到其余BANK6~BANK0的對應位數。 STx(x= 0~7):?jiǎn)?dòng)/禁止SDRAM數據掩碼引腳。對于SDRAM此位為0,對于SRAM此位為1。一般為0。 WSx(x= 0~7):是否使用存儲器的WAIT信號。通常設為0。 /*0 = WAIT disable*/ DWx(x= 0~7):用2位來(lái)設置對應BANK位寬(數據總線(xiàn)寬度),00=8-bit;01=16-bit;10=32-bit;11=reserved 其中,比較特殊的BANK0,它沒(méi)有ST0和WS0,且DW0[2:1]為只讀,由硬件電路跳線(xiàn)決定01=16-bit;10=32-bit。 BANKCONx(x= 0~5):用來(lái)控制外接設備的訪(fǎng)問(wèn)時(shí)序,默認設置0X0700可以滿(mǎn)足使用需求。 BANKCONx(x= 6~7):只有BANK6和BANK7可以用來(lái)外接SRAM或SDRAM,所以在配置BANK6~BANK7會(huì )有所不同。 MT[16:15]位:用來(lái)標識外接的設備是ROM/SRAM,還是SDRAM。 /*00 = ROM or SRAM;01 = Reserved;10 = Reserved;11 = Sync.DRAM */ 當MT=0b00時(shí)(即外接ROM):此時(shí)設置與BANKCONx(x= 0~5)并無(wú)多大差異。 當MT=0b11時(shí)(即外接SDRAM): Trcd[3:2]:Time ofRAS toCASdelay(內存行地址傳輸到列地址的延遲時(shí)間) /*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 SDRAMRASpre-charge(RAS預充電時(shí)間)。/*00 = 2 clocks;01 = 3 clocks;10 = 4 clocks;11 = Not support*/ Tsrc[19:18]:Time of SDRAMSemiRowcycle(半行周期時(shí)間)。/*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 coreburstoperation enable(ARM內核心突發(fā)操作使能)。/*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時(shí)序的一些參數。 /*000 = 1 clock;010 = 2 clocks;011=3 clocks;Others: reserved*/ |
2410內存控制器介紹(BWSCON)
http://blogold.chinaunix.net/u1/59572/showart_1914422.html
|
評論