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 + -
显示快捷键?