Channel Linking - Freescale Semiconductor MCF54455 Reference Manual

Table of Contents

Advertisement

Enhanced Direct Memory Access (eDMA)
START
1
0
2
0
3a
0
3b
0
For both activation types, the major-loop-complete status is explicitly indicated via the
TCDn_CSR[DONE] bit.
The TCDn_CSR[START] bit is cleared automatically when the channel begins execution regardless of
how the channel activates.
19.6.5.2
Active Channel TCDn Reads
The eDMA reads back the true TCDn_SADDR, TCDn_DADDR, and TCDn_NBYTES values if read
while a channel executes. The true values of the SADDR, DADDR, and NBYTES are the values the
eDMA engine currently uses in its internal register file and not the values in the TCD local memory for
that channel. The addresses (SADDR and DADDR) and NBYTES (decrements to zero as the transfer
progresses) can give an indication of the progress of the transfer. All other values are read back from the
TCD local memory.
19.6.5.3
Preemption Status
Preemption is available only when fixed arbitration is selected as the channel arbitration mode. A
preemptive situation is one in which a preempt-enabled channel runs and a higher priority request becomes
active. When the eDMA engine is not operating in fixed channel arbitration mode, the determination of
the actively running relative priority outstanding requests become undefined. Channel priorities are treated
as equal (constantly rotating) when round-robin arbitration mode is selected.
The TCDn_CSR[ACTIVE] bit for the preempted channel remains asserted throughout the preemption.
The preempted channel is temporarily suspended while the preempting channel executes one major loop
iteration. If two TCDn_CSR[ACTIVE] bits are set simultaneously in the global TCD map, a higher
priority channel is actively preempting a lower priority channel.
19.6.6

Channel Linking

Channel linking (or chaining) is a mechanism where one channel sets the TCDn_CSR[START] bit of
another channel (or itself), therefore initiating a service request for that channel. When properly enabled,
the EDMA engine automatically performs this operation at the major or minor loop completion.
The minor loop channel linking occurs at the completion of the minor loop (or one iteration of the major
loop). The TCDn_CITER[E_LINK] field determines whether a minor loop link is requested. When
enabled, the channel link is made after each iteration of the major loop except for the last. When the major
19-36
TCDn_CSR bits
ACTIVE
DONE
0
0
1
0
0
0
0
1
State
Channel service request via hardware (peripheral
request asserted)
Channel is executing
Channel has completed the minor loop and is idle
Channel has completed the major loop and is idle
Freescale Semiconductor

Advertisement

Table of Contents
loading

Table of Contents