Freescale Semiconductor MCF52277 Reference Manual page 297

Table of Contents

Advertisement

b) Write longword to location 0x2000 → first iteration of the minor loop.
c) Read byte from location 0x1004, read byte from location 0x1005, read byte from 0x1006, read
byte from 0x1007.
d) Write longword to location 0x2004 → second iteration of the minor loop.
e) Read byte from location 0x1008, read byte from location 0x1009, read byte from 0x100A, read
byte from 0x100B.
f) Write longword to location 0x2008 → third iteration of the minor loop.
g) Read byte from location 0x100C, read byte from location 0x100D, read byte from 0x100E,
read byte from 0x100F.
h) Write longword to location 0x200C → last iteration of the minor loop → major loop complete.
6. The eDMA engine writes: TCDn_SADDR = 0x1000, TCDn_DADDR = 0x2000, TCDn_CITER
= 1 (TCDn_BITER).
7. The eDMA engine writes: TCDn_CSR[ACTIVE] = 0, TCDn_CSR[DONE] = 1, EDMA_INT[n]
= 1.
8. The channel retires and the eDMA goes idle or services the next channel.
17.8.4.2
Multiple Requests
Besides transferring 32 bytes via two hardware requests, the next example is the same as previous. The
only fields that change are the major loop iteration count and the final address offsets. The eDMA is
programmed for two iterations of the major loop transferring 16 bytes per iteration. After the channel's
hardware requests are enabled in EDMA_ERQ, the slave device initiates channel service requests.
TCDn_CITER = TCDn_BITER = 2
TCDn_SLAST = –32
TCDn_DLAST_SGA = –32
This would generate the following sequence of events:
1. First hardware (eDMA peripheral) request for channel service.
2. The channel is selected by arbitration for servicing.
3. eDMA engine writes: TCDn_CSR[DONE] = 0, TCDn_CSR[START] = 0, TCDn_CSR[ACTIVE]
= 1.
4. eDMA engine reads: channel TCDn data from local memory to internal register file.
5. The source to destination transfers are executed as follows:
a) Read byte from location 0x1000, read byte from location 0x1001, read byte from 0x1002, read
byte from 0x1003.
b) Write longword to location 0x2000 → first iteration of the minor loop.
c) Read byte from location 0x1004, read byte from location 0x1005, read byte from 0x1006, read
byte from 0x1007.
d) Write longword to location 0x2004 → second iteration of the minor loop.
e) Read byte from location 0x1008, read byte from location 0x1009, read byte from 0x100A, read
byte from 0x100B.
Freescale Semiconductor
MCF52277 Reference Manual, Rev. 1
Enhanced Direct Memory Access (eDMA)
17-33

Advertisement

Table of Contents
loading

Table of Contents