![Texas Instruments AM1808 Скачать руководство пользователя страница 593](http://html.mh-extra.com/html/texas-instruments/am1808/am1808_technical-reference-manual_1094558593.webp)
Architecture
593
SPRUH82C – April 2013 – Revised September 2016
Copyright © 2013–2016, Texas Instruments Incorporated
Enhanced Direct Memory Access (EDMA3) Controller
17.2.3.7 Linking Transfers
The EDMA3CC provides a mechanism known as linking, which allows the entire PaRAM set to be
reloaded from a location within the PaRAM memory map (for both DMA and QDMA channels). Linking is
especially useful for maintaining ping-pong buffers, circular buffering, and repetitive/continuous transfers
all with no CPU intervention. Upon completion of a transfer, the current transfer parameters are reloaded
with the parameter set pointed to by the 16-bit link address field (of the current parameter set). Linking
only occurs when the STATIC bit in OPT is cleared to 0.
NOTE:
A transfer (DMA or QDMA) should always be linked to another useful transfer. If it is required
to terminate a transfer, the transfer should be linked to a NULL set.
The link update occurs after the current PaRAM set event parameters have been exhausted. An event's
parameters are exhausted when the EDMA3 channel controller has submitted all the transfers associated
with the PaRAM set.
A link update occurs for null and dummy transfers depending on the state of the STATIC bit in OPT and
the LINK field. In both cases (null or dummy), if the value of LINK is FFFFh then a null PaRAM set (with all
0s and LINK set to FFFFh) is written to the current PaRAM set. Similarly, if LINK is set to a value other
than FFFFh then the appropriate PaRAM location pointed to by LINK is copied to the current PaRAM set.
Once the channel completion conditions are met for an event, the transfer parameters located at the link
address are loaded into the current DMA or QDMA channel’s associated parameter set. The EDMA3CC
reads the entire PaRAM set (8 words) from the PaRAM set specified by LINK and writes all 8 words to the
PaRAM set associated with the current channel.
shows an example of a linked transfer.
Any PaRAM set in the PaRAM can be used as a link/reload parameter set; however, it is recommended
that the PaRAM sets associated with peripheral synchronization events (see
) should only
be used for linking if the synchronization event isolated with the channel mapped to that PaRAM set is
disabled.
If a PaRAM set location is mapped to a QDMA channel (by QCHMAP
n
), then copying the link PaRAM set
onto the current QDMA channel PaRAM set is recognized as a trigger event and is latched in QER since a
write to the trigger word was performed. This feature can be used to create a linked list of transfers using
a single QDMA channel and multiple PaRAM sets.
Link-to-self transfers replicate the behavior of autoinitialization, which facilitates the use of circular
buffering and repetitive transfers. After an EDMA3 channel exhausts its current PaRAM set, it reloads all
the parameter set entries from another PaRAM set, which is initialized with values identical to the original
PaRAM set.
shows an example of a linked-to-self transfer. In
, parameter set 127
has the LINK field address pointing to the address of parameter set 127, that is, linked-to-self.
NOTE:
If the STATIC bit in OPT is set for a PaRAM set, then link updates are not performed. The
link updates performed internally by the EDMA3CC are atomic. This implies that when the
EDMA3CC is updating a PaRAM set, accesses to PaRAM by other EDMA3 programmer's
(for example, CPU configuration accesses) are not allowed. Also for QDMA, for example, if
the first word of the PaRAM entry is defined as a trigger word, EDMA3CC logic assures that
all 8 PaRAM words are updated before the new QDMA event can trigger the transfer for that
PaRAM entry.