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.

66AK2G12: CCS "Runtime Object View" does not work

Part Number: 66AK2G12
Other Parts Discussed in Thread: SYSBIOS

Hi,

My customer is development the code with below environment.
Device : 66AK2G12
Core : C66x
IDE : CCS v.10.4.0.00006
SDK : ti-processor-sdk-rtos-k2g-evm-06.03.00.106
PC : Windows 10

They are using "Runtime Object View" in CCS to monitor "CPU Load".
But in some cases, "CPU Load" gets stuck at 0% and does not work correctly.

In customer's code, there are three tasks are running:
a) Task A (runs 100usec cycle)
b) Task B (runs 1msec cycle)
c) system task (ti_sysbios_knl_Clock_workFunc)

In side Task A and Task B, DMA is working and EDMA3 LLD is used.
The issue happens after EDMA3_DRV_checkAndClearTcc() is called a several times for polling the DMA completion.
If EDMA3_DRV_checkAndClearTcc() is not called or called just once, "CPU Load" seems correctly working.
BTW, the program itself is working fine even "CPU Load" gets stuck at 0%.

Questions:
Q1) Any workaround to avoid the issue?
Q2) Do you know similar "CPU Load" issue before? What was solution?
Q3) Customer uses EDMA3_DRV_checkAndClearTcc() in loop to poll the completion of the DMA transfer. Is this acceptable? Any concerns here?

Thanks and regards,
Koichiro Tashiro

  • Hello Tashiro-san,

    Using EDMA3_DRV_checkAndClearTcc() to poll DMA transfer status is not the optimal way, because it wastes CPU cycles when repeatedly polling. 

    Regarding CPU load being stuck at 0%, I'll loop in CCS experts for comments.

    Regards,

    Jianzhong

    P.S. Please note that we've stopped support for TI-RTOS based SW development, as announced here.

  • Hi Jianzhong,

    Using EDMA3_DRV_checkAndClearTcc() to poll DMA transfer status is not the optimal way, because it wastes CPU cycles when repeatedly polling.

    Customer wants to poll DMA transfer status.
    Could you tell me what is proper way to poll DMA transfer status?

    Thanks and regards,
    Koichiro Tashiro

  • Tashiro-san,

    I assume ROV itself is mostly working, just the CPU load data is inaccurate "in some cases"

    The issue happens after EDMA3_DRV_checkAndClearTcc() is called a several times for polling the DMA completion.
    If EDMA3_DRV_checkAndClearTcc() is not called or called just once, "CPU Load" seems correctly working.

    As mentioned by Jianzhong, support for SYS/BIOS has been deprecated so it may be difficult to find the root cause of this. A reproducible test case is always helpful, the more simpler and generic, the better.

    I believe I have access to an EVMK2G so hopefully any simple test case could run on that.

    Jianzhong - can you look respond to the other question:

    Customer wants to poll DMA transfer status.
    Could you tell me what is proper way to poll DMA transfer status?

    Thanks

    ki

  • Hi Ki,

    Sorry for my late reply. I will try to get test case from customer.

    Hi Jianzhong,

    Could you answer to my remaining question?

    Thanks and regards,
    Koichiro Tashiro

  • Sorry for my late reply. I will try to get test case from customer.

    That would be very helpful. Thank you.

  • Customer wants to poll DMA transfer status.
    Could you tell me what is proper way to poll DMA transfer status?

    Using EDMA3_DRV_checkAndClearTcc()  is the right way to poll DMA transfer status, but polling inevitably wastes CPU cycles. If you want to optimize CPU usage, using interrupt should be considered. 

  • Hi Ki, Jianzhong,

    Customer decided not to use EDMA3_DRV_checkAndClearTcc() for polling.
    So this item is now considered closed.
    Thanks for your support on this.

    Thanks and regards,
    Koichiro Tashiro