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.

TMS320C6678: CPU freeze or sleep

Part Number: TMS320C6678

Hi,

I run different applications on different cores of the DSP (not EVM board) and once in a time it seems that the cores at different times are freeze or sleep.

For example one of the application run do wait forever loop and interrupted every mili second. Usually it runs OK, but  in one case of the bug, the loop forever was running and waited for the interrupt to occur 43 milli seconds (measured by the timer 8 of the processor) and the TSCL measured only 131 micorseconds.

The CORE was not reset   (the variables contents were kept).

What can explain the different measured time between the TSCL and the DSP timer.

Regards,

Ilan

  • Hi,

    Are you using Processor SDK RTOS (which version) or is this a bare metal application?

    Best Regards,
    Yordan

  • Hi,

    Thank you for the fast response.

    Three  CPUs are bare metal application, and one with the SDK RTOS.

    Best Regards,

    Ilan

  • Hi,

    The problem was identified on the bare cores.

    Best Regards,

    Ilan

  • Hi,

    Okay, so you have a couple of tasks running on different cores. I guess the one running RTOS is the master (synchronizing the tasks). Can you check your application for possible race conditions? Also can you explain a little more about the applications you have running? What SoC resources does each core uses (which interfaces, etc..)?

    Best Regards,
    Yordan

  • Hi,

    The application is serial, and i think there is no race conditions (it runs  on older CPUs)

    The CPU with the RTOS is type of commiunication controller and it is responsible for the initialization of the DSP after software loading.

    It communicates via the SRIO or the Ethernet and with the other CPUS via the IPCs registers and DDR3 or MSMC.

    Frames of data are received by the CPU RTOS via SRIO to the DDR3. Then it notifies the First stage CPU.

    The First stage CPU does some signal processing and transfers the output to the Second stage CPU via the DDR3. 

    The Second stage CPU  does some signal processing and output:

    - The results to the Application Controller CPU (third bare CPU)  via the MSMC .

    - The intermediate results to PC  via the CPU RTOS.

    The Application Controller CPU is awakened every milisec and it does logic and the output results are sent to PC via the CPU RTOS.

    Best Regards,

    Ilan

  • Are you running the CPUs on the highest possible frequency? Or if possible (for test purpose) try increasing the time interval between interrupts and see if the problem will persist.


    Best Regards,
    Yordan

  • Hi,

    Thank you for the reply.

    the CPUS frequency is 1Ghz.

    I will try your advice.

    Best Regards,

    Ilan