This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DK-TM4C129X: uDMA Peripheral Scatter-Gather memory and peripheral transfers

Part Number: DK-TM4C129X

I am attempting to build a peripheral scatter-gather task list which waits on and copies a number of words from an SSI FIFO into memory, copies the contents of EMACTIMSEC/EMACTIMNANO into another location in memory, writes to SWTRIG to generate an interrupt, then loops on the whole process by rewriting its own primary entry, as described in section 9.2.6.5 of the TM4C129XNCZAD Data Sheet.  Section 9.2.6.6 says

If the next task is a memory-to-memory transfer, execution will start immediately and run to completion; if the next task is a peripheral-type transfer, the μDMA will wait for a peripheral request to begin.

This seems to imply that this very sort of admixture of hardware-request-dependent transfer and direct software-like memory-to-memory transfer is supported by peripheral scatter-gather, however, the text quoted above doesn't indicate how firmware should program the distinction into the μDMA between a memory-to-memory transfer and a peripheral-type transfer requiring a hardware request.

  • Hi Leo,

     For peripheral scatter-gather, I don't think there is any more to be done compared to the normal transfer where you will configure the control structure to specify whether it is a software channel (for memory-to-memory) or hardware channel (for peripheral initiated). See below two example lines.

    ROM_uDMAChannelTransferSet(UDMA_CHANNEL_SW |  UDMA_ALT_SELECT,

    ROM_uDMAChannelTransferSet(UDMA_CHANNEL_UART1RX  |  UDMA_ALT_SELECT,