色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

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

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


          本文引用地址:http://cafeforensic.com/article/151439.htm

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

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

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

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

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

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

            



          評(píng)論


          相關(guān)推薦

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

          關(guān)閉