Descriptor Functions

group group_dma_descriptor_functions

Functions

cy_en_dma_status_t Cy_DMA_Descriptor_Init(cy_stc_dma_descriptor_t *descriptor, cy_stc_dma_descriptor_config_t const *config)

Initializes the descriptor structure in SRAM from a pre-initialized configuration structure.

This function initializes only the descriptor and not the channel.

Return

The status /ref cy_en_dma_status_t.

Function Usage

    
    /* Scenario: Initialize a 1D descriptor */
    #define DATACNT (8UL)
    cy_stc_dma_descriptor_t descriptor;
    cy_stc_dma_descriptor_t nextDescriptor;
    uint32_t src[DATACNT];
    uint32_t dst[DATACNT];
    
    cy_stc_dma_descriptor_config_t descriptor_cfg = 
    {
        .retrigger = CY_DMA_RETRIG_IM,
        .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 */
    cy_stc_dma_channel_config_t channelConfig;
    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_Channel_SetPriority(DW0, 0UL, 3UL);
    Cy_DMA_Channel_Enable(DW0, 0UL);
    
    Cy_DMA_Enable(DW0);
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

  • config: This is a configuration structure that has all initialization information for the descriptor.

void Cy_DMA_Descriptor_DeInit(cy_stc_dma_descriptor_t *descriptor)

Clears the content of the specified descriptor.

Function Usage

    
    /* Scenario: Disable a descriptor */
    if (&descriptor != Cy_DMA_Channel_GetCurrentDescriptor(DW0, 0UL)) /* Make sure it is not in use */
    {
        Cy_DMA_Descriptor_DeInit(&descriptor);
    }
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

void Cy_DMA_Descriptor_SetNextDescriptor(cy_stc_dma_descriptor_t *descriptor, cy_stc_dma_descriptor_t const *nextDescriptor)

Sets a Next Descriptor for the specified descriptor.

Based on the descriptor type, the offset of the address for the next descriptor may vary. For the single-transfer descriptor type, this register is at offset 0x0c. For the 1D-transfer descriptor type, this register is at offset 0x10. For the 2D-transfer descriptor type, this register is at offset 0x14.

Function Usage

    
    /* Scenario: Set or modify individual descriptor parameters dynamically. This snippet shows them all. */
    
    #define DATACNT (8UL)
    cy_stc_dma_descriptor_t descriptor = {0};
    cy_stc_dma_descriptor_t nextDescriptor = {0};
    uint32_t src[DATACNT];
    uint32_t dst[DATACNT];
    
    if (&descriptor != Cy_DMA_Channel_GetCurrentDescriptor(DW0, 0UL)) /* Make sure it is not in use */
    {
        Cy_DMA_Descriptor_SetRetrigger(&descriptor, CY_DMA_RETRIG_IM);
        Cy_DMA_Descriptor_SetInterruptType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetTriggerOutType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetChannelState(&descriptor, CY_DMA_CHANNEL_ENABLED);
        Cy_DMA_Descriptor_SetTriggerInType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetDataSize(&descriptor, CY_DMA_WORD);
        Cy_DMA_Descriptor_SetSrcTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDstTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDescriptorType(&descriptor, CY_DMA_1D_TRANSFER);
        Cy_DMA_Descriptor_SetSrcAddress(&descriptor, &src);
        Cy_DMA_Descriptor_SetDstAddress(&descriptor, &dst);
        Cy_DMA_Descriptor_SetXloopSrcIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDstIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDataCount(&descriptor, DATACNT);
        Cy_DMA_Descriptor_SetYloopSrcIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDstIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDataCount(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetNextDescriptor(&descriptor, &nextDescriptor);
    }
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

  • nextDescriptor: The pointer to the next descriptor.

void Cy_DMA_Descriptor_SetDescriptorType(cy_stc_dma_descriptor_t *descriptor, cy_en_dma_descriptor_type_t descriptorType)

Sets the descriptor’s type for the specified descriptor.

Moves the next descriptor register value into the proper place in accordance to the actual descriptor type. During the descriptor’s type changing, the Xloop and Yloop settings, such as data count and source/destination increment (i.e. the content of the xCtl and yCtl descriptor registers) might be lost (overridden by the next descriptor value) because of the different descriptor registers structures for different descriptor types. Carefully set up the Xloop (and Yloop, if used) data count and source/destination increment if the descriptor type is changed from a simpler to a more complicated type (“single transfer” -> “1D”, “1D” -> “2D”, etc.).

Function Usage

    
    /* Scenario: Set or modify individual descriptor parameters dynamically. This snippet shows them all. */
    
    #define DATACNT (8UL)
    cy_stc_dma_descriptor_t descriptor = {0};
    cy_stc_dma_descriptor_t nextDescriptor = {0};
    uint32_t src[DATACNT];
    uint32_t dst[DATACNT];
    
    if (&descriptor != Cy_DMA_Channel_GetCurrentDescriptor(DW0, 0UL)) /* Make sure it is not in use */
    {
        Cy_DMA_Descriptor_SetRetrigger(&descriptor, CY_DMA_RETRIG_IM);
        Cy_DMA_Descriptor_SetInterruptType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetTriggerOutType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetChannelState(&descriptor, CY_DMA_CHANNEL_ENABLED);
        Cy_DMA_Descriptor_SetTriggerInType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetDataSize(&descriptor, CY_DMA_WORD);
        Cy_DMA_Descriptor_SetSrcTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDstTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDescriptorType(&descriptor, CY_DMA_1D_TRANSFER);
        Cy_DMA_Descriptor_SetSrcAddress(&descriptor, &src);
        Cy_DMA_Descriptor_SetDstAddress(&descriptor, &dst);
        Cy_DMA_Descriptor_SetXloopSrcIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDstIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDataCount(&descriptor, DATACNT);
        Cy_DMA_Descriptor_SetYloopSrcIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDstIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDataCount(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetNextDescriptor(&descriptor, &nextDescriptor);
    }
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

  • descriptorType: The descriptor type cy_en_dma_descriptor_type_t.

__STATIC_INLINE void Cy_DMA_Descriptor_SetSrcAddress (cy_stc_dma_descriptor_t *descriptor, void const *srcAddress)

Sets the source address for the specified descriptor.

Function Usage

    
    /* Scenario: Set or modify individual descriptor parameters dynamically. This snippet shows them all. */
    
    #define DATACNT (8UL)
    cy_stc_dma_descriptor_t descriptor = {0};
    cy_stc_dma_descriptor_t nextDescriptor = {0};
    uint32_t src[DATACNT];
    uint32_t dst[DATACNT];
    
    if (&descriptor != Cy_DMA_Channel_GetCurrentDescriptor(DW0, 0UL)) /* Make sure it is not in use */
    {
        Cy_DMA_Descriptor_SetRetrigger(&descriptor, CY_DMA_RETRIG_IM);
        Cy_DMA_Descriptor_SetInterruptType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetTriggerOutType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetChannelState(&descriptor, CY_DMA_CHANNEL_ENABLED);
        Cy_DMA_Descriptor_SetTriggerInType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetDataSize(&descriptor, CY_DMA_WORD);
        Cy_DMA_Descriptor_SetSrcTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDstTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDescriptorType(&descriptor, CY_DMA_1D_TRANSFER);
        Cy_DMA_Descriptor_SetSrcAddress(&descriptor, &src);
        Cy_DMA_Descriptor_SetDstAddress(&descriptor, &dst);
        Cy_DMA_Descriptor_SetXloopSrcIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDstIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDataCount(&descriptor, DATACNT);
        Cy_DMA_Descriptor_SetYloopSrcIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDstIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDataCount(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetNextDescriptor(&descriptor, &nextDescriptor);
    }
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

  • srcAddress: The source address value for the descriptor.

__STATIC_INLINE void Cy_DMA_Descriptor_SetDstAddress (cy_stc_dma_descriptor_t *descriptor, void const *dstAddress)

Sets the destination address for the specified descriptor.

Function Usage

    
    /* Scenario: Set or modify individual descriptor parameters dynamically. This snippet shows them all. */
    
    #define DATACNT (8UL)
    cy_stc_dma_descriptor_t descriptor = {0};
    cy_stc_dma_descriptor_t nextDescriptor = {0};
    uint32_t src[DATACNT];
    uint32_t dst[DATACNT];
    
    if (&descriptor != Cy_DMA_Channel_GetCurrentDescriptor(DW0, 0UL)) /* Make sure it is not in use */
    {
        Cy_DMA_Descriptor_SetRetrigger(&descriptor, CY_DMA_RETRIG_IM);
        Cy_DMA_Descriptor_SetInterruptType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetTriggerOutType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetChannelState(&descriptor, CY_DMA_CHANNEL_ENABLED);
        Cy_DMA_Descriptor_SetTriggerInType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetDataSize(&descriptor, CY_DMA_WORD);
        Cy_DMA_Descriptor_SetSrcTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDstTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDescriptorType(&descriptor, CY_DMA_1D_TRANSFER);
        Cy_DMA_Descriptor_SetSrcAddress(&descriptor, &src);
        Cy_DMA_Descriptor_SetDstAddress(&descriptor, &dst);
        Cy_DMA_Descriptor_SetXloopSrcIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDstIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDataCount(&descriptor, DATACNT);
        Cy_DMA_Descriptor_SetYloopSrcIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDstIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDataCount(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetNextDescriptor(&descriptor, &nextDescriptor);
    }
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

  • dstAddress: The destination address value for the descriptor.

__STATIC_INLINE void Cy_DMA_Descriptor_SetXloopDataCount (cy_stc_dma_descriptor_t *descriptor, uint32_t xCount)

Sets the number of data elements to transfer in the X loop for the specified descriptor (for 1D or 2D descriptors only).

Function Usage

    
    /* Scenario: Set or modify individual descriptor parameters dynamically. This snippet shows them all. */
    
    #define DATACNT (8UL)
    cy_stc_dma_descriptor_t descriptor = {0};
    cy_stc_dma_descriptor_t nextDescriptor = {0};
    uint32_t src[DATACNT];
    uint32_t dst[DATACNT];
    
    if (&descriptor != Cy_DMA_Channel_GetCurrentDescriptor(DW0, 0UL)) /* Make sure it is not in use */
    {
        Cy_DMA_Descriptor_SetRetrigger(&descriptor, CY_DMA_RETRIG_IM);
        Cy_DMA_Descriptor_SetInterruptType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetTriggerOutType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetChannelState(&descriptor, CY_DMA_CHANNEL_ENABLED);
        Cy_DMA_Descriptor_SetTriggerInType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetDataSize(&descriptor, CY_DMA_WORD);
        Cy_DMA_Descriptor_SetSrcTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDstTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDescriptorType(&descriptor, CY_DMA_1D_TRANSFER);
        Cy_DMA_Descriptor_SetSrcAddress(&descriptor, &src);
        Cy_DMA_Descriptor_SetDstAddress(&descriptor, &dst);
        Cy_DMA_Descriptor_SetXloopSrcIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDstIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDataCount(&descriptor, DATACNT);
        Cy_DMA_Descriptor_SetYloopSrcIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDstIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDataCount(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetNextDescriptor(&descriptor, &nextDescriptor);
    }
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

  • xCount: The number of data elements to transfer in the X loop. Valid range is 1 … 256.

__STATIC_INLINE void Cy_DMA_Descriptor_SetYloopDataCount (cy_stc_dma_descriptor_t *descriptor, uint32_t yCount)

Sets the number of data elements for the Y loop of the specified descriptor (for 2D descriptors only).

Function Usage

    
    /* Scenario: Set or modify individual descriptor parameters dynamically. This snippet shows them all. */
    
    #define DATACNT (8UL)
    cy_stc_dma_descriptor_t descriptor = {0};
    cy_stc_dma_descriptor_t nextDescriptor = {0};
    uint32_t src[DATACNT];
    uint32_t dst[DATACNT];
    
    if (&descriptor != Cy_DMA_Channel_GetCurrentDescriptor(DW0, 0UL)) /* Make sure it is not in use */
    {
        Cy_DMA_Descriptor_SetRetrigger(&descriptor, CY_DMA_RETRIG_IM);
        Cy_DMA_Descriptor_SetInterruptType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetTriggerOutType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetChannelState(&descriptor, CY_DMA_CHANNEL_ENABLED);
        Cy_DMA_Descriptor_SetTriggerInType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetDataSize(&descriptor, CY_DMA_WORD);
        Cy_DMA_Descriptor_SetSrcTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDstTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDescriptorType(&descriptor, CY_DMA_1D_TRANSFER);
        Cy_DMA_Descriptor_SetSrcAddress(&descriptor, &src);
        Cy_DMA_Descriptor_SetDstAddress(&descriptor, &dst);
        Cy_DMA_Descriptor_SetXloopSrcIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDstIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDataCount(&descriptor, DATACNT);
        Cy_DMA_Descriptor_SetYloopSrcIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDstIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDataCount(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetNextDescriptor(&descriptor, &nextDescriptor);
    }
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

  • yCount: The number of X loops to execute in the Y loop. The valid range is 1 … 256.

__STATIC_INLINE void Cy_DMA_Descriptor_SetXloopSrcIncrement (cy_stc_dma_descriptor_t *descriptor, int32_t srcXincrement)

Sets the source increment parameter for the X loop of the specified descriptor (for 1D or 2D descriptors only).

Function Usage

    
    /* Scenario: Set or modify individual descriptor parameters dynamically. This snippet shows them all. */
    
    #define DATACNT (8UL)
    cy_stc_dma_descriptor_t descriptor = {0};
    cy_stc_dma_descriptor_t nextDescriptor = {0};
    uint32_t src[DATACNT];
    uint32_t dst[DATACNT];
    
    if (&descriptor != Cy_DMA_Channel_GetCurrentDescriptor(DW0, 0UL)) /* Make sure it is not in use */
    {
        Cy_DMA_Descriptor_SetRetrigger(&descriptor, CY_DMA_RETRIG_IM);
        Cy_DMA_Descriptor_SetInterruptType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetTriggerOutType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetChannelState(&descriptor, CY_DMA_CHANNEL_ENABLED);
        Cy_DMA_Descriptor_SetTriggerInType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetDataSize(&descriptor, CY_DMA_WORD);
        Cy_DMA_Descriptor_SetSrcTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDstTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDescriptorType(&descriptor, CY_DMA_1D_TRANSFER);
        Cy_DMA_Descriptor_SetSrcAddress(&descriptor, &src);
        Cy_DMA_Descriptor_SetDstAddress(&descriptor, &dst);
        Cy_DMA_Descriptor_SetXloopSrcIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDstIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDataCount(&descriptor, DATACNT);
        Cy_DMA_Descriptor_SetYloopSrcIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDstIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDataCount(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetNextDescriptor(&descriptor, &nextDescriptor);
    }
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

  • srcXincrement: The value of the source increment. The valid range is -2048 … 2047.

__STATIC_INLINE void Cy_DMA_Descriptor_SetXloopDstIncrement (cy_stc_dma_descriptor_t *descriptor, int32_t dstXincrement)

Sets the destination increment parameter for the X loop for the specified descriptor (for 1D or 2D descriptors only).

Function Usage

    
    /* Scenario: Set or modify individual descriptor parameters dynamically. This snippet shows them all. */
    
    #define DATACNT (8UL)
    cy_stc_dma_descriptor_t descriptor = {0};
    cy_stc_dma_descriptor_t nextDescriptor = {0};
    uint32_t src[DATACNT];
    uint32_t dst[DATACNT];
    
    if (&descriptor != Cy_DMA_Channel_GetCurrentDescriptor(DW0, 0UL)) /* Make sure it is not in use */
    {
        Cy_DMA_Descriptor_SetRetrigger(&descriptor, CY_DMA_RETRIG_IM);
        Cy_DMA_Descriptor_SetInterruptType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetTriggerOutType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetChannelState(&descriptor, CY_DMA_CHANNEL_ENABLED);
        Cy_DMA_Descriptor_SetTriggerInType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetDataSize(&descriptor, CY_DMA_WORD);
        Cy_DMA_Descriptor_SetSrcTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDstTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDescriptorType(&descriptor, CY_DMA_1D_TRANSFER);
        Cy_DMA_Descriptor_SetSrcAddress(&descriptor, &src);
        Cy_DMA_Descriptor_SetDstAddress(&descriptor, &dst);
        Cy_DMA_Descriptor_SetXloopSrcIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDstIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDataCount(&descriptor, DATACNT);
        Cy_DMA_Descriptor_SetYloopSrcIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDstIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDataCount(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetNextDescriptor(&descriptor, &nextDescriptor);
    }
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

  • dstXincrement: The value of the destination increment. The valid range is -2048 … 2047.

__STATIC_INLINE void Cy_DMA_Descriptor_SetYloopSrcIncrement (cy_stc_dma_descriptor_t *descriptor, int32_t srcYincrement)

Sets the source increment parameter for the Y loop for the specified descriptor (for 2D descriptors only).

Function Usage

    
    /* Scenario: Set or modify individual descriptor parameters dynamically. This snippet shows them all. */
    
    #define DATACNT (8UL)
    cy_stc_dma_descriptor_t descriptor = {0};
    cy_stc_dma_descriptor_t nextDescriptor = {0};
    uint32_t src[DATACNT];
    uint32_t dst[DATACNT];
    
    if (&descriptor != Cy_DMA_Channel_GetCurrentDescriptor(DW0, 0UL)) /* Make sure it is not in use */
    {
        Cy_DMA_Descriptor_SetRetrigger(&descriptor, CY_DMA_RETRIG_IM);
        Cy_DMA_Descriptor_SetInterruptType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetTriggerOutType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetChannelState(&descriptor, CY_DMA_CHANNEL_ENABLED);
        Cy_DMA_Descriptor_SetTriggerInType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetDataSize(&descriptor, CY_DMA_WORD);
        Cy_DMA_Descriptor_SetSrcTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDstTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDescriptorType(&descriptor, CY_DMA_1D_TRANSFER);
        Cy_DMA_Descriptor_SetSrcAddress(&descriptor, &src);
        Cy_DMA_Descriptor_SetDstAddress(&descriptor, &dst);
        Cy_DMA_Descriptor_SetXloopSrcIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDstIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDataCount(&descriptor, DATACNT);
        Cy_DMA_Descriptor_SetYloopSrcIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDstIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDataCount(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetNextDescriptor(&descriptor, &nextDescriptor);
    }
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

  • srcYincrement: The value of the source increment. The valid range is -2048 … 2047.

__STATIC_INLINE void Cy_DMA_Descriptor_SetYloopDstIncrement (cy_stc_dma_descriptor_t *descriptor, int32_t dstYincrement)

Sets the destination increment parameter for the Y loop of the specified descriptor (for 2D descriptors only).

Function Usage

    
    /* Scenario: Set or modify individual descriptor parameters dynamically. This snippet shows them all. */
    
    #define DATACNT (8UL)
    cy_stc_dma_descriptor_t descriptor = {0};
    cy_stc_dma_descriptor_t nextDescriptor = {0};
    uint32_t src[DATACNT];
    uint32_t dst[DATACNT];
    
    if (&descriptor != Cy_DMA_Channel_GetCurrentDescriptor(DW0, 0UL)) /* Make sure it is not in use */
    {
        Cy_DMA_Descriptor_SetRetrigger(&descriptor, CY_DMA_RETRIG_IM);
        Cy_DMA_Descriptor_SetInterruptType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetTriggerOutType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetChannelState(&descriptor, CY_DMA_CHANNEL_ENABLED);
        Cy_DMA_Descriptor_SetTriggerInType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetDataSize(&descriptor, CY_DMA_WORD);
        Cy_DMA_Descriptor_SetSrcTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDstTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDescriptorType(&descriptor, CY_DMA_1D_TRANSFER);
        Cy_DMA_Descriptor_SetSrcAddress(&descriptor, &src);
        Cy_DMA_Descriptor_SetDstAddress(&descriptor, &dst);
        Cy_DMA_Descriptor_SetXloopSrcIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDstIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDataCount(&descriptor, DATACNT);
        Cy_DMA_Descriptor_SetYloopSrcIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDstIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDataCount(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetNextDescriptor(&descriptor, &nextDescriptor);
    }
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

  • dstYincrement: The value of the destination increment. The valid range is -2048 … 2047.

__STATIC_INLINE void Cy_DMA_Descriptor_SetInterruptType (cy_stc_dma_descriptor_t *descriptor, cy_en_dma_trigger_type_t interruptType)

Sets the interrupt type for the specified descriptor.

Function Usage

    
    /* Scenario: Set or modify individual descriptor parameters dynamically. This snippet shows them all. */
    
    #define DATACNT (8UL)
    cy_stc_dma_descriptor_t descriptor = {0};
    cy_stc_dma_descriptor_t nextDescriptor = {0};
    uint32_t src[DATACNT];
    uint32_t dst[DATACNT];
    
    if (&descriptor != Cy_DMA_Channel_GetCurrentDescriptor(DW0, 0UL)) /* Make sure it is not in use */
    {
        Cy_DMA_Descriptor_SetRetrigger(&descriptor, CY_DMA_RETRIG_IM);
        Cy_DMA_Descriptor_SetInterruptType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetTriggerOutType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetChannelState(&descriptor, CY_DMA_CHANNEL_ENABLED);
        Cy_DMA_Descriptor_SetTriggerInType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetDataSize(&descriptor, CY_DMA_WORD);
        Cy_DMA_Descriptor_SetSrcTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDstTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDescriptorType(&descriptor, CY_DMA_1D_TRANSFER);
        Cy_DMA_Descriptor_SetSrcAddress(&descriptor, &src);
        Cy_DMA_Descriptor_SetDstAddress(&descriptor, &dst);
        Cy_DMA_Descriptor_SetXloopSrcIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDstIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDataCount(&descriptor, DATACNT);
        Cy_DMA_Descriptor_SetYloopSrcIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDstIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDataCount(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetNextDescriptor(&descriptor, &nextDescriptor);
    }
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

  • interruptType: The interrupt type set for the descriptor. cy_en_dma_trigger_type_t

__STATIC_INLINE void Cy_DMA_Descriptor_SetTriggerInType (cy_stc_dma_descriptor_t *descriptor, cy_en_dma_trigger_type_t triggerInType)

Sets the Trigger-In-Type for the specified descriptor.

Function Usage

    
    /* Scenario: Set or modify individual descriptor parameters dynamically. This snippet shows them all. */
    
    #define DATACNT (8UL)
    cy_stc_dma_descriptor_t descriptor = {0};
    cy_stc_dma_descriptor_t nextDescriptor = {0};
    uint32_t src[DATACNT];
    uint32_t dst[DATACNT];
    
    if (&descriptor != Cy_DMA_Channel_GetCurrentDescriptor(DW0, 0UL)) /* Make sure it is not in use */
    {
        Cy_DMA_Descriptor_SetRetrigger(&descriptor, CY_DMA_RETRIG_IM);
        Cy_DMA_Descriptor_SetInterruptType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetTriggerOutType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetChannelState(&descriptor, CY_DMA_CHANNEL_ENABLED);
        Cy_DMA_Descriptor_SetTriggerInType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetDataSize(&descriptor, CY_DMA_WORD);
        Cy_DMA_Descriptor_SetSrcTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDstTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDescriptorType(&descriptor, CY_DMA_1D_TRANSFER);
        Cy_DMA_Descriptor_SetSrcAddress(&descriptor, &src);
        Cy_DMA_Descriptor_SetDstAddress(&descriptor, &dst);
        Cy_DMA_Descriptor_SetXloopSrcIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDstIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDataCount(&descriptor, DATACNT);
        Cy_DMA_Descriptor_SetYloopSrcIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDstIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDataCount(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetNextDescriptor(&descriptor, &nextDescriptor);
    }
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

  • triggerInType: The Trigger In Type parameter cy_en_dma_trigger_type_t

__STATIC_INLINE void Cy_DMA_Descriptor_SetTriggerOutType (cy_stc_dma_descriptor_t *descriptor, cy_en_dma_trigger_type_t triggerOutType)

Sets the Trigger-Out-Type for the specified descriptor.

Function Usage

    
    /* Scenario: Set or modify individual descriptor parameters dynamically. This snippet shows them all. */
    
    #define DATACNT (8UL)
    cy_stc_dma_descriptor_t descriptor = {0};
    cy_stc_dma_descriptor_t nextDescriptor = {0};
    uint32_t src[DATACNT];
    uint32_t dst[DATACNT];
    
    if (&descriptor != Cy_DMA_Channel_GetCurrentDescriptor(DW0, 0UL)) /* Make sure it is not in use */
    {
        Cy_DMA_Descriptor_SetRetrigger(&descriptor, CY_DMA_RETRIG_IM);
        Cy_DMA_Descriptor_SetInterruptType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetTriggerOutType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetChannelState(&descriptor, CY_DMA_CHANNEL_ENABLED);
        Cy_DMA_Descriptor_SetTriggerInType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetDataSize(&descriptor, CY_DMA_WORD);
        Cy_DMA_Descriptor_SetSrcTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDstTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDescriptorType(&descriptor, CY_DMA_1D_TRANSFER);
        Cy_DMA_Descriptor_SetSrcAddress(&descriptor, &src);
        Cy_DMA_Descriptor_SetDstAddress(&descriptor, &dst);
        Cy_DMA_Descriptor_SetXloopSrcIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDstIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDataCount(&descriptor, DATACNT);
        Cy_DMA_Descriptor_SetYloopSrcIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDstIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDataCount(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetNextDescriptor(&descriptor, &nextDescriptor);
    }
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

  • triggerOutType: The Trigger-Out-Type set for the descriptor. cy_en_dma_trigger_type_t

__STATIC_INLINE void Cy_DMA_Descriptor_SetDataSize (cy_stc_dma_descriptor_t *descriptor, cy_en_dma_data_size_t dataSize)

Sets the Data Element Size for the specified descriptor.

Function Usage

    
    /* Scenario: Set or modify individual descriptor parameters dynamically. This snippet shows them all. */
    
    #define DATACNT (8UL)
    cy_stc_dma_descriptor_t descriptor = {0};
    cy_stc_dma_descriptor_t nextDescriptor = {0};
    uint32_t src[DATACNT];
    uint32_t dst[DATACNT];
    
    if (&descriptor != Cy_DMA_Channel_GetCurrentDescriptor(DW0, 0UL)) /* Make sure it is not in use */
    {
        Cy_DMA_Descriptor_SetRetrigger(&descriptor, CY_DMA_RETRIG_IM);
        Cy_DMA_Descriptor_SetInterruptType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetTriggerOutType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetChannelState(&descriptor, CY_DMA_CHANNEL_ENABLED);
        Cy_DMA_Descriptor_SetTriggerInType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetDataSize(&descriptor, CY_DMA_WORD);
        Cy_DMA_Descriptor_SetSrcTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDstTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDescriptorType(&descriptor, CY_DMA_1D_TRANSFER);
        Cy_DMA_Descriptor_SetSrcAddress(&descriptor, &src);
        Cy_DMA_Descriptor_SetDstAddress(&descriptor, &dst);
        Cy_DMA_Descriptor_SetXloopSrcIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDstIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDataCount(&descriptor, DATACNT);
        Cy_DMA_Descriptor_SetYloopSrcIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDstIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDataCount(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetNextDescriptor(&descriptor, &nextDescriptor);
    }
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

  • dataSize: The Data Element Size cy_en_dma_data_size_t

__STATIC_INLINE void Cy_DMA_Descriptor_SetSrcTransferSize (cy_stc_dma_descriptor_t *descriptor, cy_en_dma_transfer_size_t srcTransferSize)

Sets the Source Transfer Size for the specified descriptor.

Function Usage

    
    /* Scenario: Set or modify individual descriptor parameters dynamically. This snippet shows them all. */
    
    #define DATACNT (8UL)
    cy_stc_dma_descriptor_t descriptor = {0};
    cy_stc_dma_descriptor_t nextDescriptor = {0};
    uint32_t src[DATACNT];
    uint32_t dst[DATACNT];
    
    if (&descriptor != Cy_DMA_Channel_GetCurrentDescriptor(DW0, 0UL)) /* Make sure it is not in use */
    {
        Cy_DMA_Descriptor_SetRetrigger(&descriptor, CY_DMA_RETRIG_IM);
        Cy_DMA_Descriptor_SetInterruptType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetTriggerOutType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetChannelState(&descriptor, CY_DMA_CHANNEL_ENABLED);
        Cy_DMA_Descriptor_SetTriggerInType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetDataSize(&descriptor, CY_DMA_WORD);
        Cy_DMA_Descriptor_SetSrcTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDstTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDescriptorType(&descriptor, CY_DMA_1D_TRANSFER);
        Cy_DMA_Descriptor_SetSrcAddress(&descriptor, &src);
        Cy_DMA_Descriptor_SetDstAddress(&descriptor, &dst);
        Cy_DMA_Descriptor_SetXloopSrcIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDstIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDataCount(&descriptor, DATACNT);
        Cy_DMA_Descriptor_SetYloopSrcIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDstIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDataCount(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetNextDescriptor(&descriptor, &nextDescriptor);
    }
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

  • srcTransferSize: The Source Transfer Size cy_en_dma_transfer_size_t.

__STATIC_INLINE void Cy_DMA_Descriptor_SetDstTransferSize (cy_stc_dma_descriptor_t *descriptor, cy_en_dma_transfer_size_t dstTransferSize)

Sets the Destination Transfer Size for the specified descriptor.

Function Usage

    
    /* Scenario: Set or modify individual descriptor parameters dynamically. This snippet shows them all. */
    
    #define DATACNT (8UL)
    cy_stc_dma_descriptor_t descriptor = {0};
    cy_stc_dma_descriptor_t nextDescriptor = {0};
    uint32_t src[DATACNT];
    uint32_t dst[DATACNT];
    
    if (&descriptor != Cy_DMA_Channel_GetCurrentDescriptor(DW0, 0UL)) /* Make sure it is not in use */
    {
        Cy_DMA_Descriptor_SetRetrigger(&descriptor, CY_DMA_RETRIG_IM);
        Cy_DMA_Descriptor_SetInterruptType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetTriggerOutType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetChannelState(&descriptor, CY_DMA_CHANNEL_ENABLED);
        Cy_DMA_Descriptor_SetTriggerInType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetDataSize(&descriptor, CY_DMA_WORD);
        Cy_DMA_Descriptor_SetSrcTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDstTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDescriptorType(&descriptor, CY_DMA_1D_TRANSFER);
        Cy_DMA_Descriptor_SetSrcAddress(&descriptor, &src);
        Cy_DMA_Descriptor_SetDstAddress(&descriptor, &dst);
        Cy_DMA_Descriptor_SetXloopSrcIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDstIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDataCount(&descriptor, DATACNT);
        Cy_DMA_Descriptor_SetYloopSrcIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDstIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDataCount(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetNextDescriptor(&descriptor, &nextDescriptor);
    }
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

  • dstTransferSize: The Destination Transfer Size cy_en_dma_transfer_size_t.

__STATIC_INLINE void Cy_DMA_Descriptor_SetRetrigger (cy_stc_dma_descriptor_t *descriptor, cy_en_dma_retrigger_t retrigger)

Sets the retrigger value that specifies whether the controller should wait for the input trigger to be deactivated.

Function Usage

    
    /* Scenario: Set or modify individual descriptor parameters dynamically. This snippet shows them all. */
    
    #define DATACNT (8UL)
    cy_stc_dma_descriptor_t descriptor = {0};
    cy_stc_dma_descriptor_t nextDescriptor = {0};
    uint32_t src[DATACNT];
    uint32_t dst[DATACNT];
    
    if (&descriptor != Cy_DMA_Channel_GetCurrentDescriptor(DW0, 0UL)) /* Make sure it is not in use */
    {
        Cy_DMA_Descriptor_SetRetrigger(&descriptor, CY_DMA_RETRIG_IM);
        Cy_DMA_Descriptor_SetInterruptType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetTriggerOutType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetChannelState(&descriptor, CY_DMA_CHANNEL_ENABLED);
        Cy_DMA_Descriptor_SetTriggerInType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetDataSize(&descriptor, CY_DMA_WORD);
        Cy_DMA_Descriptor_SetSrcTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDstTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDescriptorType(&descriptor, CY_DMA_1D_TRANSFER);
        Cy_DMA_Descriptor_SetSrcAddress(&descriptor, &src);
        Cy_DMA_Descriptor_SetDstAddress(&descriptor, &dst);
        Cy_DMA_Descriptor_SetXloopSrcIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDstIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDataCount(&descriptor, DATACNT);
        Cy_DMA_Descriptor_SetYloopSrcIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDstIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDataCount(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetNextDescriptor(&descriptor, &nextDescriptor);
    }
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

  • retrigger: The cy_en_dma_retrigger_t parameter specifies whether the controller should wait for the input trigger to be deactivated.

__STATIC_INLINE void Cy_DMA_Descriptor_SetChannelState (cy_stc_dma_descriptor_t *descriptor, cy_en_dma_channel_state_t channelState)

Sets the channel state on completion of the specified descriptor.

Function Usage

    
    /* Scenario: Set or modify individual descriptor parameters dynamically. This snippet shows them all. */
    
    #define DATACNT (8UL)
    cy_stc_dma_descriptor_t descriptor = {0};
    cy_stc_dma_descriptor_t nextDescriptor = {0};
    uint32_t src[DATACNT];
    uint32_t dst[DATACNT];
    
    if (&descriptor != Cy_DMA_Channel_GetCurrentDescriptor(DW0, 0UL)) /* Make sure it is not in use */
    {
        Cy_DMA_Descriptor_SetRetrigger(&descriptor, CY_DMA_RETRIG_IM);
        Cy_DMA_Descriptor_SetInterruptType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetTriggerOutType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetChannelState(&descriptor, CY_DMA_CHANNEL_ENABLED);
        Cy_DMA_Descriptor_SetTriggerInType(&descriptor, CY_DMA_DESCR);
        Cy_DMA_Descriptor_SetDataSize(&descriptor, CY_DMA_WORD);
        Cy_DMA_Descriptor_SetSrcTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDstTransferSize(&descriptor, CY_DMA_TRANSFER_SIZE_WORD);
        Cy_DMA_Descriptor_SetDescriptorType(&descriptor, CY_DMA_1D_TRANSFER);
        Cy_DMA_Descriptor_SetSrcAddress(&descriptor, &src);
        Cy_DMA_Descriptor_SetDstAddress(&descriptor, &dst);
        Cy_DMA_Descriptor_SetXloopSrcIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDstIncrement(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetXloopDataCount(&descriptor, DATACNT);
        Cy_DMA_Descriptor_SetYloopSrcIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDstIncrement(&descriptor, 0UL);
        Cy_DMA_Descriptor_SetYloopDataCount(&descriptor, 1UL);
        Cy_DMA_Descriptor_SetNextDescriptor(&descriptor, &nextDescriptor);
    }
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

  • channelState: The channel state cy_en_dma_channel_state_t.

cy_stc_dma_descriptor_t *Cy_DMA_Descriptor_GetNextDescriptor(cy_stc_dma_descriptor_t const *descriptor)

Returns a next descriptor address of the specified descriptor.

Based on the descriptor type, the offset of the address for the next descriptor may vary. For a single-transfer descriptor type, this register is at offset 0x0c. For the 1D-transfer descriptor type, this register is at offset 0x10. For the 2D-transfer descriptor type, this register is at offset 0x14.

Return

The pointer to the next descriptor.

Function Usage

    
    /* Scenario: Get the value of individual descriptor parameters dynamically. The snippet shows them all. */
    /* This function assumes the 'descriptor' is initialized, see \ref Cy_DMA_Enable description */
    
    cy_en_dma_retrigger_t       retrigger       = Cy_DMA_Descriptor_GetRetrigger(&descriptor);
    cy_en_dma_trigger_type_t    interruptType   = Cy_DMA_Descriptor_GetInterruptType(&descriptor);
    cy_en_dma_trigger_type_t    triggerOutType  = Cy_DMA_Descriptor_GetTriggerOutType(&descriptor);
    cy_en_dma_channel_state_t   channelState    = Cy_DMA_Descriptor_GetChannelState(&descriptor);
    cy_en_dma_trigger_type_t    triggerInType   = Cy_DMA_Descriptor_GetTriggerInType(&descriptor);
    cy_en_dma_data_size_t       dataSize        = Cy_DMA_Descriptor_GetDataSize(&descriptor);
    cy_en_dma_transfer_size_t   srcTransferSize = Cy_DMA_Descriptor_GetSrcTransferSize(&descriptor);
    cy_en_dma_transfer_size_t   dstTransferSize = Cy_DMA_Descriptor_GetDstTransferSize(&descriptor);
    cy_en_dma_descriptor_type_t descriptorType  = Cy_DMA_Descriptor_GetDescriptorType(&descriptor);
                         void * srcAddress      = Cy_DMA_Descriptor_GetSrcAddress(&descriptor);
                         void * dstAddress      = Cy_DMA_Descriptor_GetDstAddress(&descriptor);
                      int32_t   srcXincrement   = Cy_DMA_Descriptor_GetXloopSrcIncrement(&descriptor);
                      int32_t   dstXincrement   = Cy_DMA_Descriptor_GetXloopDstIncrement(&descriptor);
                     uint32_t   xCount          = Cy_DMA_Descriptor_GetXloopDataCount(&descriptor);
                      int32_t   srcYincrement   = Cy_DMA_Descriptor_GetYloopSrcIncrement(&descriptor);
                      int32_t   dstYincrement   = Cy_DMA_Descriptor_GetYloopDstIncrement(&descriptor);
                     uint32_t   yCount          = Cy_DMA_Descriptor_GetYloopDataCount(&descriptor);
      cy_stc_dma_descriptor_t * nextDescriptor  = Cy_DMA_Descriptor_GetNextDescriptor(&descriptor);
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

__STATIC_INLINE cy_en_dma_descriptor_type_t Cy_DMA_Descriptor_GetDescriptorType (cy_stc_dma_descriptor_t const *descriptor)

Returns the descriptor’s type of the specified descriptor.

Return

The descriptor type cy_en_dma_descriptor_type_t.

Function Usage

    
    /* Scenario: Get the value of individual descriptor parameters dynamically. The snippet shows them all. */
    /* This function assumes the 'descriptor' is initialized, see \ref Cy_DMA_Enable description */
    
    cy_en_dma_retrigger_t       retrigger       = Cy_DMA_Descriptor_GetRetrigger(&descriptor);
    cy_en_dma_trigger_type_t    interruptType   = Cy_DMA_Descriptor_GetInterruptType(&descriptor);
    cy_en_dma_trigger_type_t    triggerOutType  = Cy_DMA_Descriptor_GetTriggerOutType(&descriptor);
    cy_en_dma_channel_state_t   channelState    = Cy_DMA_Descriptor_GetChannelState(&descriptor);
    cy_en_dma_trigger_type_t    triggerInType   = Cy_DMA_Descriptor_GetTriggerInType(&descriptor);
    cy_en_dma_data_size_t       dataSize        = Cy_DMA_Descriptor_GetDataSize(&descriptor);
    cy_en_dma_transfer_size_t   srcTransferSize = Cy_DMA_Descriptor_GetSrcTransferSize(&descriptor);
    cy_en_dma_transfer_size_t   dstTransferSize = Cy_DMA_Descriptor_GetDstTransferSize(&descriptor);
    cy_en_dma_descriptor_type_t descriptorType  = Cy_DMA_Descriptor_GetDescriptorType(&descriptor);
                         void * srcAddress      = Cy_DMA_Descriptor_GetSrcAddress(&descriptor);
                         void * dstAddress      = Cy_DMA_Descriptor_GetDstAddress(&descriptor);
                      int32_t   srcXincrement   = Cy_DMA_Descriptor_GetXloopSrcIncrement(&descriptor);
                      int32_t   dstXincrement   = Cy_DMA_Descriptor_GetXloopDstIncrement(&descriptor);
                     uint32_t   xCount          = Cy_DMA_Descriptor_GetXloopDataCount(&descriptor);
                      int32_t   srcYincrement   = Cy_DMA_Descriptor_GetYloopSrcIncrement(&descriptor);
                      int32_t   dstYincrement   = Cy_DMA_Descriptor_GetYloopDstIncrement(&descriptor);
                     uint32_t   yCount          = Cy_DMA_Descriptor_GetYloopDataCount(&descriptor);
      cy_stc_dma_descriptor_t * nextDescriptor  = Cy_DMA_Descriptor_GetNextDescriptor(&descriptor);
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

__STATIC_INLINE void * Cy_DMA_Descriptor_GetSrcAddress (cy_stc_dma_descriptor_t const *descriptor)

Returns the source address parameter of the specified descriptor.

Return

The source address value of the descriptor.

Function Usage

    
    /* Scenario: Get the value of individual descriptor parameters dynamically. The snippet shows them all. */
    /* This function assumes the 'descriptor' is initialized, see \ref Cy_DMA_Enable description */
    
    cy_en_dma_retrigger_t       retrigger       = Cy_DMA_Descriptor_GetRetrigger(&descriptor);
    cy_en_dma_trigger_type_t    interruptType   = Cy_DMA_Descriptor_GetInterruptType(&descriptor);
    cy_en_dma_trigger_type_t    triggerOutType  = Cy_DMA_Descriptor_GetTriggerOutType(&descriptor);
    cy_en_dma_channel_state_t   channelState    = Cy_DMA_Descriptor_GetChannelState(&descriptor);
    cy_en_dma_trigger_type_t    triggerInType   = Cy_DMA_Descriptor_GetTriggerInType(&descriptor);
    cy_en_dma_data_size_t       dataSize        = Cy_DMA_Descriptor_GetDataSize(&descriptor);
    cy_en_dma_transfer_size_t   srcTransferSize = Cy_DMA_Descriptor_GetSrcTransferSize(&descriptor);
    cy_en_dma_transfer_size_t   dstTransferSize = Cy_DMA_Descriptor_GetDstTransferSize(&descriptor);
    cy_en_dma_descriptor_type_t descriptorType  = Cy_DMA_Descriptor_GetDescriptorType(&descriptor);
                         void * srcAddress      = Cy_DMA_Descriptor_GetSrcAddress(&descriptor);
                         void * dstAddress      = Cy_DMA_Descriptor_GetDstAddress(&descriptor);
                      int32_t   srcXincrement   = Cy_DMA_Descriptor_GetXloopSrcIncrement(&descriptor);
                      int32_t   dstXincrement   = Cy_DMA_Descriptor_GetXloopDstIncrement(&descriptor);
                     uint32_t   xCount          = Cy_DMA_Descriptor_GetXloopDataCount(&descriptor);
                      int32_t   srcYincrement   = Cy_DMA_Descriptor_GetYloopSrcIncrement(&descriptor);
                      int32_t   dstYincrement   = Cy_DMA_Descriptor_GetYloopDstIncrement(&descriptor);
                     uint32_t   yCount          = Cy_DMA_Descriptor_GetYloopDataCount(&descriptor);
      cy_stc_dma_descriptor_t * nextDescriptor  = Cy_DMA_Descriptor_GetNextDescriptor(&descriptor);
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

__STATIC_INLINE void * Cy_DMA_Descriptor_GetDstAddress (cy_stc_dma_descriptor_t const *descriptor)

Returns the destination address parameter of the specified descriptor.

Return

The destination address value of the descriptor.

Function Usage

    
    /* Scenario: Get the value of individual descriptor parameters dynamically. The snippet shows them all. */
    /* This function assumes the 'descriptor' is initialized, see \ref Cy_DMA_Enable description */
    
    cy_en_dma_retrigger_t       retrigger       = Cy_DMA_Descriptor_GetRetrigger(&descriptor);
    cy_en_dma_trigger_type_t    interruptType   = Cy_DMA_Descriptor_GetInterruptType(&descriptor);
    cy_en_dma_trigger_type_t    triggerOutType  = Cy_DMA_Descriptor_GetTriggerOutType(&descriptor);
    cy_en_dma_channel_state_t   channelState    = Cy_DMA_Descriptor_GetChannelState(&descriptor);
    cy_en_dma_trigger_type_t    triggerInType   = Cy_DMA_Descriptor_GetTriggerInType(&descriptor);
    cy_en_dma_data_size_t       dataSize        = Cy_DMA_Descriptor_GetDataSize(&descriptor);
    cy_en_dma_transfer_size_t   srcTransferSize = Cy_DMA_Descriptor_GetSrcTransferSize(&descriptor);
    cy_en_dma_transfer_size_t   dstTransferSize = Cy_DMA_Descriptor_GetDstTransferSize(&descriptor);
    cy_en_dma_descriptor_type_t descriptorType  = Cy_DMA_Descriptor_GetDescriptorType(&descriptor);
                         void * srcAddress      = Cy_DMA_Descriptor_GetSrcAddress(&descriptor);
                         void * dstAddress      = Cy_DMA_Descriptor_GetDstAddress(&descriptor);
                      int32_t   srcXincrement   = Cy_DMA_Descriptor_GetXloopSrcIncrement(&descriptor);
                      int32_t   dstXincrement   = Cy_DMA_Descriptor_GetXloopDstIncrement(&descriptor);
                     uint32_t   xCount          = Cy_DMA_Descriptor_GetXloopDataCount(&descriptor);
                      int32_t   srcYincrement   = Cy_DMA_Descriptor_GetYloopSrcIncrement(&descriptor);
                      int32_t   dstYincrement   = Cy_DMA_Descriptor_GetYloopDstIncrement(&descriptor);
                     uint32_t   yCount          = Cy_DMA_Descriptor_GetYloopDataCount(&descriptor);
      cy_stc_dma_descriptor_t * nextDescriptor  = Cy_DMA_Descriptor_GetNextDescriptor(&descriptor);
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

__STATIC_INLINE uint32_t Cy_DMA_Descriptor_GetXloopDataCount (cy_stc_dma_descriptor_t const *descriptor)

Returns the number of data elements for the X loop of the specified descriptor (for 1D or 2D descriptors only).

Return

The number of data elements to transfer in the X loop. The range is 1 … 256.

Function Usage

    
    /* Scenario: Get the value of individual descriptor parameters dynamically. The snippet shows them all. */
    /* This function assumes the 'descriptor' is initialized, see \ref Cy_DMA_Enable description */
    
    cy_en_dma_retrigger_t       retrigger       = Cy_DMA_Descriptor_GetRetrigger(&descriptor);
    cy_en_dma_trigger_type_t    interruptType   = Cy_DMA_Descriptor_GetInterruptType(&descriptor);
    cy_en_dma_trigger_type_t    triggerOutType  = Cy_DMA_Descriptor_GetTriggerOutType(&descriptor);
    cy_en_dma_channel_state_t   channelState    = Cy_DMA_Descriptor_GetChannelState(&descriptor);
    cy_en_dma_trigger_type_t    triggerInType   = Cy_DMA_Descriptor_GetTriggerInType(&descriptor);
    cy_en_dma_data_size_t       dataSize        = Cy_DMA_Descriptor_GetDataSize(&descriptor);
    cy_en_dma_transfer_size_t   srcTransferSize = Cy_DMA_Descriptor_GetSrcTransferSize(&descriptor);
    cy_en_dma_transfer_size_t   dstTransferSize = Cy_DMA_Descriptor_GetDstTransferSize(&descriptor);
    cy_en_dma_descriptor_type_t descriptorType  = Cy_DMA_Descriptor_GetDescriptorType(&descriptor);
                         void * srcAddress      = Cy_DMA_Descriptor_GetSrcAddress(&descriptor);
                         void * dstAddress      = Cy_DMA_Descriptor_GetDstAddress(&descriptor);
                      int32_t   srcXincrement   = Cy_DMA_Descriptor_GetXloopSrcIncrement(&descriptor);
                      int32_t   dstXincrement   = Cy_DMA_Descriptor_GetXloopDstIncrement(&descriptor);
                     uint32_t   xCount          = Cy_DMA_Descriptor_GetXloopDataCount(&descriptor);
                      int32_t   srcYincrement   = Cy_DMA_Descriptor_GetYloopSrcIncrement(&descriptor);
                      int32_t   dstYincrement   = Cy_DMA_Descriptor_GetYloopDstIncrement(&descriptor);
                     uint32_t   yCount          = Cy_DMA_Descriptor_GetYloopDataCount(&descriptor);
      cy_stc_dma_descriptor_t * nextDescriptor  = Cy_DMA_Descriptor_GetNextDescriptor(&descriptor);
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

__STATIC_INLINE uint32_t Cy_DMA_Descriptor_GetYloopDataCount (cy_stc_dma_descriptor_t const *descriptor)

Returns the number of X loops to execute in the Y loop of the specified descriptor (for 2D descriptors only).

Return

The number of X loops to execute in the Y loop. The range is 1 … 256.

Function Usage

    
    /* Scenario: Get the value of individual descriptor parameters dynamically. The snippet shows them all. */
    /* This function assumes the 'descriptor' is initialized, see \ref Cy_DMA_Enable description */
    
    cy_en_dma_retrigger_t       retrigger       = Cy_DMA_Descriptor_GetRetrigger(&descriptor);
    cy_en_dma_trigger_type_t    interruptType   = Cy_DMA_Descriptor_GetInterruptType(&descriptor);
    cy_en_dma_trigger_type_t    triggerOutType  = Cy_DMA_Descriptor_GetTriggerOutType(&descriptor);
    cy_en_dma_channel_state_t   channelState    = Cy_DMA_Descriptor_GetChannelState(&descriptor);
    cy_en_dma_trigger_type_t    triggerInType   = Cy_DMA_Descriptor_GetTriggerInType(&descriptor);
    cy_en_dma_data_size_t       dataSize        = Cy_DMA_Descriptor_GetDataSize(&descriptor);
    cy_en_dma_transfer_size_t   srcTransferSize = Cy_DMA_Descriptor_GetSrcTransferSize(&descriptor);
    cy_en_dma_transfer_size_t   dstTransferSize = Cy_DMA_Descriptor_GetDstTransferSize(&descriptor);
    cy_en_dma_descriptor_type_t descriptorType  = Cy_DMA_Descriptor_GetDescriptorType(&descriptor);
                         void * srcAddress      = Cy_DMA_Descriptor_GetSrcAddress(&descriptor);
                         void * dstAddress      = Cy_DMA_Descriptor_GetDstAddress(&descriptor);
                      int32_t   srcXincrement   = Cy_DMA_Descriptor_GetXloopSrcIncrement(&descriptor);
                      int32_t   dstXincrement   = Cy_DMA_Descriptor_GetXloopDstIncrement(&descriptor);
                     uint32_t   xCount          = Cy_DMA_Descriptor_GetXloopDataCount(&descriptor);
                      int32_t   srcYincrement   = Cy_DMA_Descriptor_GetYloopSrcIncrement(&descriptor);
                      int32_t   dstYincrement   = Cy_DMA_Descriptor_GetYloopDstIncrement(&descriptor);
                     uint32_t   yCount          = Cy_DMA_Descriptor_GetYloopDataCount(&descriptor);
      cy_stc_dma_descriptor_t * nextDescriptor  = Cy_DMA_Descriptor_GetNextDescriptor(&descriptor);
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

__STATIC_INLINE int32_t Cy_DMA_Descriptor_GetXloopSrcIncrement (cy_stc_dma_descriptor_t const *descriptor)

Returns the source increment parameter for the X loop of the specified descriptor (for 1D or 2D descriptors only).

Return

The value of the source increment. The range is -2048 … 2047.

Function Usage

    
    /* Scenario: Get the value of individual descriptor parameters dynamically. The snippet shows them all. */
    /* This function assumes the 'descriptor' is initialized, see \ref Cy_DMA_Enable description */
    
    cy_en_dma_retrigger_t       retrigger       = Cy_DMA_Descriptor_GetRetrigger(&descriptor);
    cy_en_dma_trigger_type_t    interruptType   = Cy_DMA_Descriptor_GetInterruptType(&descriptor);
    cy_en_dma_trigger_type_t    triggerOutType  = Cy_DMA_Descriptor_GetTriggerOutType(&descriptor);
    cy_en_dma_channel_state_t   channelState    = Cy_DMA_Descriptor_GetChannelState(&descriptor);
    cy_en_dma_trigger_type_t    triggerInType   = Cy_DMA_Descriptor_GetTriggerInType(&descriptor);
    cy_en_dma_data_size_t       dataSize        = Cy_DMA_Descriptor_GetDataSize(&descriptor);
    cy_en_dma_transfer_size_t   srcTransferSize = Cy_DMA_Descriptor_GetSrcTransferSize(&descriptor);
    cy_en_dma_transfer_size_t   dstTransferSize = Cy_DMA_Descriptor_GetDstTransferSize(&descriptor);
    cy_en_dma_descriptor_type_t descriptorType  = Cy_DMA_Descriptor_GetDescriptorType(&descriptor);
                         void * srcAddress      = Cy_DMA_Descriptor_GetSrcAddress(&descriptor);
                         void * dstAddress      = Cy_DMA_Descriptor_GetDstAddress(&descriptor);
                      int32_t   srcXincrement   = Cy_DMA_Descriptor_GetXloopSrcIncrement(&descriptor);
                      int32_t   dstXincrement   = Cy_DMA_Descriptor_GetXloopDstIncrement(&descriptor);
                     uint32_t   xCount          = Cy_DMA_Descriptor_GetXloopDataCount(&descriptor);
                      int32_t   srcYincrement   = Cy_DMA_Descriptor_GetYloopSrcIncrement(&descriptor);
                      int32_t   dstYincrement   = Cy_DMA_Descriptor_GetYloopDstIncrement(&descriptor);
                     uint32_t   yCount          = Cy_DMA_Descriptor_GetYloopDataCount(&descriptor);
      cy_stc_dma_descriptor_t * nextDescriptor  = Cy_DMA_Descriptor_GetNextDescriptor(&descriptor);
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

__STATIC_INLINE int32_t Cy_DMA_Descriptor_GetXloopDstIncrement (cy_stc_dma_descriptor_t const *descriptor)

Returns the destination increment parameter for the X loop of the specified descriptor (for 1D or 2D descriptors only).

Return

The value of the destination increment. The range is -2048 … 2047.

Function Usage

    
    /* Scenario: Get the value of individual descriptor parameters dynamically. The snippet shows them all. */
    /* This function assumes the 'descriptor' is initialized, see \ref Cy_DMA_Enable description */
    
    cy_en_dma_retrigger_t       retrigger       = Cy_DMA_Descriptor_GetRetrigger(&descriptor);
    cy_en_dma_trigger_type_t    interruptType   = Cy_DMA_Descriptor_GetInterruptType(&descriptor);
    cy_en_dma_trigger_type_t    triggerOutType  = Cy_DMA_Descriptor_GetTriggerOutType(&descriptor);
    cy_en_dma_channel_state_t   channelState    = Cy_DMA_Descriptor_GetChannelState(&descriptor);
    cy_en_dma_trigger_type_t    triggerInType   = Cy_DMA_Descriptor_GetTriggerInType(&descriptor);
    cy_en_dma_data_size_t       dataSize        = Cy_DMA_Descriptor_GetDataSize(&descriptor);
    cy_en_dma_transfer_size_t   srcTransferSize = Cy_DMA_Descriptor_GetSrcTransferSize(&descriptor);
    cy_en_dma_transfer_size_t   dstTransferSize = Cy_DMA_Descriptor_GetDstTransferSize(&descriptor);
    cy_en_dma_descriptor_type_t descriptorType  = Cy_DMA_Descriptor_GetDescriptorType(&descriptor);
                         void * srcAddress      = Cy_DMA_Descriptor_GetSrcAddress(&descriptor);
                         void * dstAddress      = Cy_DMA_Descriptor_GetDstAddress(&descriptor);
                      int32_t   srcXincrement   = Cy_DMA_Descriptor_GetXloopSrcIncrement(&descriptor);
                      int32_t   dstXincrement   = Cy_DMA_Descriptor_GetXloopDstIncrement(&descriptor);
                     uint32_t   xCount          = Cy_DMA_Descriptor_GetXloopDataCount(&descriptor);
                      int32_t   srcYincrement   = Cy_DMA_Descriptor_GetYloopSrcIncrement(&descriptor);
                      int32_t   dstYincrement   = Cy_DMA_Descriptor_GetYloopDstIncrement(&descriptor);
                     uint32_t   yCount          = Cy_DMA_Descriptor_GetYloopDataCount(&descriptor);
      cy_stc_dma_descriptor_t * nextDescriptor  = Cy_DMA_Descriptor_GetNextDescriptor(&descriptor);
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

__STATIC_INLINE int32_t Cy_DMA_Descriptor_GetYloopSrcIncrement (cy_stc_dma_descriptor_t const *descriptor)

Returns the source increment parameter for the outer Y of the specified descriptor (for 2D descriptors only).

Return

The value of the source increment. The range is -2048 … 2047.

Function Usage

    
    /* Scenario: Get the value of individual descriptor parameters dynamically. The snippet shows them all. */
    /* This function assumes the 'descriptor' is initialized, see \ref Cy_DMA_Enable description */
    
    cy_en_dma_retrigger_t       retrigger       = Cy_DMA_Descriptor_GetRetrigger(&descriptor);
    cy_en_dma_trigger_type_t    interruptType   = Cy_DMA_Descriptor_GetInterruptType(&descriptor);
    cy_en_dma_trigger_type_t    triggerOutType  = Cy_DMA_Descriptor_GetTriggerOutType(&descriptor);
    cy_en_dma_channel_state_t   channelState    = Cy_DMA_Descriptor_GetChannelState(&descriptor);
    cy_en_dma_trigger_type_t    triggerInType   = Cy_DMA_Descriptor_GetTriggerInType(&descriptor);
    cy_en_dma_data_size_t       dataSize        = Cy_DMA_Descriptor_GetDataSize(&descriptor);
    cy_en_dma_transfer_size_t   srcTransferSize = Cy_DMA_Descriptor_GetSrcTransferSize(&descriptor);
    cy_en_dma_transfer_size_t   dstTransferSize = Cy_DMA_Descriptor_GetDstTransferSize(&descriptor);
    cy_en_dma_descriptor_type_t descriptorType  = Cy_DMA_Descriptor_GetDescriptorType(&descriptor);
                         void * srcAddress      = Cy_DMA_Descriptor_GetSrcAddress(&descriptor);
                         void * dstAddress      = Cy_DMA_Descriptor_GetDstAddress(&descriptor);
                      int32_t   srcXincrement   = Cy_DMA_Descriptor_GetXloopSrcIncrement(&descriptor);
                      int32_t   dstXincrement   = Cy_DMA_Descriptor_GetXloopDstIncrement(&descriptor);
                     uint32_t   xCount          = Cy_DMA_Descriptor_GetXloopDataCount(&descriptor);
                      int32_t   srcYincrement   = Cy_DMA_Descriptor_GetYloopSrcIncrement(&descriptor);
                      int32_t   dstYincrement   = Cy_DMA_Descriptor_GetYloopDstIncrement(&descriptor);
                     uint32_t   yCount          = Cy_DMA_Descriptor_GetYloopDataCount(&descriptor);
      cy_stc_dma_descriptor_t * nextDescriptor  = Cy_DMA_Descriptor_GetNextDescriptor(&descriptor);
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

__STATIC_INLINE int32_t Cy_DMA_Descriptor_GetYloopDstIncrement (cy_stc_dma_descriptor_t const *descriptor)

Returns the destination increment parameter for the Y loop of the specified descriptor (for 2D descriptors only).

Return

The value of the destination increment. The range is -2048 … 2047.

Function Usage

    
    /* Scenario: Get the value of individual descriptor parameters dynamically. The snippet shows them all. */
    /* This function assumes the 'descriptor' is initialized, see \ref Cy_DMA_Enable description */
    
    cy_en_dma_retrigger_t       retrigger       = Cy_DMA_Descriptor_GetRetrigger(&descriptor);
    cy_en_dma_trigger_type_t    interruptType   = Cy_DMA_Descriptor_GetInterruptType(&descriptor);
    cy_en_dma_trigger_type_t    triggerOutType  = Cy_DMA_Descriptor_GetTriggerOutType(&descriptor);
    cy_en_dma_channel_state_t   channelState    = Cy_DMA_Descriptor_GetChannelState(&descriptor);
    cy_en_dma_trigger_type_t    triggerInType   = Cy_DMA_Descriptor_GetTriggerInType(&descriptor);
    cy_en_dma_data_size_t       dataSize        = Cy_DMA_Descriptor_GetDataSize(&descriptor);
    cy_en_dma_transfer_size_t   srcTransferSize = Cy_DMA_Descriptor_GetSrcTransferSize(&descriptor);
    cy_en_dma_transfer_size_t   dstTransferSize = Cy_DMA_Descriptor_GetDstTransferSize(&descriptor);
    cy_en_dma_descriptor_type_t descriptorType  = Cy_DMA_Descriptor_GetDescriptorType(&descriptor);
                         void * srcAddress      = Cy_DMA_Descriptor_GetSrcAddress(&descriptor);
                         void * dstAddress      = Cy_DMA_Descriptor_GetDstAddress(&descriptor);
                      int32_t   srcXincrement   = Cy_DMA_Descriptor_GetXloopSrcIncrement(&descriptor);
                      int32_t   dstXincrement   = Cy_DMA_Descriptor_GetXloopDstIncrement(&descriptor);
                     uint32_t   xCount          = Cy_DMA_Descriptor_GetXloopDataCount(&descriptor);
                      int32_t   srcYincrement   = Cy_DMA_Descriptor_GetYloopSrcIncrement(&descriptor);
                      int32_t   dstYincrement   = Cy_DMA_Descriptor_GetYloopDstIncrement(&descriptor);
                     uint32_t   yCount          = Cy_DMA_Descriptor_GetYloopDataCount(&descriptor);
      cy_stc_dma_descriptor_t * nextDescriptor  = Cy_DMA_Descriptor_GetNextDescriptor(&descriptor);
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

__STATIC_INLINE cy_en_dma_trigger_type_t Cy_DMA_Descriptor_GetInterruptType (cy_stc_dma_descriptor_t const *descriptor)

Returns the Interrupt-Type of the specified descriptor.

Return

The Interrupt-Type cy_en_dma_trigger_type_t.

Function Usage

    
    /* Scenario: Get the value of individual descriptor parameters dynamically. The snippet shows them all. */
    /* This function assumes the 'descriptor' is initialized, see \ref Cy_DMA_Enable description */
    
    cy_en_dma_retrigger_t       retrigger       = Cy_DMA_Descriptor_GetRetrigger(&descriptor);
    cy_en_dma_trigger_type_t    interruptType   = Cy_DMA_Descriptor_GetInterruptType(&descriptor);
    cy_en_dma_trigger_type_t    triggerOutType  = Cy_DMA_Descriptor_GetTriggerOutType(&descriptor);
    cy_en_dma_channel_state_t   channelState    = Cy_DMA_Descriptor_GetChannelState(&descriptor);
    cy_en_dma_trigger_type_t    triggerInType   = Cy_DMA_Descriptor_GetTriggerInType(&descriptor);
    cy_en_dma_data_size_t       dataSize        = Cy_DMA_Descriptor_GetDataSize(&descriptor);
    cy_en_dma_transfer_size_t   srcTransferSize = Cy_DMA_Descriptor_GetSrcTransferSize(&descriptor);
    cy_en_dma_transfer_size_t   dstTransferSize = Cy_DMA_Descriptor_GetDstTransferSize(&descriptor);
    cy_en_dma_descriptor_type_t descriptorType  = Cy_DMA_Descriptor_GetDescriptorType(&descriptor);
                         void * srcAddress      = Cy_DMA_Descriptor_GetSrcAddress(&descriptor);
                         void * dstAddress      = Cy_DMA_Descriptor_GetDstAddress(&descriptor);
                      int32_t   srcXincrement   = Cy_DMA_Descriptor_GetXloopSrcIncrement(&descriptor);
                      int32_t   dstXincrement   = Cy_DMA_Descriptor_GetXloopDstIncrement(&descriptor);
                     uint32_t   xCount          = Cy_DMA_Descriptor_GetXloopDataCount(&descriptor);
                      int32_t   srcYincrement   = Cy_DMA_Descriptor_GetYloopSrcIncrement(&descriptor);
                      int32_t   dstYincrement   = Cy_DMA_Descriptor_GetYloopDstIncrement(&descriptor);
                     uint32_t   yCount          = Cy_DMA_Descriptor_GetYloopDataCount(&descriptor);
      cy_stc_dma_descriptor_t * nextDescriptor  = Cy_DMA_Descriptor_GetNextDescriptor(&descriptor);
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

__STATIC_INLINE cy_en_dma_trigger_type_t Cy_DMA_Descriptor_GetTriggerInType (cy_stc_dma_descriptor_t const *descriptor)

Returns the Trigger-In-Type parameter of the specified descriptor.

Return

The Trigger-In-Type cy_en_dma_trigger_type_t

Function Usage

    
    /* Scenario: Get the value of individual descriptor parameters dynamically. The snippet shows them all. */
    /* This function assumes the 'descriptor' is initialized, see \ref Cy_DMA_Enable description */
    
    cy_en_dma_retrigger_t       retrigger       = Cy_DMA_Descriptor_GetRetrigger(&descriptor);
    cy_en_dma_trigger_type_t    interruptType   = Cy_DMA_Descriptor_GetInterruptType(&descriptor);
    cy_en_dma_trigger_type_t    triggerOutType  = Cy_DMA_Descriptor_GetTriggerOutType(&descriptor);
    cy_en_dma_channel_state_t   channelState    = Cy_DMA_Descriptor_GetChannelState(&descriptor);
    cy_en_dma_trigger_type_t    triggerInType   = Cy_DMA_Descriptor_GetTriggerInType(&descriptor);
    cy_en_dma_data_size_t       dataSize        = Cy_DMA_Descriptor_GetDataSize(&descriptor);
    cy_en_dma_transfer_size_t   srcTransferSize = Cy_DMA_Descriptor_GetSrcTransferSize(&descriptor);
    cy_en_dma_transfer_size_t   dstTransferSize = Cy_DMA_Descriptor_GetDstTransferSize(&descriptor);
    cy_en_dma_descriptor_type_t descriptorType  = Cy_DMA_Descriptor_GetDescriptorType(&descriptor);
                         void * srcAddress      = Cy_DMA_Descriptor_GetSrcAddress(&descriptor);
                         void * dstAddress      = Cy_DMA_Descriptor_GetDstAddress(&descriptor);
                      int32_t   srcXincrement   = Cy_DMA_Descriptor_GetXloopSrcIncrement(&descriptor);
                      int32_t   dstXincrement   = Cy_DMA_Descriptor_GetXloopDstIncrement(&descriptor);
                     uint32_t   xCount          = Cy_DMA_Descriptor_GetXloopDataCount(&descriptor);
                      int32_t   srcYincrement   = Cy_DMA_Descriptor_GetYloopSrcIncrement(&descriptor);
                      int32_t   dstYincrement   = Cy_DMA_Descriptor_GetYloopDstIncrement(&descriptor);
                     uint32_t   yCount          = Cy_DMA_Descriptor_GetYloopDataCount(&descriptor);
      cy_stc_dma_descriptor_t * nextDescriptor  = Cy_DMA_Descriptor_GetNextDescriptor(&descriptor);
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

__STATIC_INLINE cy_en_dma_trigger_type_t Cy_DMA_Descriptor_GetTriggerOutType (cy_stc_dma_descriptor_t const *descriptor)

Returns the Trigger-Out-Type parameter of the specified descriptor.

Return

The Trigger-Out-Type parameter cy_en_dma_trigger_type_t.

Function Usage

    
    /* Scenario: Get the value of individual descriptor parameters dynamically. The snippet shows them all. */
    /* This function assumes the 'descriptor' is initialized, see \ref Cy_DMA_Enable description */
    
    cy_en_dma_retrigger_t       retrigger       = Cy_DMA_Descriptor_GetRetrigger(&descriptor);
    cy_en_dma_trigger_type_t    interruptType   = Cy_DMA_Descriptor_GetInterruptType(&descriptor);
    cy_en_dma_trigger_type_t    triggerOutType  = Cy_DMA_Descriptor_GetTriggerOutType(&descriptor);
    cy_en_dma_channel_state_t   channelState    = Cy_DMA_Descriptor_GetChannelState(&descriptor);
    cy_en_dma_trigger_type_t    triggerInType   = Cy_DMA_Descriptor_GetTriggerInType(&descriptor);
    cy_en_dma_data_size_t       dataSize        = Cy_DMA_Descriptor_GetDataSize(&descriptor);
    cy_en_dma_transfer_size_t   srcTransferSize = Cy_DMA_Descriptor_GetSrcTransferSize(&descriptor);
    cy_en_dma_transfer_size_t   dstTransferSize = Cy_DMA_Descriptor_GetDstTransferSize(&descriptor);
    cy_en_dma_descriptor_type_t descriptorType  = Cy_DMA_Descriptor_GetDescriptorType(&descriptor);
                         void * srcAddress      = Cy_DMA_Descriptor_GetSrcAddress(&descriptor);
                         void * dstAddress      = Cy_DMA_Descriptor_GetDstAddress(&descriptor);
                      int32_t   srcXincrement   = Cy_DMA_Descriptor_GetXloopSrcIncrement(&descriptor);
                      int32_t   dstXincrement   = Cy_DMA_Descriptor_GetXloopDstIncrement(&descriptor);
                     uint32_t   xCount          = Cy_DMA_Descriptor_GetXloopDataCount(&descriptor);
                      int32_t   srcYincrement   = Cy_DMA_Descriptor_GetYloopSrcIncrement(&descriptor);
                      int32_t   dstYincrement   = Cy_DMA_Descriptor_GetYloopDstIncrement(&descriptor);
                     uint32_t   yCount          = Cy_DMA_Descriptor_GetYloopDataCount(&descriptor);
      cy_stc_dma_descriptor_t * nextDescriptor  = Cy_DMA_Descriptor_GetNextDescriptor(&descriptor);
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

__STATIC_INLINE cy_en_dma_data_size_t Cy_DMA_Descriptor_GetDataSize (cy_stc_dma_descriptor_t const *descriptor)

Returns the Data Element Size parameter of the specified descriptor.

Return

The Data Element Size cy_en_dma_data_size_t.

Function Usage

    
    /* Scenario: Get the value of individual descriptor parameters dynamically. The snippet shows them all. */
    /* This function assumes the 'descriptor' is initialized, see \ref Cy_DMA_Enable description */
    
    cy_en_dma_retrigger_t       retrigger       = Cy_DMA_Descriptor_GetRetrigger(&descriptor);
    cy_en_dma_trigger_type_t    interruptType   = Cy_DMA_Descriptor_GetInterruptType(&descriptor);
    cy_en_dma_trigger_type_t    triggerOutType  = Cy_DMA_Descriptor_GetTriggerOutType(&descriptor);
    cy_en_dma_channel_state_t   channelState    = Cy_DMA_Descriptor_GetChannelState(&descriptor);
    cy_en_dma_trigger_type_t    triggerInType   = Cy_DMA_Descriptor_GetTriggerInType(&descriptor);
    cy_en_dma_data_size_t       dataSize        = Cy_DMA_Descriptor_GetDataSize(&descriptor);
    cy_en_dma_transfer_size_t   srcTransferSize = Cy_DMA_Descriptor_GetSrcTransferSize(&descriptor);
    cy_en_dma_transfer_size_t   dstTransferSize = Cy_DMA_Descriptor_GetDstTransferSize(&descriptor);
    cy_en_dma_descriptor_type_t descriptorType  = Cy_DMA_Descriptor_GetDescriptorType(&descriptor);
                         void * srcAddress      = Cy_DMA_Descriptor_GetSrcAddress(&descriptor);
                         void * dstAddress      = Cy_DMA_Descriptor_GetDstAddress(&descriptor);
                      int32_t   srcXincrement   = Cy_DMA_Descriptor_GetXloopSrcIncrement(&descriptor);
                      int32_t   dstXincrement   = Cy_DMA_Descriptor_GetXloopDstIncrement(&descriptor);
                     uint32_t   xCount          = Cy_DMA_Descriptor_GetXloopDataCount(&descriptor);
                      int32_t   srcYincrement   = Cy_DMA_Descriptor_GetYloopSrcIncrement(&descriptor);
                      int32_t   dstYincrement   = Cy_DMA_Descriptor_GetYloopDstIncrement(&descriptor);
                     uint32_t   yCount          = Cy_DMA_Descriptor_GetYloopDataCount(&descriptor);
      cy_stc_dma_descriptor_t * nextDescriptor  = Cy_DMA_Descriptor_GetNextDescriptor(&descriptor);
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

__STATIC_INLINE cy_en_dma_transfer_size_t Cy_DMA_Descriptor_GetSrcTransferSize (cy_stc_dma_descriptor_t const *descriptor)

Returns the Source Transfer Size parameter of the specified descriptor.

Return

The Source Transfer Size cy_en_dma_transfer_size_t.

Function Usage

    
    /* Scenario: Get the value of individual descriptor parameters dynamically. The snippet shows them all. */
    /* This function assumes the 'descriptor' is initialized, see \ref Cy_DMA_Enable description */
    
    cy_en_dma_retrigger_t       retrigger       = Cy_DMA_Descriptor_GetRetrigger(&descriptor);
    cy_en_dma_trigger_type_t    interruptType   = Cy_DMA_Descriptor_GetInterruptType(&descriptor);
    cy_en_dma_trigger_type_t    triggerOutType  = Cy_DMA_Descriptor_GetTriggerOutType(&descriptor);
    cy_en_dma_channel_state_t   channelState    = Cy_DMA_Descriptor_GetChannelState(&descriptor);
    cy_en_dma_trigger_type_t    triggerInType   = Cy_DMA_Descriptor_GetTriggerInType(&descriptor);
    cy_en_dma_data_size_t       dataSize        = Cy_DMA_Descriptor_GetDataSize(&descriptor);
    cy_en_dma_transfer_size_t   srcTransferSize = Cy_DMA_Descriptor_GetSrcTransferSize(&descriptor);
    cy_en_dma_transfer_size_t   dstTransferSize = Cy_DMA_Descriptor_GetDstTransferSize(&descriptor);
    cy_en_dma_descriptor_type_t descriptorType  = Cy_DMA_Descriptor_GetDescriptorType(&descriptor);
                         void * srcAddress      = Cy_DMA_Descriptor_GetSrcAddress(&descriptor);
                         void * dstAddress      = Cy_DMA_Descriptor_GetDstAddress(&descriptor);
                      int32_t   srcXincrement   = Cy_DMA_Descriptor_GetXloopSrcIncrement(&descriptor);
                      int32_t   dstXincrement   = Cy_DMA_Descriptor_GetXloopDstIncrement(&descriptor);
                     uint32_t   xCount          = Cy_DMA_Descriptor_GetXloopDataCount(&descriptor);
                      int32_t   srcYincrement   = Cy_DMA_Descriptor_GetYloopSrcIncrement(&descriptor);
                      int32_t   dstYincrement   = Cy_DMA_Descriptor_GetYloopDstIncrement(&descriptor);
                     uint32_t   yCount          = Cy_DMA_Descriptor_GetYloopDataCount(&descriptor);
      cy_stc_dma_descriptor_t * nextDescriptor  = Cy_DMA_Descriptor_GetNextDescriptor(&descriptor);
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

__STATIC_INLINE cy_en_dma_transfer_size_t Cy_DMA_Descriptor_GetDstTransferSize (cy_stc_dma_descriptor_t const *descriptor)

Returns the Destination Transfer Size parameter of the specified descriptor.

Return

The Destination Transfer Size cy_en_dma_transfer_size_t.

Function Usage

    
    /* Scenario: Get the value of individual descriptor parameters dynamically. The snippet shows them all. */
    /* This function assumes the 'descriptor' is initialized, see \ref Cy_DMA_Enable description */
    
    cy_en_dma_retrigger_t       retrigger       = Cy_DMA_Descriptor_GetRetrigger(&descriptor);
    cy_en_dma_trigger_type_t    interruptType   = Cy_DMA_Descriptor_GetInterruptType(&descriptor);
    cy_en_dma_trigger_type_t    triggerOutType  = Cy_DMA_Descriptor_GetTriggerOutType(&descriptor);
    cy_en_dma_channel_state_t   channelState    = Cy_DMA_Descriptor_GetChannelState(&descriptor);
    cy_en_dma_trigger_type_t    triggerInType   = Cy_DMA_Descriptor_GetTriggerInType(&descriptor);
    cy_en_dma_data_size_t       dataSize        = Cy_DMA_Descriptor_GetDataSize(&descriptor);
    cy_en_dma_transfer_size_t   srcTransferSize = Cy_DMA_Descriptor_GetSrcTransferSize(&descriptor);
    cy_en_dma_transfer_size_t   dstTransferSize = Cy_DMA_Descriptor_GetDstTransferSize(&descriptor);
    cy_en_dma_descriptor_type_t descriptorType  = Cy_DMA_Descriptor_GetDescriptorType(&descriptor);
                         void * srcAddress      = Cy_DMA_Descriptor_GetSrcAddress(&descriptor);
                         void * dstAddress      = Cy_DMA_Descriptor_GetDstAddress(&descriptor);
                      int32_t   srcXincrement   = Cy_DMA_Descriptor_GetXloopSrcIncrement(&descriptor);
                      int32_t   dstXincrement   = Cy_DMA_Descriptor_GetXloopDstIncrement(&descriptor);
                     uint32_t   xCount          = Cy_DMA_Descriptor_GetXloopDataCount(&descriptor);
                      int32_t   srcYincrement   = Cy_DMA_Descriptor_GetYloopSrcIncrement(&descriptor);
                      int32_t   dstYincrement   = Cy_DMA_Descriptor_GetYloopDstIncrement(&descriptor);
                     uint32_t   yCount          = Cy_DMA_Descriptor_GetYloopDataCount(&descriptor);
      cy_stc_dma_descriptor_t * nextDescriptor  = Cy_DMA_Descriptor_GetNextDescriptor(&descriptor);
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

__STATIC_INLINE cy_en_dma_retrigger_t Cy_DMA_Descriptor_GetRetrigger (cy_stc_dma_descriptor_t const *descriptor)

Returns a value that specifies whether the controller should wait for the input trigger to be deactivated.

Return

The Retrigger setting cy_en_dma_retrigger_t.

Function Usage

    
    /* Scenario: Get the value of individual descriptor parameters dynamically. The snippet shows them all. */
    /* This function assumes the 'descriptor' is initialized, see \ref Cy_DMA_Enable description */
    
    cy_en_dma_retrigger_t       retrigger       = Cy_DMA_Descriptor_GetRetrigger(&descriptor);
    cy_en_dma_trigger_type_t    interruptType   = Cy_DMA_Descriptor_GetInterruptType(&descriptor);
    cy_en_dma_trigger_type_t    triggerOutType  = Cy_DMA_Descriptor_GetTriggerOutType(&descriptor);
    cy_en_dma_channel_state_t   channelState    = Cy_DMA_Descriptor_GetChannelState(&descriptor);
    cy_en_dma_trigger_type_t    triggerInType   = Cy_DMA_Descriptor_GetTriggerInType(&descriptor);
    cy_en_dma_data_size_t       dataSize        = Cy_DMA_Descriptor_GetDataSize(&descriptor);
    cy_en_dma_transfer_size_t   srcTransferSize = Cy_DMA_Descriptor_GetSrcTransferSize(&descriptor);
    cy_en_dma_transfer_size_t   dstTransferSize = Cy_DMA_Descriptor_GetDstTransferSize(&descriptor);
    cy_en_dma_descriptor_type_t descriptorType  = Cy_DMA_Descriptor_GetDescriptorType(&descriptor);
                         void * srcAddress      = Cy_DMA_Descriptor_GetSrcAddress(&descriptor);
                         void * dstAddress      = Cy_DMA_Descriptor_GetDstAddress(&descriptor);
                      int32_t   srcXincrement   = Cy_DMA_Descriptor_GetXloopSrcIncrement(&descriptor);
                      int32_t   dstXincrement   = Cy_DMA_Descriptor_GetXloopDstIncrement(&descriptor);
                     uint32_t   xCount          = Cy_DMA_Descriptor_GetXloopDataCount(&descriptor);
                      int32_t   srcYincrement   = Cy_DMA_Descriptor_GetYloopSrcIncrement(&descriptor);
                      int32_t   dstYincrement   = Cy_DMA_Descriptor_GetYloopDstIncrement(&descriptor);
                     uint32_t   yCount          = Cy_DMA_Descriptor_GetYloopDataCount(&descriptor);
      cy_stc_dma_descriptor_t * nextDescriptor  = Cy_DMA_Descriptor_GetNextDescriptor(&descriptor);
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.

__STATIC_INLINE cy_en_dma_channel_state_t Cy_DMA_Descriptor_GetChannelState (cy_stc_dma_descriptor_t const *descriptor)

Returns the channel state on completion of the specified descriptor.

Return

The Channel State setting cy_en_dma_channel_state_t.

Function Usage

    
    /* Scenario: Get the value of individual descriptor parameters dynamically. The snippet shows them all. */
    /* This function assumes the 'descriptor' is initialized, see \ref Cy_DMA_Enable description */
    
    cy_en_dma_retrigger_t       retrigger       = Cy_DMA_Descriptor_GetRetrigger(&descriptor);
    cy_en_dma_trigger_type_t    interruptType   = Cy_DMA_Descriptor_GetInterruptType(&descriptor);
    cy_en_dma_trigger_type_t    triggerOutType  = Cy_DMA_Descriptor_GetTriggerOutType(&descriptor);
    cy_en_dma_channel_state_t   channelState    = Cy_DMA_Descriptor_GetChannelState(&descriptor);
    cy_en_dma_trigger_type_t    triggerInType   = Cy_DMA_Descriptor_GetTriggerInType(&descriptor);
    cy_en_dma_data_size_t       dataSize        = Cy_DMA_Descriptor_GetDataSize(&descriptor);
    cy_en_dma_transfer_size_t   srcTransferSize = Cy_DMA_Descriptor_GetSrcTransferSize(&descriptor);
    cy_en_dma_transfer_size_t   dstTransferSize = Cy_DMA_Descriptor_GetDstTransferSize(&descriptor);
    cy_en_dma_descriptor_type_t descriptorType  = Cy_DMA_Descriptor_GetDescriptorType(&descriptor);
                         void * srcAddress      = Cy_DMA_Descriptor_GetSrcAddress(&descriptor);
                         void * dstAddress      = Cy_DMA_Descriptor_GetDstAddress(&descriptor);
                      int32_t   srcXincrement   = Cy_DMA_Descriptor_GetXloopSrcIncrement(&descriptor);
                      int32_t   dstXincrement   = Cy_DMA_Descriptor_GetXloopDstIncrement(&descriptor);
                     uint32_t   xCount          = Cy_DMA_Descriptor_GetXloopDataCount(&descriptor);
                      int32_t   srcYincrement   = Cy_DMA_Descriptor_GetYloopSrcIncrement(&descriptor);
                      int32_t   dstYincrement   = Cy_DMA_Descriptor_GetYloopDstIncrement(&descriptor);
                     uint32_t   yCount          = Cy_DMA_Descriptor_GetYloopDataCount(&descriptor);
      cy_stc_dma_descriptor_t * nextDescriptor  = Cy_DMA_Descriptor_GetNextDescriptor(&descriptor);
    

Parameters
  • descriptor: The descriptor structure instance declared by the user/component.