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.

TM4C129XNCZAD: question about uDMAChannelAssign() and channel control structure table size

Part Number: TM4C129XNCZAD

I am trying to learn how the uDMA works, and am still a bit confused about how the channel mapping works. If I use uDMAChannelAssign() to select a peripheral other than the default for the channel, do I need to double the size of the Channel Control Structures table?

In one place the datasheet says the alternate control structure is only used for complex transfer modes. But in other places, it seems to suggest that if you use a secondary channel you need to double the table size. Maybe "secondary channel" is not the same as an alternate peripheral mapping? Or maybe I am just misreading something? Can someone please help me with my confusion?

Regards,

Dave

  • Hi Dave,
    No, you do not need to double the size of the channel control structure table. I will suggest you start with the TivaWare udma_demo example. It demonstrates how to perform memory to memory and memory to peripheral transfers in ping-pong mode (using alternate control structure). Please let me know if this example clarifies the uDMA usage.
  • Thanks, Charles. I think I finally figured out the source of my confusion. I am trying to port some Stellaris-based code to the Tiva. The Stellaris supported only 2 peripherals per channel --  primary and secondary. I was getting the "primary and secondary" channel terminology confused with the "primary and alternate" control structure terminology.

    Regards,

    Dave