chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

454398 ? 來(lái)源: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線(xiàn),每一個(gè)cache線(xiàn)寬度是4個(gè)字;
3. 擁有8個(gè)可以并行的DMA通道線(xiàn)程;
4. 擁有8個(gè)中斷給中斷控制器;
5. 擁有8個(gè)DMA觸發(fā)事件并且可以編碼控制;
6. 128個(gè)(64bit)的MFIFO,在傳輸?shù)臅r(shí)候讀寫(xiě)端可寫(xiě)入到此FIFO;
7. 支持任意內(nèi)存到內(nèi)存的傳輸;

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

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

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

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

2. DMA在A(yíng)XI總線(xiàn)上傳輸:

所有的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端可以訪(fǎng)問(wèn)到IOPs,但是正常情況下不會(huì)使用,因?yàn)檫@些路徑不會(huì)提供數(shù)據(jù)流信號(hào)。DMAC數(shù)據(jù)路徑正常使用情況如圖2所示,沒(méi)一個(gè)AXI路徑可以執(zhí)行一個(gè)讀或者一個(gè)寫(xiě),其中擁有好多組合,典型的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í),用戶(hù)可以通過(guò)下面的指令設(shè)置DMA的傳輸:

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

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

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

當(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ì)于編程角度來(lái)講,它是以份額深度可變的并行的FIFO集合,每個(gè)通道都有一個(gè)FIFO,但是所有FIFO的總深度不能超多MFIFO的大小,DMAC的MFIFO深度最大為128個(gè)64bit的大小。

5. 事件和中斷:

DMAC支持16個(gè)事件,開(kāi)始的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. 通過(guò)DMA的ID信息,找到DMA外設(shè)信息;

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

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

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

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

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

8. 使能硬件中斷;

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

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

    關(guān)注

    3

    文章

    580

    瀏覽量

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

    關(guān)注

    0

    文章

    22

    瀏覽量

    7340
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

    ,最終將這個(gè)文件寫(xiě)入到QSPIFLASH中,整個(gè)ZYNQ在配置好啟動(dòng)方式為FLASH啟動(dòng)后,便可做到上電自啟動(dòng)運(yùn)行下載到FLASH中的用戶(hù)程序。 為了實(shí)現(xiàn)遠(yuǎn)程加載,拋開(kāi)仿真,通過(guò)UART的方式將固定的.bin文件發(fā)送給ZYNQ
    的頭像 發(fā)表于 12-05 10:15 ?6335次閱讀
    <b class='flag-5'>ZYNQ</b><b class='flag-5'>開(kāi)發(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è),可以將其視為一種能夠通過(guò)一組專(zhuān)用總線(xiàn)將內(nèi)部和外部存儲(chǔ)
    發(fā)表于 11-04 22:50

    基于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 ?3926次閱讀
    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è),可以將其視為一種能夠通過(guò)一組專(zhuān)用總線(xiàn)將內(nèi)部和外部存儲(chǔ)與每個(gè)具有DMA能力的外設(shè)連接起來(lái)的
    發(fā)表于 12-07 08:51 ?3076次閱讀
    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)存訪(fǎng)問(wèn)的計(jì)算機(jī)技術(shù),又可以指實(shí)現(xiàn)該技術(shù)的硬件模塊(對(duì)于通用計(jì)算機(jī)PC而言,DMA控制邏輯由CPU和DMA
    發(fā)表于 12-07 10:23 ?1.8w次閱讀
    <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è),可以將其視為一種能夠通過(guò)一組專(zhuān)用總線(xiàn)將內(nèi)部和外部存儲(chǔ)與每個(gè)具有
    發(fā)表于 12-07 14:43 ?4169次閱讀
    <b class='flag-5'>dma</b><b class='flag-5'>控制器</b>由什么組成?

    基于A(yíng)XI總線(xiàn)的DMA控制器的設(shè)計(jì)

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

    dma控制器由什么組成

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

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

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

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

    在圖1所示架構(gòu)中,每次DMA傳輸都要發(fā)起1次讀與1次寫(xiě)操作。若在DMA傳輸期間有需要緊急處理的異常響應(yīng),AHB總線(xiàn)此時(shí)又被DMA控制器占用,則處理
    發(fā)表于 08-24 15:34 ?2446次閱讀
    可提高<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)總線(xiàn)之間的接口電路,這個(gè)接口電路是在中斷接口的基礎(chǔ)上再加DMA機(jī)構(gòu)組成。習(xí)慣上將
    的頭像 發(fā)表于 04-01 16:08 ?1.2w次閱讀

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

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

    如何調(diào)試 Zynq UltraScale+ MPSoC VCU DDR 控制器

    Zynq UltraScale+ MPSoC VCU DDR 控制器是一款專(zhuān)用 DDR 控制器,只支持在 Zynq UltraScale+ MPSoC EV 部件上與
    發(fā)表于 02-23 06:00 ?15次下載
    如何調(diào)試 <b class='flag-5'>Zynq</b> UltraScale+ MPSoC VCU DDR <b class='flag-5'>控制器</b>?

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

    Xilinx官方也提供有一些DMA的IP,通過(guò)調(diào)用API函數(shù)能夠更加靈活地使用DMA。 1. AXI DMA的基本接口 axi dma IP的基本結(jié)構(gòu)如下,主要分為三個(gè)部分,分別是
    的頭像 發(fā)表于 01-06 11:13 ?3862次閱讀
    <b class='flag-5'>ZYNQ</b>基礎(chǔ)---AXI <b class='flag-5'>DMA</b>使用