MTB CAT1 Peripheral driver library

General Description

Functions

__STATIC_INLINE void Cy_AXIDMAC_Enable (AXI_DMAC_Type *base)
 Enables the AXIDMAC block. More...
 
__STATIC_INLINE void Cy_AXIDMAC_Disable (AXI_DMAC_Type *base)
 Disables the AXIDMAC block. More...
 
__STATIC_INLINE uint32_t Cy_AXIDMAC_GetAllChannelStatus (AXI_DMAC_Type *base)
 Returns the channel enabled status of all channels in a AXIDMAC block. More...
 
__STATIC_INLINE uint32_t Cy_AXIDMAC_GetActiveSecureChannel (AXI_DMAC_Type const *base)
 Returns the status of the active/pending secure channels of the AXIDMAC block. More...
 
__STATIC_INLINE uint32_t Cy_AXIDMAC_GetActiveNonSecureChannel (AXI_DMAC_Type const *base)
 Returns the status of the active/pending non-secure channels of the AXIDMAC block. More...
 

Function Documentation

◆ Cy_AXIDMAC_Enable()

__STATIC_INLINE void Cy_AXIDMAC_Enable ( AXI_DMAC_Type *  base)

Enables the AXIDMAC block.

Parameters
baseThe pointer to the hardware AXIDMAC block.
Function Usage
#define AXIDMAC_DESCRIPTOR CY_SECTION(".cy_socmem_data") cy_stc_axidmac_descriptor_t
/* Scenario: Initialize a 2D descriptor with descriptors, src and dst are in SOCMEM*/
#define DATACNT (8UL)
CY_SECTION(".cy_socmem_data") cy_stc_axidmac_descriptor_t descriptor;
CY_SECTION(".cy_socmem_data") cy_stc_axidmac_descriptor_t nextDescriptor;
CY_SECTION(".cy_socmem_data") uint32_t src[DATACNT];
CY_SECTION(".cy_socmem_data") uint32_t dst[DATACNT];
CY_SECTION(".cy_socmem_data") cy_stc_axidmac_descriptor_config_t descriptor_cfg =
{
.interruptType = CY_AXIDMAC_DESCR,
.triggerOutType = CY_AXIDMAC_DESCR,
.channelState = CY_AXIDMAC_CHANNEL_ENABLED,
.triggerInType = CY_AXIDMAC_DESCR,
.descriptorType = CY_AXIDMAC_2D_MEMORY_COPY,
.srcAddress = &src,
.dstAddress = &dst,
.mCount=1U,
.srcXincrement = 1U,
.dstXincrement = 1U,
.xCount = DATACNT,
.srcYincrement = 0U,
.dstYincrement = 0U,
.yCount = 1UL,
.nextDescriptor = &nextDescriptor,
};
void snippet_Cy_AXIDMAC_Enable(void)
{
/* Scenario: Setup and enable the AXIDMAC channel 0 */
channelConfig.enable = false;
channelConfig.bufferable = false;
channelConfig.descriptor = &descriptor;
if (CY_AXIDMAC_SUCCESS != Cy_AXIDMAC_Descriptor_Init(&descriptor, &descriptor_cfg))
{
/* Insert error handling */
}
if (CY_AXIDMAC_SUCCESS != Cy_AXIDMAC_Channel_Init(AXI_DMAC, 0UL, &channelConfig))
{
/* Insert error handling */
}
Cy_AXIDMAC_Channel_SetDescriptor(AXI_DMAC, 0UL, &descriptor);
Cy_AXIDMAC_Channel_SetPriority(AXI_DMAC, 0UL, 3UL);
Cy_AXIDMAC_Channel_Enable(AXI_DMAC, 0UL);
Cy_AXIDMAC_Enable(AXI_DMAC);
}

◆ Cy_AXIDMAC_Disable()

__STATIC_INLINE void Cy_AXIDMAC_Disable ( AXI_DMAC_Type *  base)

Disables the AXIDMAC block.

Parameters
baseThe pointer to the hardware AXIDMAC block.
Function Usage
/* Scenario: Disable the AXIDMAC channel 0 if it's priority equals 3 */
if (3UL == Cy_AXIDMAC_Channel_GetPriority(AXI_DMAC, 0UL))
{
if (0UL != Cy_AXIDMAC_Channel_GetStatus(AXI_DMAC, 0UL))
{
Cy_AXIDMAC_Channel_DeInit(AXI_DMAC, 0UL);
/* if needed (if there is only channel used) the whole block can be disabled */
Cy_AXIDMAC_Disable(AXI_DMAC);
}
}

◆ Cy_AXIDMAC_GetAllChannelStatus()

__STATIC_INLINE uint32_t Cy_AXIDMAC_GetAllChannelStatus ( AXI_DMAC_Type *  base)

Returns the channel enabled status of all channels in a AXIDMAC block.

Example if return value is 7 then channel 0,1,2 are enabled.

Parameters
baseThe pointer to the hardware AXIDMAC block.
Returns
Returns a bit-field with all of the currently enabled channels in the AXIDMAC block.
Function Usage
/* Scenario: Get all channel status */

◆ Cy_AXIDMAC_GetActiveSecureChannel()

__STATIC_INLINE uint32_t Cy_AXIDMAC_GetActiveSecureChannel ( AXI_DMAC_Type const *  base)

Returns the status of the active/pending secure channels of the AXIDMAC block.

Parameters
baseThe pointer to the hardware AXIDMAC block.
Returns
Returns a bit-field with all of the currently active/pending secure channels in the AXIDMAC block.
Function Usage
/* Scenario: Get the Active channel and disable channel 0 */
Cy_AXIDMAC_Channel_Enable(AXI_DMAC, 0UL);
if (0UL != Cy_AXIDMAC_GetActiveChannel(AXI_DMAC))
{
Cy_AXIDMAC_Channel_DeInit(AXI_DMAC, 0UL);
/* if needed (if there is only channel used) the whole block can be disabled */
Cy_AXIDMAC_Disable(AXI_DMAC);
}

◆ Cy_AXIDMAC_GetActiveNonSecureChannel()

__STATIC_INLINE uint32_t Cy_AXIDMAC_GetActiveNonSecureChannel ( AXI_DMAC_Type const *  base)

Returns the status of the active/pending non-secure channels of the AXIDMAC block.

Parameters
baseThe pointer to the hardware AXIDMAC block.
Returns
Returns a bit-field with all of the currently active/pending non-secure channels in the AXIDMAC block.
Function Usage
/* Scenario: Get the Active channel and disable channel 0 */
Cy_AXIDMAC_Channel_Enable(AXI_DMAC, 0UL);
if (0UL != Cy_AXIDMAC_GetActiveChannel(AXI_DMAC))
{
Cy_AXIDMAC_Channel_DeInit(AXI_DMAC, 0UL);
/* if needed (if there is only channel used) the whole block can be disabled */
Cy_AXIDMAC_Disable(AXI_DMAC);
}