在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ZYNQ開發(fā)案例之DMA控制器系統(tǒng)設(shè)計(jì)

454398 ? 來源:FPGA技術(shù)聯(lián)盟 ? 作者:FPGA技術(shù)聯(lián)盟 ? 2020-12-05 10:17 ? 次閱讀

1. DMA外設(shè)特點(diǎn):

1. DMA引擎擁有一個(gè)靈活的指令設(shè)置DMA的傳輸;
2. 擁有8個(gè)cache線,每一個(gè)cache線寬度是4個(gè)字;
3. 擁有8個(gè)可以并行的DMA通道線程;
4. 擁有8個(gè)中斷給中斷控制器
5. 擁有8個(gè)DMA觸發(fā)事件并且可以編碼控制;
6. 128個(gè)(64bit)的MFIFO,在傳輸?shù)臅r(shí)候讀寫端可寫入到此FIFO;
7. 支持任意內(nèi)存到內(nèi)存的傳輸;

整個(gè)系統(tǒng)中的DMA控制器如圖1所示:

圖1 DMA控制器系統(tǒng)圖

DMAC包含一個(gè)指令處理單元,其能夠編碼控制DMA傳輸,每一個(gè)線程包含一個(gè)獨(dú)立的狀態(tài)機(jī)處理各自的DMA事件,包括通道仲裁,通道優(yōu)先級(jí)。

當(dāng)一個(gè)通道線程執(zhí)行加載或者存儲(chǔ)指令的時(shí)候控制器會(huì)將指令增加到讀隊(duì)列和寫隊(duì)列中,控制器使用這些隊(duì)列來存儲(chǔ)指令,并且按隊(duì)列指令順序在AXI總線上完成傳輸。

2. DMA在AXI總線上傳輸:

所有的DMA傳輸使用AXI接口移動(dòng)數(shù)據(jù),包括片上內(nèi)存的移動(dòng),DDR內(nèi)存,以及PL上的從外設(shè)內(nèi)存。PL端的從外設(shè)正常連接到DMAC外設(shè)接口上控制其數(shù)據(jù)流。DMAC在PS端可以訪問到IOPs,但是正常情況下不會(huì)使用,因?yàn)檫@些路徑不會(huì)提供數(shù)據(jù)流信號(hào)。DMAC數(shù)據(jù)路徑正常使用情況如圖2所示,沒一個(gè)AXI路徑可以執(zhí)行一個(gè)讀或者一個(gè)寫,其中擁有好多組合,典型的DMA傳輸有:

內(nèi)存到內(nèi)存的傳輸(片上內(nèi)存到DDR內(nèi)存);

內(nèi)存到PL端外設(shè)或者PL端外設(shè)到內(nèi)存(DDR內(nèi)存到PL端外設(shè))。

圖2 數(shù)據(jù)流傳輸

3. DMA的管理:

DMAC實(shí)時(shí)操作時(shí),用戶可以通過下面的指令設(shè)置DMA的傳輸:

DMAGO:開始一個(gè)用戶指定通道的DMA傳輸;

DMASEV:用戶指定的一個(gè)事件或者中斷發(fā)生時(shí)給出信號(hào);

DMAKILL:終止一個(gè)線程。

當(dāng)DMA管理器接受到一個(gè)從APB從接口的指令后,會(huì)等待若干個(gè)時(shí)鐘周期,在執(zhí)行指令之前(pipeline是處于忙的狀態(tài),在執(zhí)行其他指令)。

4. 多通道數(shù)據(jù)FIFO(MFIFO)

MFIFO是一個(gè)當(dāng)前所有活動(dòng)通道共享的,基于先進(jìn)入先服務(wù)的共享資源。對(duì)于編程角度來講,它是以份額深度可變的并行的FIFO集合,每個(gè)通道都有一個(gè)FIFO,但是所有FIFO的總深度不能超多MFIFO的大小,DMAC的MFIFO深度最大為128個(gè)64bit的大小。

5. 事件和中斷:

DMAC支持16個(gè)事件,開始的8個(gè)事件是中斷信號(hào),IRQs[7:0],這8個(gè)中斷都會(huì)輸出到PS或者PL的中斷控制器。這些事件使用內(nèi)部的DMA引擎通道與通道之間的傳輸。EMAC的中斷事件表如圖3所示。

