This structure is a configuration structure pre-initialized by user and passed as a parameter to the Cy_DMAC_Descriptor_Init().
It can be allocated in RAM/flash (on user's choice). In case of flash allocation there is a possibility to reinitialize the descriptor in runtime. This structure has all the parameters of the descriptor as separate parameters. Most of these parameters are represented in the cy_stc_dmac_descriptor_t structure as bit fields.
Data Fields | |
cy_en_dmac_retrigger_t | retrigger |
Specifies whether the DMA controller should wait for the input trigger to be deactivated. More... | |
cy_en_dmac_trigger_type_t | interruptType |
Sets the event that triggers an interrupt. More... | |
cy_en_dmac_trigger_type_t | triggerOutType |
Sets the event that triggers an output. More... | |
cy_en_dmac_channel_state_t | channelState |
Specifies whether the channel is enabled or disabled on completion of descriptor see cy_en_dmac_channel_state_t. More... | |
cy_en_dmac_trigger_type_t | triggerInType |
Sets what type of transfer is triggered. More... | |
bool | dataPrefetch |
Source data transfers are initiated as soon as the channel is enabled, the current descriptor pointer is NOT "0" and there is space available in the channel's data FIFO. | |
cy_en_dmac_data_size_t | dataSize |
The size of the data bus for transfer. More... | |
cy_en_dmac_transfer_size_t | srcTransferSize |
The source transfer size. More... | |
cy_en_dmac_transfer_size_t | dstTransferSize |
The destination transfer size. More... | |
cy_en_dmac_descriptor_type_t | descriptorType |
The type of the descriptor. More... | |
void * | srcAddress |
The source address of the transfer. More... | |
void * | dstAddress |
The destination address of the transfer. More... | |
int32_t | srcXincrement |
The address increment of the source after each X-loop transfer. More... | |
int32_t | dstXincrement |
The address increment of the destination after each X-loop transfer. More... | |
uint32_t | xCount |
The number of transfers in an X-loop. More... | |
int32_t | srcYincrement |
The address increment of the source after each Y-loop transfer. More... | |
int32_t | dstYincrement |
The address increment of the destination after each Y-loop transfer. More... | |
uint32_t | yCount |
The number of X-loops in the Y-loop. More... | |
cy_stc_dmac_descriptor_t * | nextDescriptor |
The next descriptor to chain after completion. More... | |
cy_en_dmac_retrigger_t cy_stc_dmac_descriptor_config_t::retrigger |
Specifies whether the DMA controller should wait for the input trigger to be deactivated.
cy_en_dmac_trigger_type_t cy_stc_dmac_descriptor_config_t::interruptType |
Sets the event that triggers an interrupt.
cy_en_dmac_trigger_type_t cy_stc_dmac_descriptor_config_t::triggerOutType |
Sets the event that triggers an output.
cy_en_dmac_channel_state_t cy_stc_dmac_descriptor_config_t::channelState |
Specifies whether the channel is enabled or disabled on completion of descriptor see cy_en_dmac_channel_state_t.
cy_en_dmac_trigger_type_t cy_stc_dmac_descriptor_config_t::triggerInType |
Sets what type of transfer is triggered.
cy_en_dmac_data_size_t cy_stc_dmac_descriptor_config_t::dataSize |
The size of the data bus for transfer.
See cy_en_dmac_data_size_t. For memory copy and scatter descriptors this setting will be ignored.
cy_en_dmac_transfer_size_t cy_stc_dmac_descriptor_config_t::srcTransferSize |
The source transfer size.
For memory copy and scatter descriptors this setting will be ignored.
cy_en_dmac_transfer_size_t cy_stc_dmac_descriptor_config_t::dstTransferSize |
The destination transfer size.
For memory copy and scatter descriptors this setting will be ignored.
cy_en_dmac_descriptor_type_t cy_stc_dmac_descriptor_config_t::descriptorType |
The type of the descriptor.
void* cy_stc_dmac_descriptor_config_t::srcAddress |
The source address of the transfer.
void* cy_stc_dmac_descriptor_config_t::dstAddress |
The destination address of the transfer.
int32_t cy_stc_dmac_descriptor_config_t::srcXincrement |
The address increment of the source after each X-loop transfer.
Valid range is -32768...32767.
int32_t cy_stc_dmac_descriptor_config_t::dstXincrement |
The address increment of the destination after each X-loop transfer.
Valid range is -32768...32767.
uint32_t cy_stc_dmac_descriptor_config_t::xCount |
The number of transfers in an X-loop.
Valid range (for all descriptors except scatter transfer) is 1...65536. For memory copy descriptors, the X count is a number of bytes (not a data transfer size). For scatter descriptors, the X count is a number of [address, data] pairs (two words each). Valid range is 1...32768.
int32_t cy_stc_dmac_descriptor_config_t::srcYincrement |
The address increment of the source after each Y-loop transfer.
Valid range is -32768...32767.
int32_t cy_stc_dmac_descriptor_config_t::dstYincrement |
The address increment of the destination after each Y-loop transfer.
Valid range is -32768...32767.
uint32_t cy_stc_dmac_descriptor_config_t::yCount |
The number of X-loops in the Y-loop.
Valid range is 1...65536.
cy_stc_dmac_descriptor_t* cy_stc_dmac_descriptor_config_t::nextDescriptor |
The next descriptor to chain after completion.
A NULL value will signify no chaining.