EasyManua.ls Logo

NXP Semiconductors MPC5606S - Page 519

NXP Semiconductors MPC5606S
1344 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Enhanced Direct Memory Access (eDMA)
MPC5606S Microcontroller Reference Manual, Rev. 7
Freescale Semiconductor 517
TCD.slast = -32
TCD.dlast_sga = -32
This would generate the following sequence of events:
1. First hardware (ipd_req) request for channel service
2. The channel is selected by arbitration for servicing
3. DMA engine writes: TCD.done = 0, TCD.start = 0, TCD.active = 1
4. DMA engine reads: channel TCD data from local memory to internal register file
5. The source to destination transfers are executed as follows:
a. read_byte(0x1000), read_byte(0x1001), read_byte(0x1002), read_byte(0x1003)
b. write_word(0x2000) first iteration of the minor loop
c. read_byte(0x1004), read_byte(0x1005), read_byte(0x1006), read_byte(0x1007)
d. write_word(0x2004) second iteration of the minor loop
e. read_byte(0x1008), read_byte(0x1009), read_byte(0x100a), read_byte(0x100b)
f. write_word(0x2008) third iteration of the minor loop
g. read_byte(0x100c), read_byte(0x100d), read_byte(0x100e), read_byte(0x100f)
h. write_word(0x200c) last iteration of the minor loop
6. DMA engine writes: TCD.saddr = 0x1010, TCD.daddr = 0x2010, TCD.citer = 1
7. DMA engine writes: TCD.active = 0
8. The channel retires one iteration of the major loop
The DMA goes idle or services next channel.
9. Second hardware (ipd_req) requests channel service
10. The channel is selected by arbitration for servicing
11. DMA engine writes: TCD.done = 0, TCD.start = 0, TCD.active = 1
12. DMA engine reads: channel TCD data from local memory to internal register file
13. The source to destination transfers are executed as follows:
a. read_byte(0x1010), read_byte(0x1011), read_byte(0x1012), read_byte(0x1013)
b. write_word(0x2010) first iteration of the minor loop
c. read_byte(0x1014), read_byte(0x1015), read_byte(0x1016), read_byte(0x1017)
d. write_word(0x2014) second iteration of the minor loop
e. read_byte(0x1018), read_byte(0x1019), read_byte(0x101a), read_byte(0x101b)
f. write_word(0x2018) third iteration of the minor loop
g. read_byte(0x101c), read_byte(0x101d), read_byte(0x101e), read_byte(0x101f)
h. write_word(0x201c) last iteration of the minor loop major loop complete

Table of Contents

Related product manuals