2440初始化存儲(chǔ)器原理(接上一篇)
JLInk 調(diào)試加載的執(zhí)行初始化存儲(chǔ)器腳本(2440) 本文引用地址:http://m.butianyuan.cn/article/201611/317613.htmSetmem 0x53000000 0x00000000 32 原理: 1、什么是存儲(chǔ)控制器 存儲(chǔ)控制器是創(chuàng)建和控制其他存儲(chǔ)設(shè)備的一種設(shè)備。S3C2440中存儲(chǔ)控制器的起始地址為0x48000000結(jié)束地址為0x48000030。通過(guò)配置存儲(chǔ)控制器提供的13個(gè)寄存器的具體數(shù)值來(lái)達(dá)到訪問外圍設(shè)備的目的。 2、如何得到外圍設(shè)備的訪問地址 在說(shuō)明得到外圍設(shè)備地址之前,先說(shuō)明一下什么是片選信號(hào)。讀過(guò)微機(jī)原理的同志應(yīng)該很清楚了。 在S3C2440中分為nGCS0~nGCS7,共8個(gè)片選信號(hào)。分別對(duì)應(yīng)了BANK0~BANK7,當(dāng)需要訪問外圍設(shè)備的空間時(shí)(即訪問BANKx 時(shí)),nGCSx 引腳輸出低電平信號(hào),這樣選擇相對(duì)應(yīng)的BANKx外圍設(shè)備來(lái)訪問。(注:nGCS0~nGCS7在S3C2440手冊(cè)中可以查找到相應(yīng)的地址分配表) BANK訪問地址=BANK起始地址+地址線地址。 3、存儲(chǔ)控制器中寄存器的使用 3.1、存儲(chǔ)控制器提供的13個(gè)寄存器 BWSCON,BANKCONx(x=0~7),REFRESH,BANKSIZE,MRSRBx(x=6~7),共13個(gè)寄存器。在這些寄存器的配置中,當(dāng)配置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位對(duì)應(yīng)了外設(shè)的BANK7,然而BWSCON是每4位對(duì)應(yīng)一個(gè)BANK,所以依次類推可以得到其余BANK6~BANK0的對(duì)應(yīng)位數(shù)。 STx(x= 0~7):?jiǎn)?dòng)/禁止SDRAM數(shù)據(jù)掩碼引腳。對(duì)于SDRAM此位為0,對(duì)于SRAM此位為1。一般為0。 WSx(x= 0~7):是否使用存儲(chǔ)器的WAIT信號(hào)。通常設(shè)為0。 /*0 = WAIT disable*/ DWx(x= 0~7):用2位來(lái)設(shè)置對(duì)應(yīng)BANK位寬(數(shù)據(jù)總線寬度),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):用來(lái)控制外接設(shè)備的訪問時(shí)序,默認(rèn)設(shè)置0X0700可以滿足使用需求。 BANKCONx(x= 6~7):只有BANK6和BANK7可以用來(lái)外接SRAM或SDRAM,所以在配置BANK6~BANK7會(huì)有所不同。 MT[16:15]位:用來(lái)標(biāo)識(shí)外接的設(shè)備是ROM/SRAM,還是SDRAM。 /*00 = ROM or SRAM;01 = Reserved;10 = Reserved;11 = Sync.DRAM */ 當(dāng)MT=0b00時(shí)(即外接ROM):此時(shí)設(shè)置與BANKCONx(x= 0~5)并無(wú)多大差異。 當(dāng)MT=0b11時(shí)(即外接SDRAM): Trcd[3:2]:Time ofRAS toCASdelay(內(nèi)存行地址傳輸?shù)搅械刂返难舆t時(shí)間) /*00 = 2 clocks;01 = 3 clocks;10 = 4 clocks*/ SCAN[1:0]:表示SDRAM列的地址,可根據(jù)具體芯片情況設(shè)置 /*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預(yù)充電時(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(刷新計(jì)數(shù)值)。 BANKSIZE寄存器: BURST_EN[7]:ARM coreburstoperation enable(ARM內(nèi)核心突發(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]:設(shè)置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模式設(shè)置寄存器。 能做修改的只有CL[6:4]:代表SDRAM時(shí)序的一些參數(shù)。 /*000 = 1 clock;010 = 2 clocks;011=3 clocks;Others: reserved*/ |
2410內(nèi)存控制器介紹(BWSCON)
http://blogold.chinaunix.net/u1/59572/showart_1914422.html
|
評(píng)論