Hi,
I'm using the QDMA module on the C6678 with linking, and I want to run a callback function after each transfer is complete. However, only the very first transfer is triggering the callback function I have registered, any subsequent linked transfers do not trigger the callback function, even though they complete and link properly. Does anybody know why?
Some details:
EDMA channel numbers:
EDMA3_DRV_QDMA_CHANNEL_ANY for first channel
EDMA3_DRV_LINK_CHANNEL or EDMA3_DRV_LINK_CHANNEL_WITH_TCC for subsequent channels (all are the same, doesn't matter which I use
EDMA3_DRV_TCC_ANY for the interrupt channel. Same channel is being used for all transfers, and if I try to use multiple TCC channels (by having multiple variables set to EDMA3_DRV_TCC_ANY), then an error code is returned when it tries to request the link channel
EDMA settings:
acnt: size of the buffer I am trying to copy
bcnt: 1
ccnt: 1
mode: EDMA3_DRV_ADDR_MODE_INCR
TCINTEN: 1
ITCINTEN: 1
TCCHEN: 0
ITCCHEN: 0
STATIC: 0 for all but very last transfer, which is 1
TCCMODE: 0
srcbidx/srccidx/dstbidx/dstcidx: 0
The above is true for all channels
QDMA trigger word: ccnt