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.

add openmp to NDK_Client project

Hi

I ran client example project and modified it. I changed it to TCP client while DSP start the communication by socket programming.

Next I added IPC and Openmp packages in RTSC and enabled Openmp checkpoint, but Now I understand that I should modify SYS/BIOS script and platform xdc.

This changes seems to be very complicated!!

I want to guide me  to insert the necessary modifications, hierarchically ,please.

Best Regards

  • Hi Dariush,

    Can you provide more details about the changes/modifications you are trying to make ?

    Are you using MCSDK ?

    Best,

    Ashish

  • Hi Ashish
    I explain a little aboat my goal and used packages next the actions that I did.

    My goal:
    I want to make DSP connect to other device by TCP protocol(DSP worked as a client), next DSP process the receiving data by OpenMP.

    Used packages:
    CCS: 5.2.1
    MCSDK: 2.1.2.5
    CGT: 7.4.0
    OMP: 1.1.3.2
    IPC: 1.24.3.32
    SYS/BIOS: 6.33.6.50
    PDK: 1.1.2.5
    XDCTOOLS: 3.23.4.60

    My actions:
    1) I ran "C:\Program Files\Texas Instruments\mcsdk_2_01_02_05\examples\ndk\client\evmc6678l" project as base project. I wanted DSP start the connection but by DemonNew() this work didn't happen so I modified the program.

    2) I made a thread in NetworkOpen() function and assigned a function to thread. The function that assigned, was a socket program that started the connection and next received the data. The modifications worked correctly and I went to next level( adding OpenMP)

    3) I added IPC and Openmp packages in RTSC and enabled Openmp checkpoint in client project.

    4)I copied the SYS/BIOS script of "helloworld" OpenMP project and pasted it at the end of SYS/BIOS script of client project, an error occurred: 'Can not read property "base" from undefined'.

    5)I understood that I should modified platform xdc too.( platform and SYS/BIOS should be compatible) .

    Guide me to insert the necessary modifications in SYS/BIOS and platform step by step to ran my project ,please.

    Best Regards
  • Hi Ashish

    I'm waiting for your answer. Please, answer me.

    Regards

  • Hi Ashish

    It is very useful and important for me to add and use OpenMP in client example "C:\Program Files\Texas Instruments\mcsdk_2_01_02_05\examples\ndk\client\evmc6678l". Please guide me step by step to do that. I'm waiting for your answer.

    Regards
  • Hi Dariush,

    I am not familiar with the OpenMP package but can try and help you. Any OpenMP related question would be best answered on the Keystone E2E forum.

    Are you able to build the OpemMp "helloworld" example as is without any modification ? If the OpenMP example builds then we know its an integration problem and no OpenMp dependencies are missing.

    Also, can you share your cfg file along with any cfg/xs files that are included in your cfg script ?

    Best,
    Ashish
  • Hi Ashish

    Before I asked this question in TI_RTOS forume, I asked in the keystone forum and you can see the answer by link below

    I can build and run "helloworld" OpenMP example.

    Please for better understanding do the steps like me.

    1) I Import "C:\Program Files\Texas Instruments\mcsdk_2_01_02_05\examples\ndk\client\evmc6678l" project.

    2) I copy the OpenMP RTSC application nessesareis from "C:\Program Files\Texas Instruments\omp_1_01_03_02\docs\User_Guide.pdf, page: 7" and past to configuration file of client example. You can see the result below:

    I attach my  "*.cfg"  file below.

    8004.client.cfg.txt

    Best Regards

  • Hi Dariush,

    The error shown in the screenshot is because SharedRegion object is being referenced without initialization. Try adding the below line before 'SharedRegion' is used:

    /* shared region configuration */
    var SharedRegion = xdc.useModule('ti.sdo.ipc.SharedRegion');

    I would suggest trying out an IPC example for C66 first to familiarize yourself with how IPC configuration works and then try integrating OpenMP. You can find an IPC example in the IPC product (C:\ti\ipc_3_xx_xx_xx\examples\C6678_bios_elf).

    Best,
    Ashish