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.

Using NDK in parallel with another tasks



Hello.

I'm using my own board with TMS320C6670 (and EVMc6670 for evaluation), CCs.v.5.5, SYS/BIOS 6.35.4.50, MCSDK 2.1.2.6, and NDK 2.24.1.18 (for ETHERNET)

While trying to create NDK-server (ETHERNET UDP) taking as a basis the example 

C:\ti\mcsdk_2_01_02_06\examples\ndk\helloWorld\helloWorld.c

I have got the problem.

The fact is that I have to perform other tasks on the same core.

To do this, I created MyOwnTask in the NetStartCb() function. And turned on the Timer. 

Eeverything works well !

 But...

I get control only when the SENDTO() or SEND() functions has finished sending the next frame. And when I send large amounts of data I almost did not get control.

It seems that SENDTO() or SEND() functions don't use PacketDMA and Queue Manager. 

Maybe I'm just something wrong doing.

Tell me how I can run other tasks in parallel with sending large amounts of data ?

 

Thanks. With regards. Alexander.

 

 

  • Hi Alexander,

    Tell me how I can run other tasks in parallel with sending large amounts of data ?


    I understand that you are running TI-RTOS(SYS/BIOS) tasks. I suggest you to check on TI-RTOS forum for appropriate and faster response.

    Thank you.
  • You don't see any problem while sending huge data and not running parallel tasks ?
    Only problem occurs after running the parallel tasks ?
    What you mean by parallel tasks ? any network related stuff or others?
    Yes NDK example doesn't use the QMSS and CPPI DMA which is for NETCP module.

    You can consider the PA examples which are using CPPI DMA and QMSS.
    C:\ti\pdk_C6670_1_1_2_6\packages\ti\drv\exampleProjects\PA_simpleExample_exampleProject

    PA FAQ Ti wiki page:

    http://processors.wiki.ti.com/index.php/NDK,_PA_Resource_Wiki_for_Keystone_Devices

  • O'k. I understood.

    I should consider the PA examples which are using CPPI DMA and QMSS.

    Responding to Your question.

    I have no problems while sending huge data without running parallel tasks.

    My parallel tasks are not network related stuff. There are a little math and very little UART and SPI. 

    Oh! And of course, the timer.

    But when I am sending huge data via NDK functions ( namely send(), sendto() )  no other functions, and even my timer can not gain control.

    I have to wait until the transfer of UDP-frame is completed. And I can get interrupt to anather tasks only between SEND() -> SEND().

    But it is not enough for me.

    Perhaps the PA examples will help . If only I can understand them.

    Thank Your. Regards. Alexander