DMA controller (DMA)
RM0090
314/1731
DocID018909 Rev 11
Figure 38. Memory-to-memory mode
1. For double-buffer mode.
10.3.7 Pointer
incrementation
Peripheral and memory pointers can optionally be automatically post-incremented or kept
constant after each transfer depending on the PINC and MINC bits in the DMA_SxCR
register.
Disabling the Increment mode is useful when the peripheral source or destination data are
accessed through a single register.
If the Increment mode is enabled, the address of the next transfer will be the address of the
previous one incremented by 1 (for bytes), 2 (for half-words) or 4 (for words) depending on
the data width programmed in the PSIZE or MSIZE bits in the DMA_SxCR register.
In order to optimize the packing operation, it is possible to fix the increment offset size for
the peripheral address whatever the size of the data transferred on the AHB peripheral port.
The PINCOS bit in the DMA_SxCR register is used to align the increment offset size with
the data size on the peripheral AHB port, or on a 32-bit address (the address is then
incremented by 4). The PINCOS bit has an impact on the AHB peripheral port only.
If PINCOS bit is set, the address of the next transfer is the address of the previous one
incremented by 4 (automatically aligned on a 32-bit address) whatever the PSIZE value.
The AHB memory port, however, is not impacted by this operation.
Memory b
us
Peripher
a
l b
us
S
tre
a
m en
a
ble
Arbiter
DMA_
S
xM1AR(1)
FIFO
AHB memory
port
AHB peripher
a
l
port
DMA_
S
xPAR
FIFO
level
DMA controller
DMA_
S
xM0AR
de
s
tin
a
tion
s
o
u
rce
Memory 1
Memory 2
FIFO
a
i15950