English
Language : 

PXD10RM Datasheet, PDF (521/1332 Pages) Freescale Semiconductor, Inc – PXD10 Microcontroller
TCD.citer = TCD.biter = 2
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)
Freescale Semiconductor
PXD10 Microcontroller Reference Manual, Rev. 1
Preliminary—Subject to Change Without Notice
15-51