![]() |
![]() |
Functions | |
| CSL_DAT_Handle | DAT_open (CSL_DATChanNum chanNum, Uint16 chanPriority, CSL_DAT_ChannelObj *pDatChanObj, CSL_Status *status) |
| CSL_Status | DAT_close (CSL_DAT_Handle hDAT) |
| CSL_Status | DAT_copy (CSL_DAT_Handle hDAT, Uint32 srcAddr, Uint32 destAddr, Uint16 dataLength) |
| CSL_Status | DAT_fill (CSL_DAT_Handle hDAT, Uint32 destAddr, Uint16 dataLength, Uint32 *pdataValue) |
| CSL_Status | DAT_wait (CSL_DAT_Handle hDAT) |
| CSL_Status DAT_close | ( | CSL_DAT_Handle | hDAT | ) |
===========================================================================
DAT_close
Description
This function closes the specified handle to DAT.
Arguments
hDAT Handle to the DAT
Return Value CSL_Status
Pre Condition
DAT_open() API must be called before this.
Post Condition
All the registers of this DMA channel will be reset.
Example
CSL_status status;
CSL_DATChanNum chanNum;
Uint16 chanPriority;
CSL_DAT_ChannelObj pDatChanObj
CSL_DAT_Handle hDAT;
...
chanNum = CSL_DAT_CHAN0;
chanNum = CSL_DAT_CHAN_PRIORITY_HIGH;
hDAT = DAT_open(chanNum, chanPriority, &pDatChanObj, &status);
status = DAT_Close(hDAT);
===========================================================================
References CSL_DAT_ChannelObj::chanNum, CSL_DAT_ChannelObj::chanPrio, CSL_DAT_CHAN0, CSL_DAT_CHAN1, CSL_DAT_CHAN2, CSL_DAT_CHAN3, CSL_DAT_CHAN_INV, CSL_DAT_CHAN_PRIORITY_LOW, CSL_DAT_CHANNEL_FREE, CSL_DAT_ChannelObj::dmaRegs, and CSL_DAT_ChannelObj::isChanFree.
| CSL_Status DAT_copy | ( | CSL_DAT_Handle | hDAT, |
| Uint32 | srcAddr, | ||
| Uint32 | destAddr, | ||
| Uint16 | dataLength | ||
| ) |
===========================================================================
DAT_copy
Description
It configures the DMA Controller registers of particular handle by some default values and trigger the transfer.
Arguments
hDMA Handle to the DMA.
srcAddr source location .
destAddr destination location .
dataLength length of data to transfer.
Return Value CSL_Status
Pre Condition
DAT_open() API must be called before this.
Post Condition
DAT_wait() API must be called after this.
Example
#define CSL_DAT_BUFFER_LENGTH 100
CSL_DAT_ChannelObj pDatChanObj
CSL_DAT_Handle hDAT;
CSL_DAT_TxType type;
CSL_DATChanNum chanNum;
Uint16 chanPriority;
Uint32 srcAddr;
Uint32 destAddr;
Uint16 dataLength;
CSL_status status;
Uint16 srcBuffer[CSL_DAT_BUFFER_LENGTH]
Uint16 destBuffer[CSL_DAT_BUFFER_LENGTH]
...
chanNum = CSL_DAT_CHAN0;
chanNum = CSL_DAT_CHAN_PRIORITY_HIGH;
hDAT = DAT_open(chanNum, chanPriority, &pDatChanObj, &status);
...
srcAddr = srcBuffer;
destAddr = destBuffer;
dataLength = CSL_DAT_BUFFER_LENGTH;
status = DAT_copy(hDAT, srcAddr, destAddr, dataLength);
...
===========================================================================
References CSL_DAT_ChannelObj::chanNum, CSL_DAT_CHAN0, CSL_DAT_CHAN1, CSL_DAT_CHAN2, CSL_DAT_CHAN3, CSL_DAT_CHANNEL_DISABLE, CSL_DAT_CHANNEL_ENABLE, CSL_DAT_TXBURST_WORD_LENGTH, CSL_DMA_ADDR_MODE_INCREMENT, CSL_DMA_ADDR_SHIFT, CSL_DMA_DARAM_ADDR_OFFSET, CSL_DMA_DARAM_END_ADDR, CSL_DMA_DARAM_START_ADDR, CSL_DMA_MIN_TX_SIZE, CSL_DMA_SARAM_ADDR_OFFSET, CSL_DMA_SARAM_END_ADDR, CSL_DMA_SARAM_START_ADDR, CSL_DMA_UINT16_MASK, CSL_DMA_UINT16_NUMBER_BITS, and CSL_DAT_ChannelObj::dmaRegs.
| CSL_Status DAT_fill | ( | CSL_DAT_Handle | hDAT, |
| Uint32 | destAddr, | ||
| Uint16 | dataLength, | ||
| Uint32 * | pdataValue | ||
| ) |
===========================================================================
DAT_fill
Description
It configures the DMA Controller registers of particular handle by some default values and fill the destination location with passed data value.
Arguments
hDMA Handle to the DMA.
destAddr destination location.
pdataValue pointer to the data.
dataLength length of data to transfer.
Return Value CSL_Status
Pre Condition
DAT_open() API must be called before this.
Post Condition
DAT_wait() API must be called after this.
Example
#define CSL_DAT_BUFFER_LENGTH 100
CSL_DAT_ChannelObj pDatChanObj
CSL_DAT_Handle hDAT;
CSL_DAT_TxType type;
CSL_DATChanNum chanNum;
Uint16 chanPriority;
Uint32 srcAddr;
Uint32 destAddr;
Uint16 dataLength;
CSL_status status;
Uint32 pdataValue;
Uint16 destBuffer[CSL_DAT_BUFFER_LENGTH]
...
chanNum = CSL_DAT_CHAN0;
chanNum = CSL_DAT_CHAN_PRIORITY_HIGH;
hDAT = DAT_open(chanNum, chanPriority, &pDatChanObj, &status);
...
destAddr = destBuffer;
dataLength = CSL_DAT_BUFFER_LENGTH;
pdataValue = 0xABCD;
status = DAT_fill(hDAT, destAddr, dataLength, &pdataValue);
...
===========================================================================
References CSL_DAT_ChannelObj::chanNum, CSL_DAT_CHAN0, CSL_DAT_CHAN1, CSL_DAT_CHAN2, CSL_DAT_CHAN3, CSL_DAT_CHANNEL_DISABLE, CSL_DAT_CHANNEL_ENABLE, CSL_DAT_TXBURST_WORD_LENGTH, CSL_DMA_ADDR_MODE_FIXED, CSL_DMA_ADDR_MODE_INCREMENT, CSL_DMA_ADDR_SHIFT, CSL_DMA_DARAM_ADDR_OFFSET, CSL_DMA_DARAM_END_ADDR, CSL_DMA_DARAM_START_ADDR, CSL_DMA_MIN_TX_SIZE, CSL_DMA_SARAM_ADDR_OFFSET, CSL_DMA_SARAM_END_ADDR, CSL_DMA_SARAM_START_ADDR, CSL_DMA_UINT16_MASK, CSL_DMA_UINT16_NUMBER_BITS, and CSL_DAT_ChannelObj::dmaRegs.
| CSL_DAT_Handle DAT_open | ( | CSL_DATChanNum | chanNum, |
| Uint16 | chanPriority, | ||
| CSL_DAT_ChannelObj * | pDatChanObj, | ||
| CSL_Status * | status | ||
| ) |
===========================================================================
DAT_open
Description
This function returns the handle to the DAT instance. This handle is passed to all other CSL APIs.
Arguments
chanNum channel number to use.
chanPriority channel priority.
pDatChanObj pointer to dat channel object.
status Status of the function call
Return Value CSL_DAT_Handle
Valid DAT handle will be returned if status value is equal to CSL_SOK.
Pre Condition
Before Calling this API User must configure the system control register to enabling the clock for DMA Controller.
Post Condition
1. The status is returned in the status variable. If status returned is
Modifies
1. The status variable
Example
CSL_status status;
CSL_DATChanNum chanNum;
Uint16 chanPriority;
CSL_DAT_ChannelObj pDatChanObj
CSL_DAT_Handle hDAT;
...
chanNum = CSL_DAT_CHAN0;
chanNum = CSL_DAT_CHAN_PRIORITY_HIGH;
hDAT = DAT_open(chanNum, chanPriority, &pDatChanObj, &status);
...
===========================================================================
References CSL_DAT_ChannelObj::chanNum, CSL_DAT_ChannelObj::chanPrio, CSL_DAT_CHAN0, CSL_DAT_CHAN1, CSL_DAT_CHAN10, CSL_DAT_CHAN11, CSL_DAT_CHAN12, CSL_DAT_CHAN13, CSL_DAT_CHAN14, CSL_DAT_CHAN15, CSL_DAT_CHAN2, CSL_DAT_CHAN3, CSL_DAT_CHAN4, CSL_DAT_CHAN5, CSL_DAT_CHAN6, CSL_DAT_CHAN7, CSL_DAT_CHAN8, CSL_DAT_CHAN9, CSL_DAT_CHAN_INV, CSL_DAT_CHANNEL_BUSY, CSL_DAT_ENGINE0, CSL_DAT_ENGINE1, CSL_DAT_ENGINE2, CSL_DAT_ENGINE3, CSL_DAT_ChannelObj::datInstNum, CSL_DAT_ChannelObj::dmaRegs, and CSL_DAT_ChannelObj::isChanFree.
| CSL_Status DAT_wait | ( | CSL_DAT_Handle | hDAT | ) |
===========================================================================
DAT_wait
Description
This function wait till the completion of Data Transfer.
Arguments
hDAT Handle to the DAT
Return Value CSL_Status
Pre Condition
DAT_open() API must be called before this.
Post Condition
None
Example
#define CSL_DAT_BUFFER_LENGTH 100
CSL_DAT_ChannelObj pDatChanObj
CSL_DAT_Handle hDAT;
CSL_DAT_TxType type;
CSL_DATChanNum chanNum;
Uint16 chanPriority;
Uint32 srcAddr;
Uint32 destAddr;
Uint16 dataLength;
CSL_status status;
Uint32 pdataValue;
Uint16 destBuffer[CSL_DAT_BUFFER_LENGTH]
...
chanNum = CSL_DAT_CHAN0;
chanNum = CSL_DAT_CHAN_PRIORITY_HIGH;
hDAT = DAT_open(chanNum, chanPriority, &pDatChanObj, &status);
...
destAddr = destBuffer;
dataLength = CSL_DAT_BUFFER_LENGTH;
pdataValue = 0xABCD;
status = DAT_fill(hDAT, destAddr, dataLength, &pdataValue);
status = DAT_wait(hDAT);
===========================================================================
References CSL_DAT_ChannelObj::chanNum, CSL_DAT_CHAN0, CSL_DAT_CHAN1, CSL_DAT_CHAN2, CSL_DAT_CHAN3, CSL_DAT_TIME_OUT, and CSL_DAT_ChannelObj::dmaRegs.
1.7.4