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.

RTOS/TMS320C6678: CPPI

Part Number: TMS320C6678
Other Parts Discussed in Thread: SYSBIOS

Tool/software: TI-RTOS

Hi,

my processor is c6678.

I  initialize srio and receive video from srio  and send to other core(core4 - core7) to compress it by H264 codec.

after that i send the bitstream out put to core0 by IPC and send it by ndk function to ethernet.

in core0 i have two semaphore to mange my task, i have some process in other task in core0, when i run the program after some frame (about 10) ,the program wait in EmacSend() -->  Osal_cppiCsEnter() --> while( CSL_semAcguiresDirect (PLATFORM_CPPI_HW_SEM)) == 0);

is there problem in cppi initialize   ??

  • Hi,


    Which Processor SDK RTOS is this? do you base your applications on any of the existing Processor SDK RTOS examples?

    Best Regards,
    Yordan

  • Hi,

    my program is based on demo image processing in  mcsdk .

    mcsdk 2.1.2.6

    SysBios 6.37.5.3.5

    ndk 2.21.2.43

    if i have not process in slave task OR i dont call the function that send compress data over EMAC every thing is ok and my program work with no such issue .

  • Hi,

    The MCSDK is obsolete and it is suggested to move to Processor SDK RTOS for C6678. In the EMACSend() function, first you need to get a semaphore Osal_cppiCsEnter() before you transmit. Then you release the semaphore. Check you nimu_eth.c code to make sure:

    key = Osal_cppiCsEnter(); and Osal_cppiCsExit (key); worked in a pair. 

    Then in your code other than NDK, like SRIO, check if you have any location that you forget to release the semaphore.

    Regards, Eric