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