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

<s id="cmphk"><label id="cmphk"></label></s>
    <span id="cmphk"><var id="cmphk"></var></span>
    <dfn id="cmphk"><var id="cmphk"></var></dfn>
    <menu id="cmphk"><thead id="cmphk"></thead></menu>

    <address id="cmphk"></address>

      <dfn id="cmphk"></dfn>
      
      
      <span id="cmphk"></span>

      <object id="cmphk"><tt id="cmphk"></tt></object>
      1. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > S3C2410處理器的擴展設(shè)計

        S3C2410處理器的擴展設(shè)計

        作者: 時間:2016-11-21 來源:網(wǎng)絡(luò) 收藏
        1. S3C2410處理器擴展內(nèi)存32MB的SDRAM
        1.需求分析
        S3C2410是32位處理器(指令一次能夠操作32位數(shù)據(jù)(運算器一次可以處理32位數(shù)據(jù));通用寄存器多是32位寄存器;處理器內(nèi)部數(shù)據(jù)通道也是32位的;處理器外部數(shù)據(jù)總線寬度通常是32位的,地址總線寬度只是代表CPU尋址范圍大小,與CPU是多少位的無關(guān),也即32位CPU的地址總線不一定是32根的,例如對于s3c2410,每一個Bank對應(yīng)27根地址線,尋址能力為128MB,全部8個Bank總的尋址能力為1GB),所以為了最大限度的發(fā)揮其性能,內(nèi)存最好也是32位(指數(shù)據(jù)寬度)的,(當(dāng)然,在s3c2410的8個bank中,除了Bank0只能選擇16/32數(shù)據(jù)位寬外,其余的7個Bank均可以單獨選擇8/16/32位寬的存儲系統(tǒng))然而市面上很少有32位寬度的單片SDRAM,所以一般都采取兩片16位的SDRAM進行位擴展得到32位的SDRAM
        2.設(shè)計電路圖
        2410與K4S561632D相連

        本系統(tǒng)擴展后的內(nèi)存系統(tǒng)為16M×32Bit的(此處32Bit是指數(shù)據(jù)位寬度,而非地址位,可以理解SDRAM數(shù)據(jù)位寬度與地址線的條數(shù)無關(guān),明白數(shù)據(jù)線和地址線的區(qū)別,對于下面地址線的連接方式的理解非常重要
        3.初始化程序代碼
        子函數(shù)說明:初始化內(nèi)存控制器
        memsetup:
        mov r1,#MEM_CTL_BASE
        adrl r2,mem_cfg_val
        add r3,r1,#52
        1:
        ldr r4,[r2],#4 @將地址為R2的內(nèi)存單元數(shù)據(jù)讀取到R4中,然后r2=r2 +4
        str r4,[r1],#4 @將r4的數(shù)據(jù)寫入到r1的內(nèi)存單元,然后r1=r1+4
        cmp r1,r3 @比較R1,R3是否設(shè)置完所有的13個寄存器。
        bne 1b @如果沒有復(fù)制完,就繼續(xù)
        mov pc,lr @復(fù)制完后返回,b指令則不行。區(qū)別bl。


        @*****************************************************************


        子函數(shù)說明:復(fù)制代碼到SDRAM,將SRAM中的4K數(shù)據(jù)全部復(fù)制到SDRAM,
        @ SRAM起始地址為0x00000000,SDRAM的起始地址為0x30000000
        @*****************************************************************

        copy_steppingstone_to_sdram:
        mov r1,#0 @設(shè)置R1為SRAM的起始地址為0x00000000
        ldr r2,=SDRAM_BASE @設(shè)置R2為SDRAM的起始地址為0設(shè)置R1為0X300 00000
        mov r3 ,#4*1024 @設(shè)置R3為4K
        1:
        ldr r4,[r1],#4 @從SRAM中讀取4字節(jié)的數(shù)據(jù)到R4中,然后r1=r 1+4
        str r4,[r2],#4 @將r4中的4字節(jié)數(shù)據(jù)復(fù)制到SDRAM中,然后r2= r2+4
        cmp r1,r3 @判斷是否完成:SRAM的地址是否等于末地址> 。
        bne 1b @若沒有完成,繼續(xù)復(fù)制
        mov pc,lr @返回

        .align 4
        @******************************************************
        @存儲控制器13個寄存器的設(shè)置值
        @******************************************************
        mem_cfg_val:
        .long 0x22011110 @BWSCON :
        .long 0x00000700 @BANKCON0
        .long 0x00000700 @BANKCON1
        .long 0x00000700 @BANKCON2
        .long 0x00000700 @BANKCON3
        .long 0x00000700 @BANKCON4
        .long 0x00000700 @BANKCON5
        .long 0x00018005 @BANKCON6
        .long 0x00018005 @BANKCON7
        .long 0x008e07a3 @REFRESH
        .long 0x000000b1 @BANKSIZE
        .long 0x00000030 @MRSRB6
        .long 0x00000030 @MRSRB7
        2.擴展為64MB的NAND Flash用作啟動ROM和大容量存儲
        1.需求分析
        NandFlash接口信號較少
        * 數(shù)據(jù)寬度只有8Bit,沒有地址總線。地址和數(shù)據(jù)總線復(fù)用,串行讀取

        NandFlash地址結(jié)構(gòu)
        * NandFlash設(shè)備的存儲容量是以頁(Page)和塊(Block)為單位的。
        * Page=528Byte (512Byte用于存放數(shù)據(jù),其余16Byte用于存放其他信息,如塊好壞的標(biāo)記、塊的邏輯地址、頁內(nèi)數(shù)據(jù)的ECC校驗和等)。
        * Block=32Page
        * 容量為64MB的NandFlash存儲結(jié)構(gòu)為:512Byte×32Page×4096Block
        * NandFlash以頁為單位進行讀和編程(寫)操作,一頁為512Byte;以塊為單位進行擦除操作,一塊為512Byte*32page=16KB
        * 對于64MB的NAND設(shè)備,需要26根地址線,由于NAND設(shè)備數(shù)據(jù)總線寬度是8位的,因此必須經(jīng)過4個時鐘周期才能把全部地址信息接收下來
        * 可以這么說,第一個時鐘周期給出的是目標(biāo)地址在一個page內(nèi)的偏移量,而后三個時鐘周期給出的是頁地址。
        * 由于一個頁內(nèi)有512Byte,需要9bit的地址尋址,而第一個時鐘周期只給出了低8bit,最高位A8由不同的讀命令(Read Mode2)來區(qū)分的。
        NandFlash的命令

        2.電路圖設(shè)計
        擴展芯片:HY57561620


        3.NAND FLASH配置寄存器初始化

        MemCfgInit(); //設(shè)置NAND FLASH的配置寄存器
        該函數(shù)原型:

        void MemCfgInit(void)
        {
        //rCLKCON |= 0xffff0;

        //enable nand flash control, initilize ecc, chip disable,
        rNFCONF = (1<<15)|(1<<12)|(1<<11)|(7<<8)|(7<<4)|(7);
        }
        使能nand flash控制,初始化,芯片禁能
        1<<15,NFCONF寄存器是NAND FLASH的配置寄存器
        第15位置1,是使能nand flash控制寄存器
        此位在芯片開始工作,自動導(dǎo)入的時候?qū)⒈蛔詣忧辶悖?br />如果想訪問nand flash存儲,該位必須置一。
        14,13位為保留位
        1<<12,第12位置1,初始化ECC,S3C2410僅僅支持512個字節(jié)的ECC校驗,
        所以每512個字節(jié),需要設(shè)置一次ECC初始化。
        ECC是Error Checking and Correcting,錯誤檢查與校驗
        1<<11,第11位置1,NAND flash nFCE 設(shè)置為不活動,即nand flash存儲芯片禁能
        7<<8,即10,9,8位設(shè)置為111,
        這3位是CLE ALE信號的持續(xù)時間值設(shè)置,持續(xù)時間=HCLK*(TACLS + 1)
        TACLS即111(b)=7;
        7位為保留位
        7<<4,即6,5,4位設(shè)置為111,為TWRPH0 周期設(shè)置值,duration=HCLK*
        (TWRPH0+1)
        3位為保留位
        7 位第2,1,0,設(shè)置為111,為TWRPH1周期設(shè)置值,duration=HCLK*(TWRPH0+1)



        關(guān)鍵詞: S3C2410處理器擴展設(shè)

        評論


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

        關(guān)閉
        ×

        “芯”朋友见面大会
        珠海|11.14|泰克“芯”朋友见面大会珠海站|泰克带您从测试角度看半导体的整条产业链,快来报名抢位吧>>