PSoC 6 Peripheral Driver Library

General Description

Functions

__STATIC_INLINE void Cy_DMA_Enable (DW_Type *base)
 Enables the DMA block. More...
 
__STATIC_INLINE void Cy_DMA_Disable (DW_Type *base)
 Disables the DMA block. More...
 
__STATIC_INLINE uint32_t Cy_DMA_GetActiveChannel (DW_Type const *base)
 Returns the status of the active/pending channels. More...
 
__STATIC_INLINE void * Cy_DMA_GetActiveSrcAddress (DW_Type *base)
 Returns the source address being used for the current transfer. More...
 
__STATIC_INLINE void * Cy_DMA_GetActiveDstAddress (DW_Type *base)
 Returns the destination address being used for the current transfer. More...
 
cy_en_dma_status_t Cy_DMA_Crc_Init (DW_Type *base, cy_stc_dma_crc_config_t const *crcConfig)
 Initializes the DMA CRC functionality. More...
 

Function Documentation

◆ Cy_DMA_Enable()

__STATIC_INLINE void Cy_DMA_Enable ( DW_Type base)

Enables the DMA block.

Parameters
baseThe pointer to the hardware DMA block.
Function Usage
/* Scenario: Initialize a 1D descriptor */
#define DATACNT (8UL)
cy_stc_dma_descriptor_t nextDescriptor;
uint32_t src[DATACNT];
uint32_t dst[DATACNT];
{
.interruptType = CY_DMA_DESCR,
.triggerOutType = CY_DMA_DESCR,
.channelState = CY_DMA_CHANNEL_ENABLED,
.triggerInType = CY_DMA_DESCR,
.dataSize = CY_DMA_WORD,
.srcTransferSize = CY_DMA_TRANSFER_SIZE_WORD,
.dstTransferSize = CY_DMA_TRANSFER_SIZE_WORD,
.descriptorType = CY_DMA_1D_TRANSFER,
.srcAddress = &src,
.dstAddress = &dst,
.srcXincrement = 1U,
.dstXincrement = 1U,
.xCount = DATACNT,
.srcYincrement = 0U,
.dstYincrement = 0U,
.yCount = 1UL,
.nextDescriptor = &nextDescriptor,
};
if (CY_DMA_SUCCESS != Cy_DMA_Descriptor_Init(&descriptor, &descriptor_cfg))
{
/* Insert error handling */
}
/* Scenario: Setup and enable the DMA channel 0 of block DW0 */
channelConfig.preemptable = false;
channelConfig.enable = false;
channelConfig.bufferable = false;
if (CY_DMA_SUCCESS != Cy_DMA_Channel_Init(DW0, 0UL, &channelConfig))
{
/* Insert error handling */
}
Cy_DMA_Channel_SetDescriptor(DW0, 0UL, &descriptor);

◆ Cy_DMA_Disable()

__STATIC_INLINE void Cy_DMA_Disable ( DW_Type base)

Disables the DMA block.

Parameters
baseThe pointer to the hardware DMA block.
Function Usage
/* Scenario: Disable the DMA channel 0 of block DW0 if it's priority equals 3 */
if (3UL == Cy_DMA_Channel_GetPriority(DW0, 0UL))
{
if (0UL != Cy_DMA_GetActiveChannel(DW0))
{
/* if needed (if there is only channel used) the whole block can be disabled */
}
}

◆ Cy_DMA_GetActiveChannel()

__STATIC_INLINE uint32_t Cy_DMA_GetActiveChannel ( DW_Type const *  base)

Returns the status of the active/pending channels.

the DMA block.

Parameters
baseThe pointer to the hardware DMA block.
Returns
Returns a bit-field with all of the currently active/pending channels in the DMA block.
Function Usage
/* Scenario: Disable the DMA channel 0 of block DW0 if it's priority equals 3 */
if (3UL == Cy_DMA_Channel_GetPriority(DW0, 0UL))
{
if (0UL != Cy_DMA_GetActiveChannel(DW0))
{
/* if needed (if there is only channel used) the whole block can be disabled */
}
}

◆ Cy_DMA_GetActiveSrcAddress()

__STATIC_INLINE void * Cy_DMA_GetActiveSrcAddress ( DW_Type base)

Returns the source address being used for the current transfer.

Parameters
baseThe pointer to the hardware DMA block.
Returns
Returns the pointer to the source of transfer.
Function Usage
/* Scenario: Make sure the array is not in use before modifying the array */
uint32_t array[16];
if (((void*) array != Cy_DMA_GetActiveSrcAddress(DW0)) &&
((void*) array != Cy_DMA_GetActiveDstAddress(DW0)))
{
/* Modify the array content here */
}

◆ Cy_DMA_GetActiveDstAddress()

__STATIC_INLINE void * Cy_DMA_GetActiveDstAddress ( DW_Type base)

Returns the destination address being used for the current transfer.

Parameters
baseThe pointer to the hardware DMA block.
Returns
Returns the pointer to the destination of transfer.
Function Usage
/* Scenario: Make sure the array is not in use before modifying the array */
uint32_t array[16];
if (((void*) array != Cy_DMA_GetActiveSrcAddress(DW0)) &&
((void*) array != Cy_DMA_GetActiveDstAddress(DW0)))
{
/* Modify the array content here */
}

◆ Cy_DMA_Crc_Init()

cy_en_dma_status_t Cy_DMA_Crc_Init ( DW_Type base,
cy_stc_dma_crc_config_t const *  crcConfig 
)

Initializes the DMA CRC functionality.

Parameters
baseThe pointer to the hardware DMA block.
crcConfigThe pointer to the CRC configuration structure cy_stc_dma_crc_config_t.
Returns
The status /ref cy_en_dma_status_t.
Function Usage
/* Scenario: Setup the CRC for DMA block DW0 */
{
.dataReverse = false,
.dataXor = 0x00000000UL,
.polynomial = 0x04C11DB7UL,
.reminderReverse = false,
.reminderXor = 0x00000000UL,
.lfsrInitVal = 0xFFFFFFFFUL
};
if (CY_DMA_SUCCESS != Cy_DMA_Crc_Init(DW0, &crcConfig))
{
/* Insert error handling */
}