在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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>

            新聞中心

            S3C2440-DMA

            作者: 時間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
            S3c2440A 支持位于系統(tǒng)總線和外設(shè)總線之間的4 個通道的控制器。每個DMA 控制器通道
            無限制地執(zhí)行系統(tǒng)總線上的設(shè)備或外設(shè)總線上的設(shè)備之間數(shù)據(jù)搬移。換句話說,就是每個
            通道都操作一下四種情況:
            (1)源和目的設(shè)備都在系統(tǒng)總線上
            (2)源設(shè)備在系統(tǒng)總線上,目的設(shè)備在外設(shè)總線上
            (3)源設(shè)備在外設(shè)總線上,目的設(shè)備在系統(tǒng)總線上
            (4)源設(shè)備和目的設(shè)備都在外設(shè)總線上
            DMA 的主要有點就是其傳輸數(shù)據(jù)不需要CPU 的干涉。DMA 操作可由軟件或來自內(nèi)設(shè)或外
            部請求引腳來初始化。
            DMA每次傳送2個字節(jié),放到FIFO中,IIS就播放,F(xiàn)IFO空,導(dǎo)致DMA被再次觸發(fā),直到傳輸計數(shù)器為0,產(chǎn)生DMA中斷,CPU進入中斷處理程序。在DMA傳送的時候,CPU可以處理其他事情。提高了系統(tǒng)效率。
            下面的程序使用IIS播放聲音同時跑流水燈。如果不用DMA,直接用上一篇的IIS程序,會發(fā)現(xiàn)聲音斷斷續(xù)續(xù),因為IIS和流水燈一起分CPU的時間。如果使用DMA,則IIS需要的數(shù)據(jù)由DMA負責(zé)傳送,而CPU可以執(zhí)行流水燈程序,互相不耽誤。當傳輸計數(shù)器為0時,產(chǎn)生DMA中斷,CPU進入中斷處理程序。其他時候,CPU可以執(zhí)行流水燈。這樣就實現(xiàn)了流水燈和IIS放音同時執(zhí)行。
            #include "2440addr.h"
            #include "music.h"
            #define L3MODE 1<<2
            #define L3DATA 1<<3
            #define L3CLOCK 1<<4
            #define _ISR_STARTADDRESS 0x33ffff00
            #define U32 unsigned int
            U32 flag, result, remain;
            void Delay(){
            int i, j, k;
            for(i = 0; i < 0xff; i++)
            for(j = 0; j < 0xff; j++)
            for(k = 0; k < 0xff; k++)
            ;
            }
            void Led(){
            int i;
            for(i = 3; i < 7; i++){
            rGPFDAT &= "(1<<i);
            Delay();
            rGPFDAT = 0xff;
            }
            }
            void WriteL3(unsigned char data, unsigned int mode){
            //mode = 0,地址模式;mode = 1,數(shù)據(jù)傳輸模式
            int i, k;
            if(mode == 0){
            rGPBDAT = rGPBDAT & "(L3MODE|L3DATA|L3CLOCK )|L3CLOCK;
            }
            else{
            rGPBDAT = rGPBDAT & "(L3MODE|L3DATA|L3CLOCK)|(L3CLOCK|L3MODE);
            }
            for(k = 0; k < 5; k++)
            ;
            for(i = 0; i < 8; i++){
            if(data & 0x1){
            rGPBDAT &= "L3CLOCK;
            rGPBDAT |= L3DATA;
            for(k = 0; k < 5; k++)
            ;
            rGPBDAT |= L3CLOCK;
            rGPBDAT |= L3DATA;
            for(k = 0; k < 5; k++)
            ;
            }
            else{
            rGPBDAT &= "L3CLOCK;
            rGPBDAT &= "L3DATA;
            for(k = 0; k < 5; k++)
            ;
            rGPBDAT |= L3CLOCK;
            rGPBDAT &= "L3DATA;
            for(k = 0; k < 5; k++)
            ;
            }
            data >>= 1;
            }
            rGPBDAT = rGPBDAT & "(L3MODE|L3DATA|L3CLOCK)|(L3CLOCK|L3MODE);
            }
            上一頁 1 2 下一頁

            關(guān)鍵詞: S3C2440DMA控制

            評論


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

            關(guān)閉