
Enhanced Direct Memory Access Controller (eDMA)
MPC5644A Microcontroller Reference Manual, Rev. 6
188
Freescale Semiconductor
Bit EDMA_TCD[ACTIVE] for the pre-empted channel remains asserted throughout the pre-emption. The
pre-empted channel is temporarily suspended while the pre-empting channel executes one iteration of the
major loop. Two EDMA_TCD[ACTIVE] bits set at the same time in the overall TCD map indicates a
higher priority channel is actively pre-empting a lower priority channel.
8.5.7
Channel linking
Channel linking (or chaining) is a mechanism in which one channel sets bit EDMA_TCD[START] of
another channel (or itself), thus initiating a service request for that channel. This operation is automatically
performed by the eDMA engine at the conclusion of the major or minor loop when properly enabled.
The minor loop channel linking occurs at the completion of the minor loop (or one iteration of the major
loop). Field EDMA_TCD[CITER.E_LINK] is used to determine whether a minor loop link is requested.
When enabled, the channel link is made after each iteration of the minor loop except for the last. When the
major loop is exhausted, only the major loop channel link fields are used to determine if a channel link
should be made. For example, with the initial fields of:
EDMA_TCD[CITER.E_LINK] = 1
EDMA_TCD[CITER.LINKCH] = 0xC
EDMA_TCD[CITER] value = 0x4
EDMA_TCD[MAJOR.E_LINK] = 1
EDMA_TCD[MAJOR.LINKCH] = 0x7
will execute as:
1. Minor loop done Æ set channel 12 EDMA_TCD[START] bit
2. Minor loop done Æ set channel 12 EDMA_TCD[START] bit
3. Minor loop done Æ set channel 12 EDMA_TCD[START] bit
4. Minor loop done, major loop done Æ set channel 7 EDMA_TCD[START] bit
When minor loop linking is enabled (EDMA_TCD[CITER.E_LINK] = 1), field EDMA_TCD[CITER]
uses a 9-bit vector to form the current iteration count.
When minor loop linking is disabled (EDMA_TCD[CITER.E_LINK] = 0), field EDMA_TCD[CITER]
uses a 15-bit vector to form the current iteration count. The bits associated with field
EDMA_TCD[CITER.LINKCH] are concatenated onto the CITER value to increase the range of the
CITER.
NOTE
After configuration, bit EDMA_TCD[CITER.E_LINK] and bit
EDMA_TCD[BITER.E_LINK] must be equal or a configuration error is
reported. The CITER and BITER vector widths must be equal to calculate
the major loop, halfway done interrupt point.
summarizes how a DMA channel can link to another DMA channel, that is, use another
channel’s TCD, at the end of a loop.
Summary of Contents for MPC5644A
Page 2: ...MPC5644A Microcontroller Reference Manual Rev 6 2 Freescale Semiconductor...
Page 24: ...MPC5644A Microcontroller Reference Manual Rev 6 24 Freescale Semiconductor...
Page 26: ...MPC5644A Microcontroller Reference Manual Rev 6 26 Freescale Semiconductor...
Page 52: ...Introduction MPC5644A Microcontroller Reference Manual Rev 6 52 Freescale Semiconductor...
Page 56: ...Memory Map MPC5644A Microcontroller Reference Manual Rev 6 56 Freescale Semiconductor...
Page 1228: ...Decimation Filter MPC5644A Microcontroller Reference Manual Rev 6 1228 Freescale Semiconductor...
Page 1440: ...FlexCAN Module MPC5644A Microcontroller Reference Manual Rev 6 1440 Freescale Semiconductor...