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.

Partitioning the code across Multicore in SYSBIOS

Other Parts Discussed in Thread: TMS320C6678, SYSBIOS

I am using TMDSEVM6678L evaluation board with TMS320c6678 DSP processor having 8 cores . My project is executing on SYSBIOS

I wanted some part of my code to run in separate cores. 

Is it possible to do that by mentioning using  #pragma derictives in the source code?

Or should I build the project individually to all the cores by creating new different projects for different cores?? 

I have some doubts regarding how the code is loaded in the board.

IF I specify all the cores during loading does it divide the section of the code optimally in the platform or is the same code executed in  all the cores??

Thanks in advance

  • Hi Dino,

    You have the flexibility of either building separate projects for each core or building a single project for all cores. I personally prefer building a separate application for each core and would suggest that.

    If you want to go the separate project for each core route, then you can look at the C6678 example in the IPC product (available to download here). The C6678 example partitions the external RAM into 8 parts and builds 8 different C66 images for each partition.

    If you have a lot of code that will be shared between the different cores and want to build a single project then you can try the following. Configure the L2 cache as SRAM and place all data in it. Since the L2 SRAM is local to each core, each core will have its own copy of data. Place all the code in external RAM. It is ok to share the code with other cores as code is never modified. In your application code, you can use DNUM to determine which core the code is running on at runtime.

    Hope this helps.

    Best,

    Ashish

  • Adding to my previous post...

    Dino David said:

    I wanted some part of my code to run in separate cores. 

    Is it possible to do that by mentioning using  #pragma derictives in the source code?

    I am not aware of any pragma that allows forcing code to run on a separate core. If you have the same code running on multiple cores, you can read DNUM to determine which core the code is running on and make a decision accordingly.

    Best,

    Ashish

  • Thanks Ashish for the reply,

    Are you aware of openMP compiler directives for parallel programming. 

    I had a chance to go through the multicore programming guide which refers OpenMP as one of the shared parallel programming methods.

    I found it suitable for my application but I have some error while building a project. My CCS version is 5.2.1 and bios is 6.33.06.50..

    Could you please help me out.

  • Hi Dino,

    Sorry for the late reply. Are you still facing build issues with OpenMP ? If so, I would recommend posting your questions on the Keystone Multicore TI E2E forum. They will be able to better help you with OpenMP related questions than us (TI-RTOS forum).

    Best,
    Ashish