![Texas Instruments SimpleLink Ethernet MSP432E401Y Скачать руководство пользователя страница 607](http://html1.mh-extra.com/html/texas-instruments/simplelink-ethernet-msp432e401y/simplelink-ethernet-msp432e401y_technical-reference-manual_1095578607.webp)
Functional Description
607
SLAU723A – October 2017 – Revised October 2018
Copyright © 2017–2018, Texas Instruments Incorporated
Micro Direct Memory Access (µDMA)
8.3.5.5
Memory Scatter-Gather
Memory Scatter-Gather mode is a complex mode used when data must be transferred to or from varied
locations in memory instead of a set of contiguous locations in a memory buffer. For example, a gather
µDMA operation could be used to selectively read the payload of several stored packets of a
communication protocol and store them together in sequence in a memory buffer.
In Memory Scatter-Gather mode, the primary control structure is used to program the alternate control
structure from a table in memory. The table is set up by the processor software and contains a list of
control structures, each containing the source and destination end pointers, and the control word for a
specific transfer. The mode of each control word must be set to Scatter-Gather mode. Each entry in the
table is copied in turn to the alternate structure where it is then executed. The µDMA controller alternates
between using the primary control structure to copy the next transfer instruction from the list and then
executing the new transfer instruction. The end of the list is marked by programming the control word for
the last entry to use Auto transfer mode. Once the last transfer is performed using Auto mode, the µDMA
controller stops. A completion interrupt is generated only after the last transfer. It is possible to loop the list
by having the last entry copy the primary control structure to point back to the beginning of the list (or to a
new list). It is also possible to trigger a set of other channels to perform a transfer, either directly, by
programming a write to the software trigger for another channel, or indirectly, by causing a peripheral
action that results in a µDMA request.
By programming the µDMA controller using this method, a set of up to 256 arbitrary transfers can be
performed based on a single µDMA request.
For an example of operation in Memory Scatter-Gather mode, see
and
. This
example shows a
gather
operation, where data in three separate buffers in memory is copied together into
one buffer.
shows how the application sets up a µDMA task list in memory that is used by the
controller to perform three sets of copy operations from different locations in memory. The primary control
structure for the channel that is used for the operation is configured to copy from the task list to the
alternate control structure.
shows the sequence as the µDMA controller performs the three sets of copy operations. First,
using the primary control structure, the µDMA controller loads the alternate control structure with task A. It
then performs the copy operation specified by task A, copying the data from the source buffer A to the
destination buffer. Next, the µDMA controller again uses the primary control structure to load task B into
the alternate control structure, and then performs the B operation with the alternate control structure. The
process is repeated for task C.