Command Linking Support for DMA driver.
Command Linking Support for DMA driver.
Command linking allows the DMA controller to automatically execute a sequence of operations by loading descriptors from memory. This enables complex scatter-gather operations and multi-step transfers without CPU intervention.
__attribute__((aligned(32))) static uint32_t descbuf1
[DMA_DESCRIPTOR_BIT_COUNT] SRAM_DATA_ATTRIBUTE;
__attribute__((aligned(32))) static uint32_t descbuf2
[DMA_DESCRIPTOR_BIT_COUNT] SRAM_DATA_ATTRIBUTE;
__attribute__((aligned(32))) static uint32_t descbuf3
[DMA_DESCRIPTOR_BIT_COUNT] SRAM_DATA_ATTRIBUTE;
config1.config_1d.src_addr = 0x20000000;
config1.config_1d.dest_addr = 0x30000000;
config1.config_1d.transfer_size = 1024;
config1.callback = my_callback;
config2 = config1;
config2.config_1d.src_addr = 0x20001000;
config2.config_1d.dest_addr = 0x30001000;
config3 = config2;
config3.config_1d.src_addr = 0x20002000;
config3.config_1d.dest_addr = 0x30002000;
0x40000000, &desc1);
0x40000100, &desc2);
0x40000200, &desc3);
@ DMA_TRANSFER_MODE_1D
Definition dma.h:202
@ DMA_UNIT_SIZE_4BYTES
Definition dma.h:258
dma_status_en dma_create_descriptor(dma_instance_en instance, uint32_t channel, const dma_channel_config_t *config, dma_descriptor_handle_t *descriptor_out)
dma_status_en dma_link_descriptors(dma_descriptor_handle_t first_desc, dma_descriptor_handle_t second_desc)
dma_status_en dma_start_descriptor_chain(dma_instance_en instance, uint32_t channel, dma_descriptor_handle_t *first_desc)
dma_status_en dma_free_descriptor(dma_descriptor_handle_t descriptor)
uint32_t * dma_descriptor_handle_t
Handle to a DMA descriptor.
Definition dma.h:180
DMA channel configuration.
Definition dma.h:638