色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ZYNQ開發案例之DMA控制器系統設計

454398 ? 來源:FPGA技術聯盟 ? 作者:FPGA技術聯盟 ? 2020-12-05 10:17 ? 次閱讀

1. DMA外設特點:

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

整個系統中的DMA控制器如圖1所示:

圖1 DMA控制器系統圖

DMAC包含一個指令處理單元,其能夠編碼控制DMA傳輸,每一個線程包含一個獨立的狀態機處理各自的DMA事件,包括通道仲裁,通道優先級。

當一個通道線程執行加載或者存儲指令的時候控制器會將指令增加到讀隊列和寫隊列中,控制器使用這些隊列來存儲指令,并且按隊列指令順序在AXI總線上完成傳輸。

2. DMA在AXI總線上傳輸:

所有的DMA傳輸使用AXI接口移動數據,包括片上內存的移動,DDR內存,以及PL上的從外設內存。PL端的從外設正常連接到DMAC外設接口上控制其數據流。DMAC在PS端可以訪問到IOPs,但是正常情況下不會使用,因為這些路徑不會提供數據流信號。DMAC數據路徑正常使用情況如圖2所示,沒一個AXI路徑可以執行一個讀或者一個寫,其中擁有好多組合,典型的DMA傳輸有:

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

內存到PL端外設或者PL端外設到內存(DDR內存到PL端外設)。

圖2 數據流傳輸

3. DMA的管理:

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

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

DMASEV:用戶指定的一個事件或者中斷發生時給出信號;

DMAKILL:終止一個線程。

當DMA管理器接受到一個從APB從接口的指令后,會等待若干個時鐘周期,在執行指令之前(pipeline是處于忙的狀態,在執行其他指令)。

4. 多通道數據FIFO(MFIFO)

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

5. 事件和中斷:

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

圖3 事件與中斷

DMA的配置實例

配置DMA做內存到內存的傳輸實例。

DMA配置步驟:

1. 初始化dma的命令數據結構,主要配置傳輸源地址,目的地址,傳輸長度,burst的大小等信息;

2. 通過DMA的ID信息,找到DMA外設信息;

3. 初始化dma的數據結構;

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

5. 通過GIC的ID信息,找到GIC外設信息;

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

7. 時能GIC中斷;

8. 使能硬件中斷;

9. 設置中斷服務函數的映射配置;

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • dma
    dma
    +關注

    關注

    3

    文章

    568

    瀏覽量

    101499
  • DDR內存
    +關注

    關注

    0

    文章

    21

    瀏覽量

    6942
收藏 人收藏

    評論

    相關推薦

    ZYNQ開發案ZYNQ的UART加載

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

    DMA控制器介紹

    本帖最后由 yyeee312 于 2015-11-12 15:17 編輯 DMA控制器是一種在系統內部轉移數據的獨特外設,可以將其視為一種能夠通過一組專用總線將內部和外部存儲
    發表于 11-04 22:50

    一種以DMA控制器為基礎的SoC系統設計

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

    基于DMA控制器的UART串行通信設計

    針對大數據量的串口間通信,在常規的UART串行數據通信的基礎上,結合Cortex-M3微控制器DMA控制器的作用,實現DMA控制的UART
    發表于 04-20 10:54 ?46次下載
    基于<b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>的UART串行通信設計

    LED顯示系統DMA控制器的設計

     采用并行DMA數據傳輸可選擇MCU加DMA芯片和具有內部DMA控制器的CPU兩種方案,從系統結構和成本以及
    發表于 12-06 10:15 ?3424次閱讀
    LED顯示<b class='flag-5'>系統</b><b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>的設計

    NiosⅡ系統DMA控制器的原理及應用

    DMA控制器是一種在系統內部轉移數據的獨特外設,可以將其視為一種能夠通過一組專用總線將內部和外部存儲與每個具有DMA能力的外設連接起來的
    發表于 12-07 08:51 ?2618次閱讀
    NiosⅡ<b class='flag-5'>系統</b>中<b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>的原理及應用

    dma控制器芯片8257資料介紹

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

    dma控制器由什么組成?

    DMA(Direct Memory Access)控制器是一種在系統內部轉移數據的獨特外設,可以將其視為一種能夠通過一組專用總線將內部和外部存儲與每個具有
    發表于 12-07 14:43 ?3742次閱讀
    <b class='flag-5'>dma</b><b class='flag-5'>控制器</b>由什么組成?

    基于AXI總線的DMA控制器的設計

    一般而言,DMA控制器的功能與結構是由本單位特定的系統結構決定的。但是作為IP而言,DMA控制器又要有其一般性。
    發表于 12-07 15:48 ?6558次閱讀
    基于AXI總線的<b class='flag-5'>DMA</b><b class='flag-5'>控制器</b>的設計

    dma控制器由什么組成

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

    PIC24F系列參考手冊直接存儲訪問控制器DMA

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

    可提高系統響應速度的DMA控制器SoC系統架構

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

    dma控制器的組成

    一個DMA控制器,實際上是采用DMA方式的外圍設備與系統總線之間的接口電路,這個接口電路是在中斷接口的基礎上再加DMA機構組成。習慣上將
    的頭像 發表于 04-01 16:08 ?1.1w次閱讀

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

    DMA(Direct Memory Access)控制器是一種在系統內部轉移數據的獨特外設,可以將其視為一種能夠通過一組專用總線將內部和外部存儲與每個具有
    發表于 11-15 10:25 ?1.4w次閱讀

    ZYNQ基礎---AXI DMA使用

    Xilinx官方也提供有一些DMA的IP,通過調用API函數能夠更加靈活地使用DMA。 1. AXI DMA的基本接口 axi dma IP的基本結構如下,主要分為三個部分,分別是
    的頭像 發表于 01-06 11:13 ?1038次閱讀
    <b class='flag-5'>ZYNQ</b>基礎---AXI <b class='flag-5'>DMA</b>使用
    主站蜘蛛池模板: 日韩大胆视频 | 亚洲久热无码中文字幕 | 欧美尤物射精集锦 | 樱桃熟了A级毛片 | 暗卫受被肉到失禁各种PLAY | 伊人国产在线视频 | 色偷拍自怕亚洲在线 | 蜜芽tv在线观看免费网站 | 我不卡影院手机在线观看 | 久久亚洲成a人片 | ai换脸在线全集观看 | 百度影音第四色 | 美女被爆插 | www.欧美与曽交性video | 日本一二三区视频在线 | 人妻免费久久久久久久了 | 在线高清无码欧美久章草 | 两个奶被男人揉了一个晚上 | 无止侵犯高H1V3无止侵犯 | 牛和人交videos欧美 | 一个人免费视频在线观看高清版 | 三级黄色一级视频 | 亚洲精品AV无码永久无码 | 少妇高潮惨叫久久久久久欧美 | 国产国语在线播放视频 | 亚洲 日韩 欧美 另类 蜜桃 | 国产三级视频在线 | bl高h乱肉辣文 | 免费看欧美一级特黄a大片 免费看欧美xxx片 | 日韩一区二区三区视频在线观看 | 调教美丽的白丝袜麻麻视频 | 久久婷婷五月综合色丁香 | 欧美激情一区二区三区视频 | 国产欧美日韩综合精品一区二区 | 久久艹伊人 | 人妻少妇久久久久久97人妻 | 粉嫩自拍 偷拍 亚洲 | china chinese中国人玩 | 精品国产乱码久久久久久下载 | 俄罗斯6一9泑女网站 | 美女全光末满18勿进 |