
Enhanced Direct Memory Access Controller (eDMA)
MPC5644A Microcontroller Reference Manual, Rev. 6
Freescale Semiconductor
189
8.5.8
Dynamic programming
8.5.8.1
Dynamic channel linking
Dynamic channel linking is the process of setting the TCD.major.e_link bit during channel execution. This
bit is read from the TCD local memory at the end of channel execution, thus allowing the user to enable
the feature during channel execution.
Because the user is allowed to change the configuration during execution, a coherency model is needed.
Consider the scenario where the user attempts to execute a dynamic channel link by enabling the
TCD.major.e_link bit at the same time the eDMA engine is retiring the channel. The TCD.major.e_link
would be set in the programmer’s model, but it would be unclear whether the actual link was made before
the channel retired.
The coherency model in
is recommended when executing a dynamic channel link request.
For this request, the TCD local memory controller forces the TCD.major.e_link bit to zero on any writes
to a channel’s TCD.word7 after that channel’s TCD.done bit is set, indicating the major loop is complete.
NOTE
The user must clear the TCD.done bit before writing the TCD.major.e_link
bit. The TCD.done bit is cleared automatically by the eDMA engine after a
channel begins execution.
Table 8-24. Channel linking parameters
Desired link behavior
TCD control field name
Description
Link at end of minor loop
citer.e_link
Enable channel-to-channel linking on minor loop completion
(current iteration).
citer.linkch
Link channel number when linking at end of minor loop
(current iteration).
Link at end of major loop
major.e_link
Enable channel-to-channel linking on major loop completion.
major.linkch
Link channel number when linking at end of major loop.
Table 8-25. Coherency model for a dynamic channel link request
Step
Action
1
Write 1b to the TCD.major.e_link bit.
2
Read back the TCD.major.e_link bit.
3
Test the TCD.major.e_link request status:
• If TCD.major.e_link = 1b, the dynamic link attempt was successful.
• If TCD.major.e_link = 0b, the attempted dynamic link did not succeed (the channel was
already retiring).
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...