




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、ARM開(kāi)發(fā)步步深入之SDRAM編程示例作者:373061200(CrazyARM)實(shí)驗(yàn)?zāi)康模焊淖儭包c(diǎn)燈大法”的執(zhí)行地點(diǎn),從NandFlash的Steppingstone轉(zhuǎn)到SDRAM中執(zhí)行,借此掌握存儲(chǔ)控制器的使用。實(shí)驗(yàn)環(huán)境及說(shuō)明:恒頤S3C2410開(kāi)發(fā)板H2410。H2410核心板擴(kuò)展有64MB的SDRAM,用于設(shè)置程序堆棧和存放各種變量。SDRAM選用了兩片三星公司的K4S561632(4M*16bit*4BANK,兩片拼成32位數(shù)據(jù)寬度的SDRAM存儲(chǔ)系統(tǒng),并映射到S3C2410的SROM/SDRAM的BANK6,地址范圍是0x300000000x33FFFFFF。實(shí)驗(yàn)思路:開(kāi)發(fā)板上電啟
2、動(dòng)后,自動(dòng)將NandFlash開(kāi)始的4K數(shù)據(jù)復(fù)制到SRAM中,然后跳轉(zhuǎn)到0地址開(kāi)始執(zhí)行,然后初始化存儲(chǔ)控制器,把程序本身從SRAM中復(fù)制到SDRAM中,最后跳轉(zhuǎn)到SDRAM中運(yùn)行。故問(wèn)題的關(guān)鍵是SDRAM的初始化,根據(jù)S3C2410的Datasheet,要使用SDRAM,就需配置存儲(chǔ)控制器的13個(gè)寄存器。知識(shí)掌握:SDRAM和13個(gè)存儲(chǔ)控制器的寄存器。一、SDRAM:CPU提供了一組用于SDRAM的信號(hào):SDRAM時(shí)鐘有效信號(hào)SCKE;SDRAM時(shí)鐘信號(hào)SCLK0/SCLK1;數(shù)據(jù)掩碼信號(hào)DQM0/DQM1/DQM2/DQM3;SDRAM片選信號(hào)nGCS0(與nGCS6是同一引腳的兩個(gè)功能;S
3、DRAM行地址選通脈沖信號(hào)nSRAS;SDRAM列地址選通脈沖信號(hào)nSCAS;寫(xiě)允許信號(hào)nWE(不是SDRAM專(zhuān)用的;SDRAM結(jié)構(gòu):SDRAM的內(nèi)部是一個(gè)存儲(chǔ)陣列,檢索時(shí)先指定一個(gè)行,再指定一個(gè)列,就可以準(zhǔn)確地找到所需要的單元格,這就是SDRAM尋址的基本原理;單元格被稱(chēng)為存儲(chǔ)單元,表格就是邏輯BANK,SDRAM一般含有4個(gè)邏輯BANK。SDRAM的訪問(wèn):SDRAM片選信號(hào)nGCS0有效;邏輯BANK選擇;對(duì)選中的芯片進(jìn)行統(tǒng)一的行/列尋址;CPU會(huì)從32位的地址中自動(dòng)分出 邏輯BANK選擇信號(hào)、行地址信號(hào)、列地址信號(hào),然后先后發(fā)出行地址信號(hào)、列地址信號(hào),邏輯BANK選擇信號(hào)在發(fā)出行地址信號(hào)
4、的同時(shí)發(fā)出,并維持到列地址信號(hào)結(jié)束;找到了存儲(chǔ)單元后,被選中的芯片就要進(jìn)行統(tǒng)一的數(shù)據(jù)傳輸了。二、存儲(chǔ)控制器的寄存器:BWSCON(Bus width & wait status control register,總線位寬和等待狀態(tài)控制寄存器:此寄存器用于配置BANK0BANK7的位寬和狀態(tài)控制,每個(gè)BANK用4位來(lái)配置,分別是: ST(啟動(dòng)/禁止SDRAM的數(shù)據(jù)掩碼引腳。對(duì)于SDRAM,此位置0;對(duì)于SRAM,此位置1 WS(是否使用存儲(chǔ)器的WAIT信號(hào),通常置0為不使用 DW(兩位,設(shè)置位寬。此板子的SDRAM是32位,故將DW6設(shè)為10特殊的是bit2:1,即DW0,設(shè)置BANK0
5、的位寬,由板上的跳線決定,只讀的。其實(shí)只需將BANK6對(duì)應(yīng)的4位設(shè)為0010即可,在此處BWSCON先設(shè)置為0x02000000。SDRAM接BANK6對(duì)應(yīng)的27:24位,同時(shí)注意BANK0比較特殊,如下圖所示: BANKCON0BANKCON7:用來(lái)分別配置8個(gè)BANK的時(shí)序等參數(shù)。SDRAM是映射到BANK6和BANK7上的(內(nèi)存只能映射到這兩個(gè)BANK,具體映射多大的空間,可用BANKSIZE寄存器設(shè)置,所以只需參照SDRAM芯片的Datasheet配置好BANK6和BANK7,BANKCON0BANKCON5使用默認(rèn)值0x00000700即可。對(duì)于BANKCON6
6、和BANKCON7中的各個(gè)位的描述:MT(bit16:15:設(shè)置本BANK映射的物理內(nèi)存是SRAM還是SDRAM,后面的低位就根據(jù)此MT的選擇而分開(kāi)設(shè)置。本板子應(yīng)置0b11,所以只需要再設(shè)置下面兩個(gè)參數(shù)Trcd(bit3:2:RAS to CAS delay(00=2 clocks,01=3 clocks,10=4 clocks,推2410手冊(cè)上的薦值是0b01。我們PC的BIOS里也可以調(diào)節(jié)的,應(yīng)該玩過(guò)吧。SCAN(bit1:0:Column address number(00 = 8-bit,01 = 9-bit,10= 10-bit,SDRAM列地址位數(shù)。查閱K4S561632芯片手冊(cè)得
7、知此值是9,所以SCAN=0b01。如果使用其他型號(hào)的SDRAM,您需要查看它的數(shù)據(jù)手冊(cè)來(lái)決定SCAN的取值:00-8位、01-9位、10-10位。綜合以上各值,BANKCON6BANKCON7設(shè)為0x00018005。REFRESH(刷新控制寄存器:此寄存器的bit23:11可參考默認(rèn)值,或自己根據(jù)經(jīng)驗(yàn)修改,這里用0x008e0000,關(guān)鍵是最后的Refresh Counter(簡(jiǎn)稱(chēng)R_CNT,bit10:0的設(shè)置,2410手冊(cè)上給出了公式計(jì)算方法。SDRAM手冊(cè)上“8192 refresh cycles/64ms”的描述,得到刷新周期為64ms/8192=7.8125us,結(jié)合公式,R_C
8、NT=211 + 1 12 * 7.8125 = 1955。所以可得REFRESH=0x008e0000+1995=0x008e07a3。Trp(21:20:設(shè)置為0即可。Tsrc(19:18:設(shè)置默認(rèn)值即可。BANKSIZE:設(shè)置SDRAM的一些參數(shù)。位7=1:Enable burst operation(0ARM核禁止突發(fā)傳輸,1ARM核支持突發(fā)傳輸;位5=1:SDRAM power down mode enable(0不使用SCKE信號(hào)令SDRAM進(jìn)入省電模式,1使用SCKE信號(hào)令SDRAM進(jìn)入省電模式;位4=1:SCLK is active only during the access
9、 (recommended;位2:1=010:BANK6、BANK7對(duì)應(yīng)的地址空間與BANK0-5不同。BANK0-5的地址空間都是固定的128M,地址范圍是(x*128M到(x+1*128M-1,x表示0到5。但是BANK6-7的起始地址是可變的,您可以從S3C2410數(shù)據(jù)手冊(cè)第5章"Table 5-1. BANK6-7 Addresses"中了解到BANK6-7的地址范圍與地址空間的關(guān)系。本開(kāi)發(fā)板僅使用BANK6的64M空間,其中BK76MAP(bit2:0配置BANK6/7映射的大小,可設(shè)置為010 = 128MB/128MB或001 = 64MB/64MB,只要比實(shí)
10、際RAM大都行,多出來(lái)的空間程序會(huì)檢測(cè)出來(lái),不會(huì)發(fā)生使用不存在的內(nèi)存的情況(Bootloader和Linux內(nèi)核都會(huì)作內(nèi)存檢測(cè)。BANKSIZE=0x000000b2。MRSRB6、MRSRB7(Mode register set register BANK6/7,SDRAM模式設(shè)置寄存器:可以修改的只有CL6:4(CAS latency,000 = 1 clock, 010 = 2 clocks, 011=3 clocks,其他的全部是固定的(fixed,故值為0x00000030。SDRAM 不支持CL=1的情況,所以位6:4取值為010(CL=2或011(CL=3,開(kāi)發(fā)板保守的值為0b1
11、1。至此,13個(gè)存儲(chǔ)控制器的寄存器全部介紹完了,下面就可以配置各寄存器的值,完成SDRAM初始化,實(shí)現(xiàn)代碼復(fù)制到SDRAM中執(zhí)行的操作(注:同樣的程序速度要比片內(nèi)SRAM運(yùn)行的慢。存儲(chǔ)控制器13個(gè)寄存器的設(shè)置值:mem_cfg_val: .long 0x02000000 BWSCON;此處只用到BANK6對(duì)應(yīng)的27:24,其它位沒(méi)理會(huì),想理論上應(yīng)該可以?
12、60; .long 0x00000700 BANKCON0;BANKCON0BANKCON5沒(méi)用到,使用默認(rèn)值0x00000700 .long 0x00000700 BANKCON1 &
13、#160; .long 0x00000700 BANKCON2 .long 0x00000700 BANKCON3 .long 0x00000700
14、 BANKCON4 .long 0x00000700 BANKCON5 .long 0x00018005 BANKCON6
15、160; .long 0x00018005 BANKCON7 .long 0x008e07a3 REFRESH .long 0x000000b1
16、160; BANKSIZE .long 0x00000030 MRSRB6 .long 0x00000030 MRSRB7匯編過(guò)程主要代碼:.equ &
17、#160; MEM_CTL_BASE, 0x48000000 定義存儲(chǔ)控制器寄存器基址.equ SDRAM_BASE, 0x30000000
18、0; 定義SDRAM起始地址.text.global _start_start: bl disable_watch_dog &
19、#160; 去關(guān)門(mén)喂狗 bl mem_control_setup
20、 去設(shè)置存儲(chǔ)控制器 bl copy_steppingstone_to_sdram 復(fù)制代碼到SDRAM中 ldr pc, =on_sdram
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公寓安裝櫥柜合同范本
- 勞務(wù)合同范本版一
- 出租土地建設(shè)合同范本
- 加盟合同范本找
- 勞務(wù)外包個(gè)人合同范本
- 個(gè)人購(gòu)買(mǎi)商鋪合同范本
- 代辦合同范本寫(xiě)
- 住宅租賃居間合同范本
- 凱迪拉克訂購(gòu)合同范本
- 2025年羧甲淀粉鈉合作協(xié)議書(shū)
- 家校共育之道
- 公司EHS知識(shí)競(jìng)賽題庫(kù)附答案
- DeepSeek入門(mén)寶典培訓(xùn)課件
- 社區(qū)健康促進(jìn)工作計(jì)劃
- 《作文中間技巧》課件
- 2025年度移動(dòng)端SEO服務(wù)及用戶體驗(yàn)優(yōu)化合同
- 中小學(xué)《清明節(jié)活動(dòng)方案》班會(huì)課件
- 廣東省2025年中考物理仿真模擬卷(深圳)附答案
- 新蘇教版一年級(jí)下冊(cè)數(shù)學(xué)第1單元第3課時(shí)《8、7加幾》作業(yè)
- 2024年山東電力高等專(zhuān)科學(xué)校高職單招職業(yè)技能測(cè)驗(yàn)歷年參考題庫(kù)(頻考版)含答案解析
- 特殊教育學(xué)校2024-2025學(xué)年度第二學(xué)期教學(xué)工作計(jì)劃
評(píng)論
0/150
提交評(píng)論