22.6.3.1.3 Adding a Descriptor Between Existing Descriptors
To insert a new descriptor 'C' between two existing descriptors ('A' and 'B'), the descriptor currently executed by the DMA must be identified.
- If DMA is executing descriptor B, descriptor C cannot be inserted.
- If DMA has not started to execute
descriptor A, follow the steps:
- Set the descriptor A VALID bit to
‘
0
’. - Set the DESCADDR value of descriptor A to point to descriptor C instead of descriptor B (see DESCADDR in the DMAC Register Summary from Related Links).
- Set the DESCADDR value of descriptor C to point to descriptor B (see DESCADDR in the DMAC Register Summary from Related Links).
- Set the descriptor A VALID bit to
‘
1
’.
- Set the descriptor A VALID bit to
‘
- If DMA is executing descriptor A:
- Apply the software suspend command to the channel and
- Perform steps 2.1 through 2.4.
- Apply the software resume command to the channel.