📄 csl_dmachannelaux.h
字号:
#ifndef _CSL_DMACHANNELAUX_H#define _CSL_DMACHANNELAUX_H#ifdef __cplusplusextern "C" {#endifstatic inlinevoid CSL_dmaChangeDataType ( CSL_DmaHandle hDma, CSL_DmaDataType datatype){ CSL_FINS(hDma->regs->CSDP, DMA_CSDP_DATATYPE, datatype);}static inlinevoid CSL_dmaChangeChannelCtrlSetup ( CSL_DmaHandle hDma, CSL_DmaSetupChaCtrl *chaCtrlSetup){ register Uint32 _dma_ccr; /* Local copy of CCR Register */ _dma_ccr = hDma->regs->CCR; CSL_FINS(_dma_ccr, DMA_CCR_SYNC, chaCtrlSetup->sync); CSL_FINS(_dma_ccr, DMA_CCR_FS, chaCtrlSetup->fs); CSL_FINS(_dma_ccr, DMA_CCR_PRIO, chaCtrlSetup->priority); CSL_FINS(_dma_ccr, DMA_CCR_AUTOINIT, chaCtrlSetup->autoinit); CSL_FINS(_dma_ccr, DMA_CCR_ENDPROG, chaCtrlSetup->endprog); CSL_FINS(_dma_ccr, DMA_CCR_REPEAT, chaCtrlSetup->repeat); CSL_FINS(_dma_ccr, DMA_CCR_OMAP31COMPATDISAB, chaCtrlSetup->compatability); hDma->regs->CCR = _dma_ccr;}static inlinevoid CSL_dmaEnableInterrupt ( CSL_DmaHandle hDma, Uint16 intMask){ hDma->regs->CICR |= intMask;}static inlinevoid CSL_dmaDisableInterrupt ( CSL_DmaHandle hDma, Uint16 intMask){ hDma->regs->CICR &= ~(intMask);}static inlinevoid CSL_dmaChangeElementCount ( CSL_DmaHandle hDma, Uint16 elecount){ hDma->regs->CEN = elecount;}static inlinevoid CSL_dmaChangeFrameCount ( CSL_DmaHandle hDma, Uint16 framecount){ hDma->regs->CFN = framecount;}static inlinevoid CSL_dmaChangeLCHType ( CSL_DmaHandle hDma, CSL_DmaLchType lchType){ CSL_FINS(hDma->regs->LCHCTRL, DMA_LCHCTRL_LCHTYPE, lchType);}static inlinevoid CSL_dmaChangeLCHInterleave ( CSL_DmaHandle hDma, CSL_DmaLchInterleave lchInterleave){ CSL_FINS(hDma->regs->LCHCTRL, DMA_LCHCTRL_LCHINTERLEAVEDISAB, lchInterleave);}static inlinevoid CSL_dmaChangeLCHLinkSetup( CSL_DmaHandle hDma, CSL_DmaSetupLchLink *lchLinkSetup){ hDma->regs->CLNKCTRL = CSL_FMK(DMA_CLNKCTRL_ENABLNK,lchLinkSetup->lchLink) | \ CSL_FMK(DMA_CLNKCTRL_STOPLNK,lchLinkSetup->lchStopLink) | \ CSL_FMK(DMA_CLNKCTRL_NEXTCHID,lchLinkSetup->nextLch);}static inlinevoid CSL_dmaChangeGraphicSetup( CSL_DmaHandle hDma, CSL_DmaSetupGraphic *graphicSetup){ hDma->regs->CCR2 = CSL_FMK(DMA_CCR2_BS, graphicSetup->blockSync) | \ CSL_FMK(DMA_CCR2_TRANSCOPYENAB, graphicSetup->transparentCopy) | \ CSL_FMK(DMA_CCR2_CONSTFILLENAB, graphicSetup->constantFill);}static inlinevoid CSL_dmaEnableChannel ( CSL_DmaHandle hDma){ CSL_FINS(hDma->regs->CCR, DMA_CCR_EN, 1);}static inlinevoid CSL_dmaDisableChannel ( CSL_DmaHandle hDma){ CSL_FINS(hDma->regs->CCR, DMA_CCR_EN, 0);}static inlinevoid CSL_dmaGetChannelSetup ( CSL_DmaHandle hDma, CSL_DmaSetupChannel *channelSetup){ register Uint32 _dma_lchctrl; /* Local copy of LCH Ctrl Register */ channelSetup->datatype=(CSL_DmaDataType)CSL_FEXT(hDma->regs->CSDP,DMA_CSDP_DATATYPE); channelSetup->interruptMask = hDma->regs->CICR; channelSetup->elementCount = hDma->regs->CEN; channelSetup->frameCount = hDma->regs->CFN; _dma_lchctrl = hDma->regs->LCHCTRL; channelSetup->lchType = (CSL_DmaLchType)CSL_FEXT(_dma_lchctrl, DMA_LCHCTRL_LCHTYPE); channelSetup->lchInterleave = (CSL_DmaLchInterleave)CSL_FEXT(_dma_lchctrl, DMA_LCHCTRL_LCHINTERLEAVEDISAB); }static inlinevoid CSL_dmaGetChannelCtrlSetup ( CSL_DmaHandle hDma, CSL_DmaSetupChaCtrl *chaCtrlSetup){ register Uint32 _dma_ccr; /* Local copy of CCR Register */ if (chaCtrlSetup != NULL) { _dma_ccr = hDma->regs->CCR; chaCtrlSetup->sync = (CSL_DmaSync) CSL_FEXT(_dma_ccr, DMA_CCR_SYNC); chaCtrlSetup->fs = (CSL_DmaFS) CSL_FEXT(_dma_ccr, DMA_CCR_FS); chaCtrlSetup->priority = (CSL_DmaPriority) CSL_FEXT(_dma_ccr, DMA_CCR_PRIO); chaCtrlSetup->autoinit = (CSL_DmaAutoInit) CSL_FEXT(_dma_ccr, DMA_CCR_AUTOINIT); chaCtrlSetup->endprog = (CSL_DmaEndProg) CSL_FEXT(_dma_ccr, DMA_CCR_ENDPROG); chaCtrlSetup->repeat = (CSL_DmaRepeat) CSL_FEXT(_dma_ccr, DMA_CCR_REPEAT); chaCtrlSetup->compatability = (CSL_DmaCompatability) CSL_FEXT(_dma_ccr, DMA_CCR_OMAP31COMPATDISAB); }}static inlinevoid CSL_dmaGetLCHLinkSetup ( CSL_DmaHandle hDma, CSL_DmaSetupLchLink *lchLinkSetup){ register Uint32 _dma_clnkctrl; /* Local copy of CLNK Ctrl Register */ if (lchLinkSetup != NULL) { _dma_clnkctrl = hDma->regs->CLNKCTRL; lchLinkSetup->lchLink = (CSL_DmaLchLink) CSL_FEXT(_dma_clnkctrl, DMA_CLNKCTRL_ENABLNK); lchLinkSetup->lchStopLink = (CSL_DmaLchStopLink) CSL_FEXT(_dma_clnkctrl, DMA_CLNKCTRL_STOPLNK); lchLinkSetup->nextLch = CSL_FEXT(_dma_clnkctrl, DMA_CLNKCTRL_NEXTCHID); }}static inlinevoid CSL_dmaGetGraphicSetup ( CSL_DmaHandle hDma, CSL_DmaSetupGraphic *graphicSetup){ register Uint32 _dma_ccr2; /* Local copy of CCR2 Register */ if (graphicSetup != NULL) { _dma_ccr2 = hDma->regs->CCR2; graphicSetup->blockSync = (CSL_DmaBlockSync) CSL_FEXT(_dma_ccr2, DMA_CCR2_BS); graphicSetup->transparentCopy = (CSL_DmaTransparentCopy) CSL_FEXT(_dma_ccr2, DMA_CCR2_TRANSCOPYENAB); graphicSetup->constantFill = (CSL_DmaConstantFill) CSL_FEXT(_dma_ccr2, DMA_CCR2_CONSTFILLENAB); graphicSetup->colour = (hDma->regs->COLORL | (hDma->regs->COLORU << 16) ); }}static inlinevoid CSL_dmaGetStatus ( CSL_DmaHandle hDma, CSL_DmaStatus *dmaStatus){ register Uint32 _dma_csr; /* Local copy of CSR Register */ _dma_csr = hDma->regs->CSR; dmaStatus->interruptStatus = _dma_csr & 0x3f; dmaStatus->syncStatus = (CSL_DmaSyncStatus) CSL_FEXT(_dma_csr, DMA_CSR_SYNC); dmaStatus->configStatus = (CSL_DmaConfigStatus)CSL_FEXT(_dma_csr, DMA_CSR_CONFDISAB);}static inlinevoid CSL_dmaGetInterruptStatus ( CSL_DmaHandle hDma, Uint16 *interruptStatus){ register Uint32 _dma_csr; /* Local copy of CSR Register */ _dma_csr = hDma->regs->CSR; *interruptStatus = _dma_csr & 0x3f;}static inlinevoid CSL_dmaGetSyncStatus ( CSL_DmaHandle hDma, CSL_DmaSyncStatus *syncStatus){ register Uint32 _dma_csr; /* Local copy of CSR Register */ _dma_csr = hDma->regs->CSR; *syncStatus = (CSL_DmaSyncStatus) CSL_FEXT(_dma_csr, DMA_CSR_SYNC);}static inlinevoid CSl_dmaGetConfigStatus ( CSL_DmaHandle hDma, CSL_DmaConfigStatus *configStatus){ register Uint32 _dma_csr; /* Local copy of CSR Register */ _dma_csr = hDma->regs->CSR; *configStatus = (CSL_DmaConfigStatus)CSL_FEXT(_dma_csr, DMA_CSR_CONFDISAB);}static inlinevoid CSL_dmaGetSrcAddrCnt ( CSL_DmaHandle hDma, Uint16 *addressCounter){ *addressCounter = hDma->regs->CSAC;}static inlinevoid CSL_dmaGetDstAddrCnt ( CSL_DmaHandle hDma, Uint16 *addressCounter){ *addressCounter = hDma->regs->CDAC;}#ifdef __cplusplus}#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -