7.4.4 Descriptor List with Looping
This example uses a descriptor list in memory with looping over multiple descriptors. This example also uses the looping feature and
continues on with the next sequential descriptor after looping completes.
The descriptor list in memory is shown in figure
Figure 7.7 Descriptor List with Looping on page 113
. Descriptor A links to descriptor B.
Descriptor B has the DECLOOPCNT bit enabled and loops back to the start of descriptor A. The LINK address of descriptor B is used
for the loop address. The LINK bit is set to indicate that execution will continue after completion of looping. Once the LOOPCNT rea-
ches zero, the LDMA will load descriptor C. Descriptor C must be located immediately following descriptor B.
Ctrl
Src
Dst
Link
A
B
Ctrl
Src
Dst
Link
Memory
0x00
0x10
link_addr->B
link_addr=NA
C
Ctrl
Src
Dst
Link
0x20
link_addr->A
Alternate link
A
B
LINKADDR->A
DECLOOPCNT=1
C
LINK=0
LINKADDR->B
Figure 7.7. Descriptor List with Looping
Initialization is similar to the single looping descriptor with the following modifications.
• Set the LINK bit in descriptors A and B
• write the adress of descriptor A into the LIKADDRESS of descriptor B
• write the adress of descriptor B into the LIKADDRESS of descriptor A
• Descriptor C must be located immediatly after descriptor B in memory
EFM32JG1 Reference Manual
LDMA - Linked DMA Controller
silabs.com
| Smart. Connected. Energy-friendly.
Preliminary Rev. 0.6 | 113