<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于FPGA的PCIE總線擴(kuò)展卡的設(shè)計

          基于FPGA的PCIE總線擴(kuò)展卡的設(shè)計

          作者: 時間:2010-10-11 來源:網(wǎng)絡(luò) 收藏


          本文引用地址:http://www.ex-cimer.com/article/151439.htm

            控制區(qū)域中含有一些控制信息,其中第16位用來控制傳輸方向,為O是DMA寫,為1是DMA讀,這里的讀/寫是以主機(jī)端為參考的,如果以核為參考,方向剛好相反。第18位用來使能DMA傳輸計數(shù),如果該位使能為1,那么在DMA傳輸過程中,核每完成1次DMA操作,都會進(jìn)行1次計數(shù)操作,然后把這個計數(shù)結(jié)果傳送給主機(jī),主機(jī)把這個結(jié)果填寫到描述符表的RCLAST字段中。

            表大小是指本次鏈?zhǔn)紻MA操作對應(yīng)的描述符個數(shù),每個描述符對應(yīng)一次DMA操作。

            RCLAST是一個計數(shù)單元,它有兩個作用,在鏈?zhǔn)紻MA傳輸前,表示還有多少個DMA操作等待傳輸,由于它是從0開始計數(shù)的,所以這個值等于表大小減1。還有一個重要作用是在鏈?zhǔn)紻MA傳輸過程中,用來表示鏈?zhǔn)紻MA傳輸?shù)臓顟B(tài)。如上所述,如果控制區(qū)域的第18位設(shè)置為1,那么每完成1次DMA操作,主機(jī)都會更新這個計數(shù)器。當(dāng)計數(shù)器的數(shù)值(也是從O開始計數(shù)的)等于前面設(shè)置的期望傳輸?shù)腄MA次數(shù),就表示鏈?zhǔn)紻MA傳輸操作結(jié)束。開發(fā)人員可以用這個狀態(tài)單元來察看本次傳輸是否結(jié)束,從而開始一個新的傳輸周期。

            DMA長度用來設(shè)置本描述符對應(yīng)的DMA傳輸?shù)拈L度,是以32位為單位的。主機(jī)端地址用來指示數(shù)據(jù)存放存放的位置。

            3. 2 實現(xiàn)范例

            根據(jù)上面介紹的描述符表,下面給出一個鏈?zhǔn)紻MA讀的驅(qū)動程序例子。首先生成一個描述符表,然后把描述符表表頭的4個字段的內(nèi)容分別寫入BAR2地址偏移量為0x0,0x4,0x8和0xC寄存器中。寫完后即開始此次鏈?zhǔn)紻MA讀傳輸,while循環(huán)用于等待鏈?zhǔn)紻MA結(jié)束。從下面的代碼可以看出,2個描述符對應(yīng)2次DMA操作。

            



          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();