在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > S3C6410,Tiny6410,Mini6410,MoblieDDR內(nèi)存驅(qū)動(dòng)

            S3C6410,Tiny6410,Mini6410,MoblieDDR內(nèi)存驅(qū)動(dòng)

            作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò) 收藏
            1. 概述

            S3C6410內(nèi)存控制器是采用的PL340內(nèi)存控制芯片。AMBA APB3.0接口協(xié)議規(guī)定,可以通過(guò)編程將AXI從總線接口和APB主總線接口進(jìn)行橋接,實(shí)現(xiàn)二者總線上的數(shù)據(jù)的傳輸。

            本文引用地址:http://www.biyoush.com/article/201611/319033.htm

            DRAM控制器可以通過(guò)配置兼容SDRAM類型芯片。通過(guò)向DRAM控制器中PL340寫(xiě)入內(nèi)存芯片配置參數(shù),內(nèi)存時(shí)序,來(lái)控制內(nèi)存工作。

            DRAM控制器可以直接從SDRAM或DRAM接收一個(gè)控制命令。通過(guò)將操作命令寫(xiě)入direct_cmd寄存器,操作SDRAM進(jìn)行對(duì)應(yīng)操作。通過(guò)向memc_cmd寄存器寫(xiě)入狀態(tài)模式命令,使DRAM控制器進(jìn)入對(duì)應(yīng)的工作模式。例如:向direct_cmd寄存器寫(xiě)入:Prechargeall’,‘Autorefresh’,‘NOP’,and ‘MRS’ 等命令,可以讓SDRAM芯片分別執(zhí)行不同操作,向memc_cmd寄存器寫(xiě)入一些狀態(tài)命令可以讓SDRAM芯片進(jìn)入’Config’, ‘Ready’, and ‘Low_power’等工作模式。

            DRAM控制器支持兩種節(jié)能模式。當(dāng)SDRAM處于不活動(dòng)狀態(tài)并且持續(xù)一定的時(shí)鐘周期時(shí),DRAM控制器會(huì)自動(dòng)將SDRAM進(jìn)入預(yù)充電節(jié)能模式或正常節(jié)能模式下以降低系統(tǒng)功耗。當(dāng)驅(qū)動(dòng)操作DRAM控制器進(jìn)入對(duì)應(yīng)的STOP(停止),Deep Stop(深度睡眠),Sleep Mode(睡眠)等模式時(shí),SDRAM芯片進(jìn)入自刷新的節(jié)能模式。

            l 支持SDR SDRAM,Mobile SDR SDRAM,DDR SDRAM和Mobile DDR SDRAM類型芯片

            l 支持兩個(gè)內(nèi)存芯片

            l 支持64位的AMBA AXI總線類型

            l 支持16位、64位內(nèi)存總線

            n 存儲(chǔ)器接口1:支持16位DDR SDRAM和Mobile DDR SDRAM類型芯片

            支持32位DDR SDRAM,Mobile DDR SDRAM,Mobile SDR SDRAM和SDR SDRAM類型芯片

            不支持16位Mobile SDR SDRAM和SDR SDRAM類型芯片

            l 地址空間:存儲(chǔ)器接口1支持最多2Gb地址空間

            l 支持正常節(jié)能模式和預(yù)充電的節(jié)能模式

            l 數(shù)據(jù)傳輸?shù)脱舆t特性

            l 外部存儲(chǔ)器總線優(yōu)化

            l 通過(guò)設(shè)置SFR寄存器支持選擇外部存儲(chǔ)器選型

            l 通過(guò)SFR寄存器配置存儲(chǔ)器的時(shí)序

            l 支持?jǐn)U展MRS指令集

            l 工作電壓:存儲(chǔ)器接口1: 1.8V,2.5V

            2. SDRAM類型內(nèi)存接口

            DRAM控制器支持最多兩個(gè)相同類型的內(nèi)存芯片,每個(gè)芯片最大容量256M。所有芯片共享相同引腳(時(shí)鐘使能引腳和片選引腳除外),如表1-1所示給出了DRAM控制器的外部存儲(chǔ)器引腳配置信息。

            3. SDRAM初始化

            在系統(tǒng)上電后,必須通過(guò)軟件配置SDRAM接入DRAM控制器并且初始化DRAM控制器,下面給出DDR、MOBILE DDR SDRAM的初始化流程。

            a) 向mem_cmd寄存器寫(xiě)入0b10,使其進(jìn)入NOP工作狀態(tài)

            b) 向mem_cmd寄存器寫(xiě)入0b00,使其進(jìn)入Prechargeall(整片預(yù)充電)工作狀態(tài)

            c) 向mem_cmd寄存器寫(xiě)入0b11,使其進(jìn)入Autorefresh(自刷新)工作狀態(tài)

            d) 再次向mem_cmd寄存器寫(xiě)入0b11,使其進(jìn)入Autorefresh(自刷新)工作狀態(tài)

            e) 向mem_cmd寄存器寫(xiě)入0b10,使其進(jìn)入MRS工作狀態(tài),并且地址空間內(nèi)的EMRS必須置位

            f) 再次向mem_cmd寄存器寫(xiě)入0b10,使其進(jìn)入MRS工作狀態(tài),并且地址空間內(nèi)的MRS必須置位

            4. DRAM寄存器

            1) DRAM控制器狀態(tài)寄存器(P1MEMSTAT)

            P1MEMSTAT

            描述

            初始值

            保留

            [31:9]

            -

            -

            芯片數(shù)量

            [8:7]

            內(nèi)存控制器支持的芯片最大數(shù)量:

            01 = 2片

            6410只支持2片芯片,初始化為只讀的01

            01

            芯片類型

            [6:4]

            內(nèi)存控制器支持的芯片類型:

            100 = MSDR/SDR/MDDR/DDR中任一類型

            100

            芯片位寬

            [3:2]

            接入內(nèi)存芯片的位寬:

            00 = 16位 01 = 32位

            10 = 保留 11 = 保留

            01

            控制器狀態(tài)

            [1:0]

            DRAM控制器狀態(tài):

            00 = Config配置狀態(tài)

            01 = Ready就緒狀態(tài)

            10 = Pause暫停狀態(tài)

            11 = Low-Power節(jié)能狀態(tài)

            00

            實(shí)際上,讀到的有用信息就是Controller Status和Memory width。

            2) DRAM控制器命令寄存器(P1MEMCCMD)

            P1MEMCCMD

            描述

            初始值

            保留

            [31:3]

            未定義,寫(xiě)入0

            -

            Memc_cmd

            [2:0]

            設(shè)置內(nèi)存控制器的工作狀態(tài):

            000 = Go

            001 = sleep

            010 = wakeup

            011 = Pause

            100 = Configure

            101~111 = 保留

            最開(kāi)始應(yīng)該配置為0x4,是處于Configure狀態(tài)。在配置完所有的DRAM之后,將該寄存器設(shè)置為0x0,處于運(yùn)行狀態(tài)。

            3) 直接命令寄存器(P1DIRECTCMD)

            P1DIRECTCMD

            描述

            初始值

            保留

            [31:23]

            未定義,寫(xiě)入0

            擴(kuò)展內(nèi)存命令

            [22]

            (見(jiàn)下表)

            芯片號(hào)

            [21:20]

            映射到外部存儲(chǔ)芯片地址的位

            命令

            [19:18]

            具體命令(見(jiàn)下表)

            Bank地址

            [17:16]

            當(dāng)以MRS或EMRS命令訪問(wèn)時(shí),映射到外部存儲(chǔ)器的Bank地址位

            [15:14]

            未定義,寫(xiě)入0

            地址線0~13

            [13:0]

            當(dāng)以MRS或EMRS命令訪問(wèn)時(shí),映射到外部存儲(chǔ)器的內(nèi)存地址位

            用于發(fā)送命令到DRAM和訪問(wèn)DRAM中的MRS和EMRS寄存器。通過(guò)該寄存器初始化DRAM,先設(shè)置為NOP模式,然后設(shè)置為PrechargeAll進(jìn)行充電,然后設(shè)置EMRS和MRS寄存器,一般是這么一個(gè)流程。具體的要參見(jiàn)你所使用的DRAM的datasheet。

            4) 內(nèi)存配置寄存器(P1MEMCFG)

            P1MEMCFG

            描述

            初始值

            保留

            [31:23]

            未定義

            啟動(dòng)芯片

            [22]

            使能下面數(shù)量的芯片開(kāi)始執(zhí)行刷新操作:

            00 = 1芯片

            01 = 2芯片

            10/11 = 保留

            00


            QoS master位

            [20:18]

            設(shè)置QoS值:

            000 = ARID[3:0]

            001= ARID[4:1]

            010 = ARID[5:2]

            011 = ARID[6:3]

            100 = ARID[7:4]

            101~111 = 保留

            000

            內(nèi)存突發(fā)訪問(wèn)

            [17:15]

            在內(nèi)存讀寫(xiě)時(shí),設(shè)置突發(fā)訪問(wèn)數(shù)據(jù)的數(shù)量:

            000 = 突發(fā)訪問(wèn)1個(gè)數(shù)據(jù)

            001 = 突發(fā)訪問(wèn)2個(gè)數(shù)據(jù)

            010 = 突發(fā)訪問(wèn)4個(gè)數(shù)據(jù)

            011 = 突發(fā)訪問(wèn)8個(gè)數(shù)據(jù)

            100 = 突發(fā)訪問(wèn)16個(gè)數(shù)據(jù)

            101~111 = 保留

            該值必須通過(guò)DIRECTORYCMD寄存器,寫(xiě)入到內(nèi)存的模式寄存器中,并且數(shù)據(jù)必須匹配

            010

            Bank地址

            [17:16]

            當(dāng)以MRS或EMRS命令訪問(wèn)時(shí),映射到外部存儲(chǔ)器的Bank地址位

            Stop_mem_clock

            [14]

            當(dāng)停止芯片時(shí)鐘,不允許訪問(wèn)內(nèi)存數(shù)據(jù)時(shí),置位

            0

            自動(dòng)節(jié)能

            [13]

            當(dāng)該位置位時(shí),芯片自動(dòng)進(jìn)入節(jié)能狀態(tài)

            0

            關(guān)閉芯片延遲時(shí)間

            [12:7]

            當(dāng)關(guān)閉內(nèi)存芯片時(shí),延遲的時(shí)鐘個(gè)數(shù)

            000000

            自動(dòng)預(yù)充電位

            [6]

            內(nèi)存地址中自動(dòng)預(yù)充電位的位置:

            0 = ADDR[10]

            1 = ADDR[8]

            0

            行地址位數(shù)

            [5:3]

            AXI地址線上的行地址位數(shù):

            000 = 11位

            001 = 12位

            010 = 13位

            011 = 14位

            100 = 15位

            101= 16位

            100

            列地址位數(shù)

            [2:0]

            AXI地址線上的列地址位數(shù):

            000 = 8位

            001 = 9位

            010 = 10位

            011 = 11位

            100 = 12位

            000

            參考DRAM的datasheet。

            5) 內(nèi)存刷新時(shí)間寄存器(P1REFRESH)

            P1REFRESH

            描述

            初始值

            [31:15]

            -

            刷新時(shí)間

            [14:0]

            內(nèi)存刷新時(shí)鐘周期數(shù)

            0xA60

            6) CAS 延遲寄存器(P1CASLAT)

            P1CASLAT

            描述

            初始值

            [31:4]

            -

            -

            CAS延遲

            [3:1]

            列地址選通延遲內(nèi)存時(shí)鐘周期數(shù)

            0xA60

            CAS HALF周期

            [0]

            設(shè)置CAS延遲數(shù)是否為半個(gè)內(nèi)存時(shí)鐘周期

            0 = 以[3:1]設(shè)置數(shù)為CAS延遲時(shí)鐘周期

            1 = 以[3:1]設(shè)置數(shù)的一半為CAS延遲時(shí)鐘周期

            0

            參考DRAM的datasheet。

            下面13個(gè)寄存器用于DRAM操作中所需時(shí)間和延時(shí)寄存器,具體可以參考PL340文檔。

            7) T_DQSS寄存器(P1T_DQSS)

            P1T_DQSS

            描述

            初始值

            [31:2]

            -

            -

            t_DQSS

            [1:0]

            寫(xiě)入DQS的時(shí)鐘周期

            1

            8) T_MRD寄存器(P1T_MRD)

            P1T_MRD

            描述

            初始值

            [31:7]

            -

            -

            t_ MRD

            [6:0]

            設(shè)置模式寄存器命令時(shí)間(內(nèi)存時(shí)鐘周期為單位)

            0x02

            9) T_RAS寄存器(P1T_RAS)

            P1T_RAS

            描述

            初始值

            [31:4]

            -

            -

            t_RAS

            [3:0]

            設(shè)置行地址選通到預(yù)充電操作延遲時(shí)間(內(nèi)存時(shí)鐘周期為單位)

            0x7

            10) T_RC寄存器(P1T_RC)

            P1T_RC

            描述

            初始值

            [31:4]

            -

            -

            t_RC

            [3:0]

            設(shè)置激活內(nèi)存Bank x到激活另外一個(gè)Bank x操作的延遲時(shí)間(內(nèi)存時(shí)鐘周期為單位)

            0xB

            11) T_RCD寄存器(P1T_RCD)

            P1T_RCD

            描述

            初始值

            [31:6]

            -

            -

            Scheduled_RCD

            [5:3]

            設(shè)置t_RCD-3

            011

            t_RCD

            [2:0]

            設(shè)置RAS到CAS操作的最小延遲時(shí)間(內(nèi)存時(shí)鐘周期為單位)

            101

            12) T_RFC寄存器(P1T_RFC)

            P1T_RFC

            描述

            初始值

            [31:10]

            -

            -

            Scheduled_RFC

            [9:5]

            設(shè)置t_RFC-3

            0x10

            t_RFC

            [4:0]

            設(shè)置自動(dòng)刷新命令操作延遲時(shí)間(內(nèi)存時(shí)鐘周期為單位)

            0x12

            13) T_RP寄存器(P1T_RP)

            P1T_RP

            描述

            初始值

            [31:6]

            -

            -

            Scheduled_RP

            [5:3]

            設(shè)置t_RP-3

            011

            t_RFC

            [2:0]

            設(shè)置預(yù)充電到RAS操作的延遲時(shí)間(內(nèi)存時(shí)鐘周期為單位)

            101

            14) T_RRD寄存器(P1T_RRD)

            P1T_ RRD

            描述

            初始值

            [31:4]

            -

            -

            t_RRD

            [3:0]

            設(shè)置激活內(nèi)存Bank x到激活內(nèi)存Bank y操作的延遲時(shí)間(內(nèi)存時(shí)鐘周期為單位)

            0x2

            15) T_WR寄存器(P1T_WR)

            P1T_ WR

            描述

            初始值

            [31:3]

            -

            -

            t_WR

            [2:0]

            設(shè)置寫(xiě)入數(shù)據(jù)到預(yù)充電操作的延遲時(shí)間(內(nèi)存時(shí)鐘周期為單位)

            011

            16) T_WTR寄存器(P1T_WTR)

            P1T_ WTR

            描述

            初始值

            [31:3]

            -

            -

            t_WTR

            [2:0]

            設(shè)置寫(xiě)入數(shù)據(jù)到讀取數(shù)據(jù)操作的延遲時(shí)間(內(nèi)存時(shí)鐘周期為單位)

            011

            17) T_XP寄存器(P1T_XP)

            P1T_ XP

            描述

            初始值

            [31:8]

            -

            -

            t_XP

            [7:0]

            設(shè)置退出關(guān)閉電源命令的延遲時(shí)間(內(nèi)存時(shí)鐘周期為單位)

            0x1

            18) T_XSR寄存器(P1T_XSR)

            P1T_ XSR

            描述

            初始值

            [31:8]

            -

            -

            t_XSR

            [7:0]

            設(shè)置退出自刷新命令的延遲時(shí)間(內(nèi)存時(shí)鐘周期為單位)

            0xA

            19) T_ESR寄存器(P1T_ESR)

            P1T_ ESR

            描述

            初始值

            [31:8]

            -

            -

            t_ESR

            [7:0]

            設(shè)置自刷新命令的延遲時(shí)間(內(nèi)存時(shí)鐘周期為單位)

            0x14

            內(nèi)存初始化代碼:

            (開(kāi)發(fā)環(huán)境為ADS1.2)

            1. MEM_SYS_CFGEQU0x7e00f120
            2. DMC1_BASEEQU0x7e001000
            3. INDEX_DMC_MEMC_STATUSEQU0x0
            4. INDEX_DMC_MEMC_CMDEQU0x4
            5. INDEX_DMC_DIRECT_CMDEQU0x08
            6. INDEX_DMC_MEMORY_CFGEQU0x0c
            7. INDEX_DMC_REFRESH_PRDEQU0x10
            8. INDEX_DMC_CAS_LATENCYEQU0x14
            9. INDEX_DMC_T_DQSSEQU0x18
            10. INDEX_DMC_T_MRDEQU0x1c
            11. INDEX_DMC_T_RASEQU0x20
            12. INDEX_DMC_T_RCEQU0x24
            13. INDEX_DMC_T_RCDEQU0x28
            14. INDEX_DMC_T_RFCEQU0x2c
            15. INDEX_DMC_T_RPEQU0x30
            16. INDEX_DMC_T_RRDEQU0x34
            17. INDEX_DMC_T_WREQU0x38
            18. INDEX_DMC_T_WTREQU0x3c
            19. INDEX_DMC_T_XPEQU0x40
            20. INDEX_DMC_T_XSREQU0x44
            21. INDEX_DMC_T_ESREQU0x48
            22. INDEX_DMC_MEMORY_CFG2EQU0x4C
            23. INDEX_DMC_CHIP_0_CFGEQU0x200
            24. INDEX_DMC_CHIP_1_CFGEQU0x204
            25. INDEX_DMC_CHIP_2_CFGEQU0x208
            26. INDEX_DMC_CHIP_3_CFGEQU0x20C
            27. INDEX_DMC_USER_STATUSEQU0x300
            28. INDEX_DMC_USER_CONFIGEQU0x304
            29. AREALOW_INIT,CODE,READONLY
            30. ENTRY
            31. EXPORTmem_init
            32. mem_init
            33. ldrr0,=MEM_SYS_CFG;Memorysussystemaddress0x7e00f120
            34. movr1,#0xd;Xm0CSn2=NFCONCS0設(shè)置NANDFlash為存儲(chǔ)器
            35. strr1,[r0]
            36. ldrr0,=DMC1_BASE;DMC1baseaddress0x7e001000
            37. ;memc_cmd:010wakeup
            38. ;喚醒內(nèi)存
            39. ldrr1,=0x04
            40. strr1,[r0,#INDEX_DMC_MEMC_CMD]
            41. ;Refreshperiod=((Startup_HCLK/1000*DDR_tREFRESH)-1)/1000000->DDR_tREFRESH7800ns
            42. ;HCLK=133MHz
            43. ;DDR內(nèi)存規(guī)格規(guī)定,電容的電荷存儲(chǔ)上限時(shí)間為64ms,而刷新操作每次是針對(duì)
            44. ;一行進(jìn)行的,即每一行的刷新時(shí)間為64ms,而內(nèi)存芯片中一定數(shù)量的行
            45. ;以L-Bank表示(見(jiàn)內(nèi)存工作原理與物理特性),每個(gè)L-Bank有8192行(見(jiàn)內(nèi)存硬件手冊(cè))
            46. ;因此對(duì)L-Bank的刷新操作應(yīng)該在64ms/8192=7813us時(shí)間內(nèi)進(jìn)行一次
            47. ;而MDDR工作在133MHz時(shí),其一個(gè)時(shí)鐘周期為1/133M,那么一次L-Bank刷新
            48. ;時(shí)間需要7.8us/1/133M個(gè)時(shí)鐘周期,即有下面的公式:
            49. ;Refresh_Count=tREFRESH*HCLK(MHz)/1000
            50. ;tREFRESH=7813HCLK=133Refresh_Count=1039
            51. ldrr1,=1039;DMC_DDR_REFRESH_PRD
            52. strr1,[r0,#INDEX_DMC_REFRESH_PRD]
            53. ;CAS_Latency=DDR_CASL<<1->DDR_CASL3
            54. ldrr1,=6;DMC_DDR_CAS_LATENCY
            55. strr1,[r0,#INDEX_DMC_CAS_LATENCY]
            56. ;t_DQSS(clockcycles)
            57. ldrr1,=1;DMC_DDR_t_DQSS
            58. strr1,[r0,#INDEX_DMC_T_DQSS]
            59. ;T_MRD(clockcycles)
            60. ldrr1,=2;DMC_DDR_t_MRD
            61. strr1,[r0,#INDEX_DMC_T_MRD]
            62. ;T_RAS(clockcycles)
            63. ldrr1,=7;DMC_DDR_t_RAS
            64. strr1,[r0,#INDEX_DMC_T_RAS]
            65. ;T_RCActiveBankxtoActiveBankxdelay(clockcycles)
            66. ldrr1,=10;DMC_DDR_t_RC
            67. strr1,[r0,#INDEX_DMC_T_RC]
            68. ;T_RCDRAStoCADdelay(clockcycles)
            69. ldrr1,=4;DMC_DDR_t_RCD
            70. ldrr2,=8;DMC_DDR_schedule_RCD
            71. orrr1,r1,r2
            72. strr1,[r0,#INDEX_DMC_T_RCD]
            73. ;T_RFCAutoRefresh(clockcycles)
            74. ldrr1,=11;DMC_DDR_t_RFC
            75. ldrr2,=256;DMC_DDR_schedule_RFC
            76. orrr1,r1,r2
            77. strr1,[r0,#INDEX_DMC_T_RFC]
            78. ;T_RPPrechargetoRASdelay(clockcycles)
            79. ldrr1,=4;DMC_DDR_t_RP
            80. ldrr2,=8;DMC_DDR_schedule_RP
            81. orrr1,r1,r2
            82. strr1,[r0,#INDEX_DMC_T_RP]
            83. ;T_RRDActiveBankxtoActiveBankydelay(clockcycles)
            84. ldrr1,=3;DMC_DDR_t_RRD
            85. strr1,[r0,#INDEX_DMC_T_RRD]
            86. ;T_WRWritetoprechargedelay(clockcycles)
            87. ldrr1,=3;DMC_DDR_t_WR
            88. strr1,[r0,#INDEX_DMC_T_WR]
            89. ;T_WTRWritetoReaddelay(clockcycles)
            90. ldrr1,=2;DMC_DDR_t_WTR
            91. strr1,[r0,#INDEX_DMC_T_WTR]
            92. ;T_XPExitPowerdown(clockcycles)
            93. ldrr1,=2;DMC_DDR_t_XP
            94. strr1,[r0,#INDEX_DMC_T_XP]
            95. ;T_XSRExitselfrefresh(clockcycles)
            96. ldrr1,=17;DMC_DDR_t_XSR
            97. strr1,[r0,#INDEX_DMC_T_XSR]
            98. ;T_ESRSelfRefresh(clockcycles)
            99. ldrr1,=17;DMC_DDR_t_ESR
            100. strr1,[r0,#INDEX_DMC_T_ESR]
            101. ;MemoryConfigurationRegister
            102. ldrr1,=0x40010012;DMC1_MEM_CFG
            103. strr1,[r0,#INDEX_DMC_MEMORY_CFG]
            104. ldrr1,=0xb41;DMC1_MEM_CFG2
            105. strr1,[r0,#INDEX_DMC_MEMORY_CFG2]
            106. ldrr1,=0x150f8;DMC1_CHIP0_CFG
            107. strr1,[r0,#INDEX_DMC_CHIP_0_CFG]
            108. ldrr1,=0;DMC_DDR_32_CFG
            109. strr1,[r0,#INDEX_DMC_USER_CONFIG]
            110. ;ThefollowsisaccordingtotheDatasheetinitializationsequence
            111. ;DMC0DDRChip0configurationdirectcommandreg
            112. ldrr1,=0x0c0000;DMC_NOP0
            113. strr1,[r0,#INDEX_DMC_DIRECT_CMD]
            114. ;PrechargeAll
            115. ldrr1,=0;DMC_PA0
            116. strr1,[r0,#INDEX_DMC_DIRECT_CMD]
            117. ;AutoRefresh2time
            118. ldrr1,=0x40000;DMC_AR0
            119. strr1,[r0,#INDEX_DMC_DIRECT_CMD]
            120. strr1,[r0,#INDEX_DMC_DIRECT_CMD]
            121. ;MRS
            122. ldrr1,=0xa0000;DMC_mDDR_EMR0
            123. strr1,[r0,#INDEX_DMC_DIRECT_CMD]
            124. ;ModeReg
            125. ldrr1,=0x80032;DMC_mDDR_MR0
            126. strr1,[r0,#INDEX_DMC_DIRECT_CMD]
            127. ;EnableDMC1
            128. movr1,#0x0
            129. strr1,[r0,#INDEX_DMC_MEMC_CMD]
            130. check_dmc1_ready
            131. ldrr1,[r0,#INDEX_DMC_MEMC_STATUS]
            132. movr2,#0x3
            133. andr1,r1,r2
            134. cmpr1,#0x1
            135. bnecheck_dmc1_ready
            136. nop
            137. movpc,lr
            138. END



            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