Generic Channels
5-18
Table 5–4. Packing and Splitting Summary
Data Type
Port Access Capability
Packing/Splitting
s8
8
–
16
pack 2 x s8 => 16
32
pack 4 x s8 => 32
s16
8
split s16 => 2 x 8
16
–
32
pack 2x s16 => 32
s32
8
split s32 => 4 x 8
16
split s32 => 2 x 16
32
–
To compute the type of an access (8-, 16-, 32-bit or burst) and decide whether
or not to pack consecutive accesses, an address unit checks:
-
Its related DMA port capabilities
J
Can the port perform byte, 16-bit, 32-bit accesses?
J
Can the port perform burst accesses?
-
What is allowed by the software in the configuration registers:
J
Is packing allowed (DST_PACK or SRC_PACK set)?
J
Is bursting allowed (DST_BURST_EN or SRC_BURST_EN set)?
-
The last bits of the address:
J
Is the address even or odd?
J
Is the address word16, word32, burst4, burst8 aligned?
-
The number of elements remaining in the frame.
When the type of access is determined, the current byte address can be in-
cremented by 1, 2, or 4 to reach the next memory space location to access.
Then, the DMA port checks the channel FIFO to see if there is enough data
(write access) or enough space (read access) in the FIFO before issuing the
access.
Not every DMA port has the capability to support every data type (s8, s16, s32)
and transfer size. Therefore, software must carefully set up all DMA transfers
according to the constrains detailed in Table 5–2.