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.

  1. 1.If DMA is executing descriptor B, descriptor C cannot be inserted.
  2. 2.If DMA has not started to execute descriptor A, follow the steps:
    1. 2.1.Set the descriptor A VALID bit to '0'.
    2. 2.2.Set the DESCADDR value of descriptor A to point to descriptor C instead of descriptor B.
    3. 2.3.Set the DESCADDR value of descriptor C to point to descriptor B.
    4. 2.4.Set the descriptor A VALID bit to '1'.
  3. 3.If DMA is executing descriptor A:
    1. 3.1.Apply the software suspend command to the channel and
    2. 3.2.Perform steps 2.1 through 2.4.
    3. 3.3.Apply the software resume command to the channel.