I want to use DMA to send a packet of data through SSI0 exceeding the maximum DMA size. I decided to break the transfer into multiple DMA transactions.
I've found some documentation for UART. Is it correct to do this:
uDMAIntRegister(UDMA_CHANNEL_SSI0TX, SSI0TransferCompleteInt);
to set up a DMA interrupt for EOT on SSI0? The interrupt handler SSI0TransferCompleteInt is implemented by me. The interrupt will initiate a new transfer immediately and decrease the bytes remaining counter, and I don't mind about the short interrupt time.
Alternatively, do I use the uDMA software interrupt and set up the uDMA flags somewhere? If I do this, I need to poll the uDMA registers to find out which transaction caused this (I have two nearly simultaneous transfers on SSI0 & SSI1, offset by a few hundred cycles so I can be sure the two interrupts won't clash.)
The uDMA module appears to be sparsely documented... at least for the Tiva libraries which I prefer over direct register access. Am I missing anything...? Most of this is guesses derived from looking at other code and driverlib/udma.h.
Thanks