![ARTERY AT32F435 Series Reference Manual Download Page 680](http://html1.mh-extra.com/html/artery/at32f435-series/at32f435-series_reference-manual_2977592680.webp)
AT32F435/437
Series Reference Manual
2022.11.11
Page 680
Rev 2.03
CNT = PBURST
×
PWIDTH
×
N = MBURST
×
MWIDTH
×
M
MBURST/PBURST (data transfer size)
= 1 (single) or 4, 8 or 16 burst
MWIDTH/PWIDTH (data transfer width)
= 1 (byte), 2 (half-word) or 4 (word)
M, N, CNT are positive integers
If mismatch, when the remaining data is les that the MBURST/PBURST bits, they are transmitted by
hardware in a single mode, and set the FDTF bit after the completion of refresh. If the remaining data is
less than the MWIDTH/PWIDTH, data are still transmitted based on the width programmed in the
MWIDTH bit.
29.3.7 Linked table transfer mechanism
Using this mechanism, it is possible to link several different transfers to strengthen DMA processing
capabilities. Each transfer data can be stored in a descriptor by software, and the DMA loads the
descriptor from the main memory.
To enable a linked table transfer, set the SxLLSEN (where n is a stream number) bit in the DMA_LLCTRL
register and the local descriptor memory base address, and prepare LDM or main memory descriptor.
Then, the user can continue to set DMA_SxDTCNT=0, write the descriptor address to the DMA_SxLLP
and enable a stream.
After enabling a stream, the memory controller in DMA issues a few AHB commands to load the descriptor
from the main memory.
Figure 29-7 gives the descriptor format. After loading descriptors (that is, CTRL and CNT, PADDR and
M0ADDR), the DMA uses these bits for data transfers. When a descriptor transaction is completed (CNT
becomes 0), if the current LLP is not equal to zero, the DMA continues to load the next descriptor. If the
current LLP is zero, it means that the current descriptor is the last one, and the DMA stops loading a new
one. At this point, a transfer completed interrupt (FDTF bit) is generated to mark the completion of a
linked table transfer. It should be noted that the TC is generated at the last descriptor.
Figure 29-7 Descriptor format
8
9
6
7
4
5
2
3
0
1
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
DTCNT[15:0]
D
T
D
P
IN
C
M
M
IN
C
M
bit offset
P
W
ID
T
H
M
W
ID
T
H
P
B
U
R
S
T
M
B
U
R
S
T
SPL
P
IN
C
O
S
F
E
N
CTRL &
CNT
PADDR
M0ADDR
LLP
PADDR[31:0]
M0ADDR[31:0]
LLP[31:0]
+4
+8
+C
Figure 29-8 Linked list pointers
CTRL & CNT
PADDR
M0ADDR
LLP = 0x0000_1000
CTRL & CNT
PADDR
M0ADDR
LLP = 0x0000_2000
CTRL & CNT
PADDR
M0ADDR
LLP = 0x0
0x0000_0400
0x0000_1000
0x0000_2000