TC1796
System Units (Vol. 1 of 2)
Direct Memory Access Controller
User’s Manual
12-19
V2.0, 2007-07
DMA, V2.0
Figure 12-12 Programmable Address Modification - Example 2
12.1.4.7 Circular Buffer
Destination and source address can be configured to build a circular buffer separately
for source and destination data. Within this circular buffer, addresses are updated as
defined in
with a wrap-around at the buffer limits. The
circular buffer length is determined by bit fields ADRCRmn.CBLS (for the source buffer)
and ADRCRmn.CBLD (for the destination buffer). These 4-bit wide bit fields determine
which bits of the 32-bit address remain unchanged at an address update. Possible buffer
sizes of the circular buffers can be 2
CBLS
or 2
CBLD
bytes (= 1, 2, 4, 8, 16, … up to 32k
bytes).
When source or destination addresses are updated (incremented or decremented) after
a DMA move, all upper bits [31:CBLS] of source address and [31:CBLD] of destination
address are frozen and remain unchanged, even if a wrap-around from the lower
address bits [CBLS:0] or [CBLD:0] occurred. This address-freezing mechanism always
causes the circular buffers to be aligned to a multiple integer value of its size.
If the circular buffer size is less or equal than the selected address offset (see
), the same circular buffer address will always be accessed.
MCA05691
ADRCRmn Parameters:
SMF
= 000
B
INCS = 1
Source Memory
Destination Memory
00
H
D0
31
0
15
16
DMA
Moves
04
H
08
H
0C
H
10
H
14
H
18
H
1C
H
00
H
D4
31
0
15
16
04
H
08
H
0C
H
10
H
14
H
18
H
1C
H
ADRCRmn Parameters:
DMF = 001
B
INCD = 1
D6
D1
D2
D3
D4
D5
D6
D7
D7
D5
D3
D1
D2
D0