Generic Channels
5-17
System DMA Controller
a(0) = SA
a(i) = a(i – 1) + 1 if (i mod ES)
≠
0 and (i mod FS)
≠
0, 1
≤
i
≤
BS – 1
a(i) = a(i – 1) + EI if (i mod ES) = 0 and (i mod FS)
≠
0, 1
≤
i
≤ Β
S – 1
a(i) = a(i – 1) + FI if (i mod FS) = 0, 1
≤
i
≤
BS – 1
where:
a(i) is the address of the byte number i within the transfer.
SA is the start address of the transfer.
BS is the block size in bytes.
ES is the element size in bytes.
EI is the element index in bytes, specified in a configuration register,
–32768
≤
EI
≤
32767.
FS is the frame size in bytes, FS = ES x EN.
FI is the frame index in bytes, specified in a configuration register,
–32768
≤
FI
≤
32767
5.3.3
Data Packing and Bursting
A DMA channel has the capacity to:
-
Pack several consecutive byte accesses in a single word16 (16-bit word),
word32 (32-bit word), burst4 (burst of four 32-bit words), or burst8 (burst
of eight words) access (only the LCD channel can perform burst8 ac-
cesses). This increases the transfer rate. For a channel, the decision to
pack or burst accesses to its source port is made by the source address
unit and depends on source port access capability. The decision to pack
and/or burst accesses to its destination port is made by the destination
address unit and depends on destination port access capability. Packing
and bursting are performed only if the software allows it via proper
configuration of the DST_PACK, SRC_PACK, DST_BURST_EN, and
SRC_BURST_EN fields in the appropriate DMA_CSDP register.
-
Split a single word transfer into several byte accesses. This is done if the
DMA port data size is less than the size (or does not match the type) of the
data moved.
Table 5–4 summarizes the possible transfer configurations and shows the
cases where packing and splitting are performed.