dma_init.c
来自「dsp在音频处理中的运用」· C语言 代码 · 共 72 行
C
72 行
#include <soc.h>
#include <csl_dma.h>
extern CSL_DmaObj dmaObj;
void sDma_init(CSL_DmaHandle *hDmaptr)
{
CSL_Status status;
CSL_DmaParam dmaParam;
CSL_dmaInit(NULL);
dmaParam.chaNum = CSL_DMA_CHA2;
*hDmaptr = CSL_dmaOpen(&dmaObj, CSL_DMA, &dmaParam,&status);
}
void dma_init(CSL_DmaHandle hDma,Uint32 srcaddr,Uint32 dstaddr)
{
CSL_DmaHwSetupSrcPort srcPortCfg = {/* Setup for source port */
CSL_DMA_BURSTEN_DISABLE, /* Disable burst mode */
CSL_DMA_ONOFF_OFF, /* Disable data packing */
CSL_DMA_PORT_DARAM, /* DMA src region mapping */
CSL_DMA_AMODE_POSTINC, /* Post-increment addressing mode for dst data */
0, /* Address of source data, assigned later */
0, /* Frame index */
0 /* Element index */
};
CSL_DmaHwSetupDstPort dstPortCfg = {/* Setup for destination port */
CSL_DMA_BURSTEN_DISABLE, /* Disable burst mode */
CSL_DMA_ONOFF_OFF, /* Disable data packing */
CSL_DMA_PORT__TIPB, /* DMA dst region mapping */
CSL_DMA_AMODE_CONST /* Fixed location of source data */
0 /* Address of destination data */
0, /* Frame index */
0 /* Element index */
};
CSL_DmaHwSetupChannel channelCfg = {/* Setup for channel parameters */
CSL_DMA_DATASIZE_16BIT, /* 16-bit data elements */
SINE_TABLE_SIZE, /* Number of elements in a frame */
1, /* Number of frames */
CSL_DMA_PRIORITY_LO, /* Priority of DMA channel */
CSL_DMA_SYNC_MCBSP1TX, /* MCBSP XMT synchronisation event */
CSL_DMA_FRAMESYNC_DISABLE, /* Framesync disabled */
CSL_DMA_ONOFF_OFF, /* ENDPROG off */
CSL_DMA_ONOFF_OFF, /* REPEAT off */
CSL_DMA_ONOFF_OFF /* AUTOINIT off */
};
CSL_DmaHwSetupIntr intrCfg = {/* Setup for interrupts */
CSL_DMA_ONOFF_OFF, /* BLOCKIE disabled */
CSL_DMA_ONOFF_OFF, /* LASTIE disabled */
CSL_DMA_ONOFF_ON, /* FRAMEIE disabled ????*/
CSL_DMA_ONOFF_OFF, /* HALFIE disabled */
CSL_DMA_ONOFF_OFF, /* DROPIE disabled */
CSL_DMA_ONOFF_OFF /* TIMEOUTIE disabled */
};
CSL_DmaHwSetup dmaHwCfg = { /* Complete setup object for a channel */
&srcPortCfg, /* srcObj initialized above */
&dstPortCfg, /* dstObj initialized above */
&channelCfg, /* channelObj initialized above */
&intrCfg, /* intrObj initialized above */
NULL /* Global setup is default(reset values) */
};
/* Assign the address of MCBSP DDR1 register as DMA source start address */
dmaHwCfg.srcStruct->staddr =srcaddr; //(Uint32)(&(hMcbsp->regs->DRR1));
CSL_dmaHwSetup(hDma, &dmaHwCfg); /* Setup the DMA channel */
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?