圖3 事件與中斷

DMA的配置實(shí)例

配置DMA做內(nèi)存到內(nèi)存的傳輸實(shí)例。

DMA配置步驟:

1. 初始化dma的命令數(shù)據(jù)結(jié)構(gòu),主要配置傳輸源地址,目的地址,傳輸長(zhǎng)度,burst的大小等信息;

2. 通過DMA的ID信息,找到DMA外設(shè)信息;

3. 初始化dma的數(shù)據(jù)結(jié)構(gòu);

4. 連接到硬件中斷,將GIC中斷映射到中斷向量表中;

5. 通過GIC的ID信息,找到GIC外設(shè)信息;

6. 鏈接DMA中斷和GIC,將DMA中斷映射到GIC控制器上;

7. 時(shí)能GIC中斷;

8. 使能硬件中斷;

9. 設(shè)置中斷服務(wù)函數(shù)的映射配置;

10. 開始DMA的傳輸;

11. 等待DMA的傳輸完成;

程序源碼:

XDmaPs_Config *DmaConfigPtr;

    XScuGic_Config *GicConfigPtr;

    XDmaPs_Cmd DmaCmd;

    volatile int Checked = 0;

    int Index = 0;

    memset(&DmaCmd, 0, sizeof(XDmaPs_Cmd));

    DmaCmd.ChanCtrl.SrcBurstSize = 4;

    DmaCmd.ChanCtrl.SrcBurstLen = 4;

    DmaCmd.ChanCtrl.SrcInc = 1;

    DmaCmd.ChanCtrl.DstBurstSize = 4;

    DmaCmd.ChanCtrl.DstBurstLen = 4;

    DmaCmd.ChanCtrl.DstInc = 1;

    DmaCmd.BD.SrcAddr = (u32) Src;

    DmaCmd.BD.DstAddr = (u32) Dst;

    DmaCmd.BD.Length = DMA_LENGTH * sizeof(int);

    //find device

 DmaConfigPtr = XDmaPs_LookupConfig (XPAR_XDMAPS_1_DEVICE_ID);

    //config xdmaps data

    XDmaPs_CfgInitialize(&Dma,DmaConfigPtr,DmaConfigPtr->BaseAddress);

    //config gic

    //config hardware interrupt

    Xil_ExceptionInit();

 Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_IRQ_INT,(Xil_ExceptionHandler)XScuGic_InterruptHandler,(void *)&Gic);

    //find device

 GicConfigPtr = XScuGic_LookupConfig (XPAR_SCUGIC_SINGLE_DEVICE_ID);

    //config gic data

    XScuGic_CfgInitialize(&Gic,GicConfigPtr,GicConfigPtr->CpuBaseAddress);

    //connect gic handler

XScuGic_Connect(&Gic,XPAR_XDMAPS_0_FAULT_INTR,(Xil_InterruptHandler)XDmaPs_FaultISR, (void *)&Dma);

XScuGic_Connect(&Gic,DMA_DONE_INTR_0,(Xil_InterruptHandler)XDmaPs_DoneISR_0, (void *)&Dma);

    //enable gic

    XScuGic_Enable(&Gic,XPAR_XDMAPS_0_FAULT_INTR);

    XScuGic_Enable(&Gic,DMA_DONE_INTR_0);

    //enable hardware interrupt

    Xil_ExceptionEnable();

    //handler connect

