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: How do I add NDK to my OpenMP project?

Part Number: TMS320C6678
Other Parts Discussed in Thread: SYSBIOS

Tool/software: TI-RTOS

Hi.

I am using OpenMP 2.1.16.3 project.

  - C6000 compiler v8.0.1
  - CCS 6.1.1
  - MCSDK 2.1.2.6
   ; XDC 3.23.4.60
   ; IPC 1.24.3.32
   ; SYS/BIOS 6,33,6,50
   ; MCSDK PDK TMS320C6678 1.1.2.6
  - OpenMP Runtime 2.x library 2.1.16.3

I'm trying to add the HelloWorld example project (C:\ti\mcsdk_2_01_02_06\examples\ndk\helloWorld) to the my project.
Network communication was needed.

I don't know how to incorporate memory settings of Helloworld example cfg file into my cfg file.
I tried to add the Helloworld example cfg file to my cfg file, like the attached file, but warning was added.

I added a map of Helloworld example that does not exist in my OpenMP project.
My cfg file is My.cfg

For additional NDK-related setup information, see:

//***************************************************************** Add A

...

//***************************************************************** End Add A

//***************************************************************** Add B

...

//***************************************************************** End Add B


Warning Information is

I tried to change the setting to get rid of warning, but it was fixed.   .... @@ ti.runtime.ompbios.HeapOMP.Instance#0



And errors occur in the behavior of existing my projects. (OpenMP example code execute error)


I want to use OpenMP and NDK together.

Question1] Am I working right?   If it's right, how can I get rid of that warning?


Question2) How do I process to add NDK to my project? Am I working right?
For example, if I have an OpenMP cfg file and a Helloorkld cfg file, how can I modify it to use it together?  program.sectMap ...

OpenMP cfg     8463.omp_config.cfg

Helloworld cfg   helloWorld.cfg

  • Errors are eliminated when the Heap generation code is annotated, but existing task functions and OpenMP functions have been faulty.

    .

  • Hi,

    What is your goal here? openMP is to run each thread on each core. The typical usage is to do parallel data processing using all the DSP cores. For NDK, it usually runs on core 0 (master core) to do QMSS/CPPI initialization and setup NDK stack. NDK may not work on other cores than core 0. Also, there is no supports of multiple NDKs in parallel.

    Regards, Eric
  • Thank you for your reply.

    My goal is to know how to merge the cfg wave to add NDK to the OpenMP project.

    I have included a Helloworld.c file in my project and modified cfg, and I have not actually run daemon.
    In the OpenMP Execution Error screen, the contents of the red square box did not include eight-core threads, and the contents contained more than two specific cores, which was considered an error.

    openMP execution result failed to operate eight threads on eight cores. (Four Threads 7)
    But is this normal operation?? (by adding NDK settings)
     Is correct??

    I want to add NDK for TCP and UDP communication.
    I'm trying to integrate NDK maps that are different from my project maps.
    I thought there would be no heap-related warning from above if we could integrate well.
    Can you give me some information on integration?

    Give me information on how to add NDK to my project using OpenMP.
    Please answer.

  • Hi,

    Please check some E2E discussions:
    e2e.ti.com/.../600774 it has CCS project in the discussion
    e2e.ti.com/.../215498

    From this discussion: e2e.ti.com/.../959698. The much simpler solution to combining OpenMP and the NDK demo was to use the MCSDK Image Processing with OpenMP demo. This had the appropriate CFG file off the bat and took care of all that I needed to do. processors.wiki.ti.com/.../MCSDK_Image_Processing_Demonstration_Guide

    Regards, Eric
  • Thank you for your reply.

    In the last SDK, the Image_processing demo showed no example of using NDK and OpenMP together.
    Ti-processor-sdk-rtos-c667x-evm-05.02.00.10-Windows-x86-Install

    Is there an example project using NDK and OpenMP in the last SDK?

    Please advise me how to integrate the two cfg files, such as my question 2.

    I will refer to the link contents. (Version is different)

  • 5342.image_processing_openmp_evmc6678l.cfgHi,

    Sorry the openMP + NDK example is not carried forward into the Processor SDK RTOS. It only available for MCSDK which is obsolete. I found that package and attached is the .cfg file.

    Regards, Eric

  • Hi

    I meet the same problem about the combination of ndk and openmp, I find when I comment ”var Global = xdc.useModule(ti.ndk.config.Global)”  the openmp processing is ok, but when I uncomment it, the openmp thread are all printf running on core 7. I don’t know the reason and how can I solve this problem?

    Thank u

  • Have you solve this issue?
  • It has not been resolved.

    I tried it in various ways, but it didn't work out.

    And if you use NDK, you can't see Core-0 when you run OpenMP.

    NDK is also due mainly to Core-0's execution.

     
    They're recommending the latest SDK.

  • I found that the version of bios and XDCtools made the different result. When I used bios 6.33 and XDCtools 3.23.4.60, the network project worked well. However, when I used bios 6.73 and XDCtools 3.51.1.18_core, it didn’t work. The IP address didn’t printf. It seemed like the NC_netStart function didn’t work. So have you met this kind of issue before or during your debug?

    Thank you for reply!

  • The problem also arises in the present environment.

    Someone else uses a software reset to avoid it.
  • System reset didn’t solve the issue. It is so strange that I just change the version of XDCtools, the result is so different. And I also met a problem that when I selected the option “support Openmp 3.0” in project properties, the network project even didn’t work, it was just running without anything printf. And when I didn’t select the openmp option, the project worked well. That puzzled me a lot. What is your issue now?
  • My problem is that if I run the program, I get an error and die.
    Sprinkle with a lot of error messages. xdc runtime error etc.


    OpenMP behavior is also strange, and NDK is not executed.

  • I want to modify the project based on image_processing_openmp, but it is based on mcsdk 2.1.2.6, the new XDCtools cannot support it.
  • It is thought that development could be possible in the demonstration project environment
    But I don't recommend it.

    What I've done is look at this site.
    e2e.ti.com/.../798261
  • Sir, may I have your email address for discussion in advance?

    Thank you for reply.

  • Hi.

    I can't do the same part.
    The site I sent you yesterday is my status.
  • Hi,
    So you have used the lastest SDK? I have already combined ndk and openmp project. Just based on HelloWorld project and my own project with openmp. But when I debugged the project, some issues happened, just like ti.sysbios.knl.Task: A_badPriority: An invalid task priority was used. Have you ever met this kind of issue before?
    Thanks for your reply!
  • Hi.

    That's great. I'm still combining.
    In the process of coupling, there are also errors in function, and various error messages appear.
    I didn't see the problem of talking.

    If you don't mind, can you share the combined project?
    I think it will help me if it is like my environment.
    The matter mentioned can be seen together.