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.

How to check the status of EDMA transfer?

In RVC usecase, Customer use framecopy algorithm on DSP2, the input data is from capture link, after start EDMA to copy input data to output buffer, Customer design usecase to modify the content of output buffer. but there are garbage display on the screen. if disable EDMA transfer, garbage display will be disappeared.

How can check the status of EDMA to make sure the transfer is complete and user can modify the target buffer? 

  • Hi Joe Shen,

    Please use EDMA3_DRV_waitAndClearTcc please refer \examples\tda2xx\src\alg_plugins\framecopy\frameCopyAlgoLocalDma.c

    Also, ensure that the input to framecopy is not garbage.

    Regards,
    Sujith
  • Hi Sujith,
    thanks for your feedback, I have called function EDMA3_DRV_waitAndClearTcc before modify the output buffer.
    there is no garbage while using CCS tool dump the output buffer, but user can see garbage on the screen when software is running.
    I added Task_sleep(100) after EDMA3_DRV_waitAndClearTcc and before modify the output buffer. the garbage screen will be disappeared.
    Did this issue come from buffer sync?
  • Hi Joe Shen,

    I dont think you should use the sleep, after frame copy, before modifying the output buffer ensure to invalidate the cache. Cache_inv and after modifying the output buffer ensure to write back Cache_wb.

    Regards,
    Sujith

    Please mark the thread as answered if your issue is resolved.
  • Hi Sujith,

    after add process like your suggestion "Cache_inv -> start EDMA transfer -> modify output buffer -> Cache_wb"
    this issue can be fixed. thanks a lot.