csl_dmaportaux.h
来自「dsp在音频处理中的运用」· C头文件 代码 · 共 209 行
H
209 行
#ifndef _CSL_DMAPORTAUX_H#define _CSL_DMAPORTAUX_H#ifdef __cplusplusextern "C" {#endifstatic inlinevoid CSL_dmaChangeSrcPortCtrlSetup( CSL_DmaHandle hDma, CSL_DmaSetupPortCtrl *portCtrlSetup){ register Uint32 _dma_csdp; /* Local copy of CSDP Register */ _dma_csdp = hDma->regs->CSDP; CSL_FINS(_dma_csdp, DMA_CSDP_SRCBEN, portCtrlSetup->burst); CSL_FINS(_dma_csdp, DMA_CSDP_SRCPACK, portCtrlSetup->pack); CSL_FINS(_dma_csdp, DMA_CSDP_SRC, portCtrlSetup->port); hDma->regs->CSDP = _dma_csdp; } static inlinevoid CSL_dmaChangeDstPortCtrlSetup( CSL_DmaHandle hDma, CSL_DmaSetupPortCtrl *portCtrlSetup){ register Uint32 _dma_csdp; /* Local copy of CSDP Register */ _dma_csdp = hDma->regs->CSDP; CSL_FINS(_dma_csdp, DMA_CSDP_DSTBEN, portCtrlSetup->burst); CSL_FINS(_dma_csdp, DMA_CSDP_DSTPACK, portCtrlSetup->pack); CSL_FINS(_dma_csdp, DMA_CSDP_DST, portCtrlSetup->port); hDma->regs->CSDP = _dma_csdp; }static inlinevoid CSL_dmaChangeSrcAmode( CSL_DmaHandle hDma, CSL_DmaAmode amode ){ CSL_FINS(hDma->regs->CCR, DMA_CCR_SRCAMODE, amode); }static inlinevoid CSL_dmaChangeDstAmode( CSL_DmaHandle hDma, CSL_DmaAmode amode ){ CSL_FINS(hDma->regs->CCR, DMA_CCR_DSTAMODE, amode); }static inlinevoid CSL_dmaChangeSrcStartAddr( CSL_DmaHandle hDma, Uint32 startAddr ){ CSL_FINS(hDma->regs->CSSAL, DMA_CSSAL_CSSAL, ((startAddr) & 0xffff) ); CSL_FINS(hDma->regs->CSSAU, DMA_CSSAU_CSSAU, ((startAddr) >> 16) ); }static inlinevoid CSL_dmaChangeDstStartAddr( CSL_DmaHandle hDma, Uint32 startAddr ){ CSL_FINS(hDma->regs->CDSAL, DMA_CDSAL_CDSAL, ((startAddr) & 0xffff) ); CSL_FINS(hDma->regs->CDSAU, DMA_CDSAU_CDSAU, ((startAddr) >> 16) ); }static inlinevoid CSL_dmaChangeSrcFrameIndex( CSL_DmaHandle hDma, Int16 frameIndex){ hDma->regs->CSFI = frameIndex; }static inlinevoid CSL_dmaChangeDstFrameIndex( CSL_DmaHandle hDma, Int16 frameIndex){ hDma->regs->CDFI = frameIndex; }static inlinevoid CSL_dmaChangeSrcElementIndex( CSL_DmaHandle hDma, Int16 elementIndex){ hDma->regs->CSEI = elementIndex; }static inlinevoid CSL_dmaChangeDstElementIndex( CSL_DmaHandle hDma, Int16 elementIndex){ hDma->regs->CDEI = elementIndex; }static inlinevoid CSL_dmaGetSrcPortSetup( CSL_DmaHandle hDma, CSL_DmaSetupPort *portSetup ){ portSetup->amode = (CSL_DmaAmode) CSL_FEXT(hDma->regs->CCR, DMA_CCR_SRCAMODE); portSetup->startAddr = ( CSL_FEXT(hDma->regs->CSSAL, DMA_CSSAL_CSSAL) & 0xffff) | ( CSL_FEXT(hDma->regs->CSSAU, DMA_CSSAU_CSSAU) >> 16); portSetup->frameIndex = hDma->regs->CSFI; portSetup->elementIndex = hDma->regs->CSEI; /* fall through */ }static inlinevoid CSL_dmaGetSrcPortCtrlSetup( CSL_DmaHandle hDma, CSL_DmaSetupPortCtrl *portCtrlSetup){ register Uint32 _dma_csdp; /* Local copy of CSDP Register */ if (portCtrlSetup != NULL ) { _dma_csdp = hDma->regs->CSDP; portCtrlSetup->burst = (CSL_DmaBurst) CSL_FEXT(_dma_csdp, DMA_CSDP_SRCBEN); portCtrlSetup->pack = (CSL_DmaPack) CSL_FEXT(_dma_csdp, DMA_CSDP_SRCPACK); portCtrlSetup->port = (CSL_DmaPort) CSL_FEXT(_dma_csdp, DMA_CSDP_SRC); }}static inlinevoid CSL_dmaGetDstPortSetup( CSL_DmaHandle hDma, CSL_DmaSetupPort *portSetup){ portSetup->amode = (CSL_DmaAmode) CSL_FEXT(hDma->regs->CCR, DMA_CCR_DSTAMODE); portSetup->startAddr = ( CSL_FEXT(hDma->regs->CDSAL, DMA_CDSAL_CDSAL) & 0xffff) | ( CSL_FEXT(hDma->regs->CDSAU, DMA_CDSAU_CDSAU) >> 16 ) ; portSetup->frameIndex = hDma->regs->CDFI; portSetup->elementIndex = hDma->regs->CDEI;}static inlinevoid CSL_dmaGetDstPortCtrlSetup( CSL_DmaHandle hDma, CSL_DmaSetupPortCtrl *portCtrlSetup){ register Uint32 _dma_csdp; /* Local copy of CSDP Register */ if (portCtrlSetup != NULL ) { _dma_csdp = hDma->regs->CSDP; portCtrlSetup->burst = (CSL_DmaBurst) CSL_FEXT(_dma_csdp, DMA_CSDP_DSTBEN); portCtrlSetup->pack = (CSL_DmaPack) CSL_FEXT(_dma_csdp, DMA_CSDP_DSTPACK); portCtrlSetup->port = (CSL_DmaPort) CSL_FEXT(_dma_csdp, DMA_CSDP_DST); }}#ifdef __cplusplus}#endif#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?