XDmaPs_SetDoneHandler(&Dma,0,(XDmaPsDoneHandler)DmaDoneHandler,(void *)&Checked);

    /* Initialize source */

    for (Index = 0; Index 

編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • dma
    dma
    +關(guān)注

    關(guān)注

    3

    文章

    566

    瀏覽量

    100743
  • DDR內(nèi)存
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    6867
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ZYNQ開發(fā)案ZYNQ的UART加載

    ,最終將這個(gè)文件寫入到QSPIFLASH中,整個(gè)ZYNQ在配置好啟動(dòng)方式為FLASH啟動(dòng)后,便可做到上電自啟動(dòng)運(yùn)行下載到FLASH中的用戶程序。 為了實(shí)現(xiàn)遠(yuǎn)程加載,拋開仿真,通過UART的方式將固定的.bin文件發(fā)送給ZYNQ
    的頭像 發(fā)表于 12-05 10:15 ?5380次閱讀
    <b class='flag-5'>ZYNQ</b><b class='flag-5'>開發(fā)案</b>例<b class='flag-5'>之</b><b class='flag-5'>ZYNQ</b>的UART加載

    DMA控制器介紹

    本帖最后由 yyeee312 于 2015-11-12 15:17 編輯 DMA控制器是一種在系統(tǒng)內(nèi)部轉(zhuǎn)移數(shù)據(jù)的獨(dú)特外設(shè),可以將其視為一種能夠通過一組專用總線將內(nèi)部和外部存儲(chǔ)
    發(fā)表于 11-04 22:50

    一種以DMA控制器為基礎(chǔ)的SoC系統(tǒng)設(shè)計(jì)

      引言   DMA(Direct Memory Access,直接存儲(chǔ)存取)是一種快速傳送數(shù)據(jù)的機(jī)制。DMA控制器能夠有效替代微處理
    發(fā)表于 09-08 11:08 ?2490次閱讀
    一種以<b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>為基礎(chǔ)的SoC<b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)

    基于DMA控制器的UART串行通信設(shè)計(jì)

    針對(duì)大數(shù)據(jù)量的串口間通信,在常規(guī)的UART串行數(shù)據(jù)通信的基礎(chǔ)上,結(jié)合Cortex-M3微控制器DMA控制器的作用,實(shí)現(xiàn)DMA控制的UART
    發(fā)表于 04-20 10:54 ?46次下載
    基于<b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>的UART串行通信設(shè)計(jì)

    LED顯示系統(tǒng)DMA控制器的設(shè)計(jì)

     采用并行DMA數(shù)據(jù)傳輸可選擇MCU加DMA芯片和具有內(nèi)部DMA控制器的CPU兩種方案,從系統(tǒng)結(jié)構(gòu)和成本以及
    發(fā)表于 12-06 10:15 ?3353次閱讀
    LED顯示<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>的設(shè)計(jì)

    NiosⅡ系統(tǒng)DMA控制器的原理及應(yīng)用

    DMA控制器是一種在系統(tǒng)內(nèi)部轉(zhuǎn)移數(shù)據(jù)的獨(dú)特外設(shè),可以將其視為一種能夠通過一組專用總線將內(nèi)部和外部存儲(chǔ)與每個(gè)具有DMA能力的外設(shè)連接起來的
    發(fā)表于 12-07 08:51 ?2546次閱讀
    NiosⅡ<b class='flag-5'>系統(tǒng)</b>中<b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>的原理及應(yīng)用

    dma控制器芯片8257資料介紹

    DMA既可以指內(nèi)存和外設(shè)直接存取數(shù)據(jù)這種內(nèi)存訪問的計(jì)算機(jī)技術(shù),又可以指實(shí)現(xiàn)該技術(shù)的硬件模塊(對(duì)于通用計(jì)算機(jī)PC而言,DMA控制邏輯由CPU和DMA
    發(fā)表于 12-07 10:23 ?1.7w次閱讀
    <b class='flag-5'>dma</b><b class='flag-5'>控制器</b>芯片8257資料介紹

    dma控制器由什么組成?

    DMA(Direct Memory Access)控制器是一種在系統(tǒng)內(nèi)部轉(zhuǎn)移數(shù)據(jù)的獨(dú)特外設(shè),可以將其視為一種能夠通過一組專用總線將內(nèi)部和外部存儲(chǔ)與每個(gè)具有
    發(fā)表于 12-07 14:43 ?3697次閱讀
    <b class='flag-5'>dma</b><b class='flag-5'>控制器</b>由什么組成?

    基于AXI總線的DMA控制器的設(shè)計(jì)

    一般而言,DMA控制器的功能與結(jié)構(gòu)是由本單位特定的系統(tǒng)結(jié)構(gòu)決定的。但是作為IP而言,DMA控制器又要有其一般性。
    發(fā)表于 12-07 15:48 ?6440次閱讀
    基于AXI總線的<b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>的設(shè)計(jì)

    dma控制器由什么組成

    DMA既可以指內(nèi)存和外設(shè)直接存取數(shù)據(jù)這種內(nèi)存訪問的計(jì)算機(jī)技術(shù),又可以指實(shí)現(xiàn)該技術(shù)的硬件模塊(對(duì)于通用計(jì)算機(jī)PC而言,DMA控制邏輯由CPU和DMA
    發(fā)表于 12-07 16:08 ?5589次閱讀
    <b class='flag-5'>dma</b><b class='flag-5'>控制器</b>由什么組成

    PIC24F系列參考手冊(cè)直接存儲(chǔ)訪問控制器DMA

    本文主要介紹了PIC24F系列參考手冊(cè)直接存儲(chǔ)訪問控制器DMA)。
    發(fā)表于 06-06 17:28 ?5次下載

    可提高系統(tǒng)響應(yīng)速度的DMA控制器SoC系統(tǒng)架構(gòu)

    在圖1所示架構(gòu)中,每次DMA傳輸都要發(fā)起1次讀與1次寫操作。若在DMA傳輸期間有需要緊急處理的異常響應(yīng),AHB總線此時(shí)又被DMA控制器占用,則處理
    發(fā)表于 08-24 15:34 ?1954次閱讀
    可提高<b class='flag-5'>系統(tǒng)</b>響應(yīng)速度的<b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>SoC<b class='flag-5'>系統(tǒng)</b>架構(gòu)

    dma控制器的組成

    一個(gè)DMA控制器,實(shí)際上是采用DMA方式的外圍設(shè)備與系統(tǒng)總線之間的接口電路,這個(gè)接口電路是在中斷接口的基礎(chǔ)上再加DMA機(jī)構(gòu)組成。習(xí)慣上將
    的頭像 發(fā)表于 04-01 16:08 ?1.1w次閱讀

    dma控制器是什么_dma控制器工作方式

    DMA(Direct Memory Access)控制器是一種在系統(tǒng)內(nèi)部轉(zhuǎn)移數(shù)據(jù)的獨(dú)特外設(shè),可以將其視為一種能夠通過一組專用總線將內(nèi)部和外部存儲(chǔ)與每個(gè)具有
    發(fā)表于 11-15 10:25 ?1.3w次閱讀

    ZYNQ基礎(chǔ)---AXI DMA使用

    Xilinx官方也提供有一些DMA的IP,通過調(diào)用API函數(shù)能夠更加靈活地使用DMA。 1. AXI DMA的基本接口 axi dma IP的基本結(jié)構(gòu)如下,主要分為三個(gè)部分,分別是
    的頭像 發(fā)表于 01-06 11:13 ?241次閱讀
    <b class='flag-5'>ZYNQ</b>基礎(chǔ)---AXI <b class='flag-5'>DMA</b>使用
    主站蜘蛛池模板: 99久久国产免费 - 99久久国产免费| 国产午夜精品久久久久免费视| 日韩欧美在线第一页| 日一日操一操| 免费看大美女大黄大色| 加勒比一到三区| 在线黄色大片| 午夜黄色剧场| 在线观看a网站| 婷婷精品视频| 欧美一级免费观看| 狠狠色综合网站久久久久久久| sao虎在线精品永久| 视频一二三区| 国产精品免费久久久免费| 亚洲五月综合缴情婷婷| 亚洲一二| 欧美性操| 男女交性视频免费| 性久久久久久久久| 午夜a视频| 伊人久久综合网站| 色www视频永久免费| 毛片免费观看| 4虎影院在线观看| 开心色99xxxx开心色| semm亚洲欧美在线高清| 中文天堂最新版资源新版天堂资源| 四月婷婷七月婷婷综合| 久久婷婷国产一区二区三区| 夜夜夜夜夜操| 亚洲第一区精品日韩在线播放| 国产nv精品你懂得| 天天综合色网| 日韩啪啪网| 亚洲人成毛片线播放| 欧美视频小说| 夜夜操操| 日本女人啪啪| 亚洲伊人久久大香线蕉结合| 欧美午夜色视频国产精品|