DMA Operation
636
SLAU356I – March 2015 – Revised June 2019
Copyright © 2015–2019, Texas Instruments Incorporated
DMA
2. The host processor writes the data structure for tasks A, B, C, and D to the memory locations that the
primary src_data_end_ptr specifies.
3. The host processor enables the channel.
The memory scatter-gather transaction commences when the controller receives a trigger from the
configured peripheral or a software trigger from the host processor. The transaction continues as follows:
Primary, copy A
1. After receiving a request, the controller performs four DMA transfers. These transfers write the
alternate data structure for task A.
2. The controller generates an auto-request for the channel and then arbitrates.
Task A
1. The controller performs task A. After it completes the task, it generates an auto-request for the channel
and then arbitrates.
Primary, copy B
1. The controller performs four DMA transfers. These transfers write the alternate data structure for
task B.
2. The controller generates an auto-request for the channel and then arbitrates.
Task B
1. The controller performs task B. After it completes the task, it generates an auto-request for the channel
and then arbitrates.
Primary, copy C
1. The controller performs four DMA transfers. These transfers write the alternate data structure for
task C.
2. The controller generates an auto-request for the channel and then arbitrates.
Task C
1. The controller performs task C. After it completes the task, it generates an auto-request for the channel
and then arbitrates.
Primary, copy D
1. The controller performs four DMA transfers. These transfers write the alternate data structure for
task D.
2. The controller sets the cycle_ctrl bits of the primary data structure to 000b, to indicate that this data
structure is now invalid.
3. The controller generates an auto-request for the channel and then arbitrates.
Task D
1. The controller performs task D using a basic cycle.
2. The controller sets
dma_done[C]
HIGH for one
hclk
cycle and enters the arbitration process. If the
channel is enabled for Interrupts, then the DMA interrupts the host processor according to the interrupt
configuration.
11.2.3.4.5.1 Example Application use case for Memory Scatter-Gather Cycle
Memory Scatter-gather mode is useful when the user wants to accomplish multiple data transfers without
requiring to configure DMA multiple times. Examples could be when the user wants to copy non-
contiguous blocks of data from flash memory to SRAM or from one location of SRAM to another location
in SRAM. In this case, each of the contiguous blocks of data in memory could be a separate task as in the
above example.
11.2.3.4.6 Peripheral Scatter-Gather Cycle Type
In peripheral scatter-gather mode the controller receives an initial request from a peripheral and then it
performs four DMA transfers using the primary data structure. It then immediately starts a DMA cycle
using the alternate data structure, without rearbitrating or
dma_active[C]
going LOW.