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/AM5728: DSP applications

Guru 16800 points
Part Number: AM5728

Tool/software: TI-RTOS

Hello,

I have several questions how to create applications of DSP on AM5728 with TI-RTOS.

1.In multi core systems (A15 x 2 and C66x x2), should TI-RTOS run on each core individually?
  Or does only one TI-RTOS on a A15 control the task on the others core?

2.Does the same application run on the each C66x core?
  My customers want to know whether they should create the individual application for each C66x core.
  For example, they are concerned about the addressing of the interrupt vector and function.

3.Please let me know the boot up sequence in multi core systems.
  I check the following wiki; however, I cannot understand the detail boot up sequence.
  processors.wiki.ti.com/.../Processor_SDK_RTOS_BOOT_AM57x
  After the reset signal of DSP is released, what and how to execute the application on C66x?

Best Regards,
Nomo

  • The RTOS team have been notified. They will respond here.
  • Nomo,

    TI RTOS supports Symmetric multi-Processing (AMP) mode of operation for multic0re A15 and M4 subsystems  as is described here:

    In SMP mode a single image of the TI RTOS kernel runs on all the cores and tasks are deployed to different cores based on availability and respecting task affinity settings.  However chose of this mode has some implication on real time performance due to additional control code. control code introduced in the decision flow when deploying tasks on the cores  or responding to interrupts. AMP mode of operation is suitable for time-critical tasks. You can also achieve this by setting AMP mode and assigning core affinity for time critical tasks and let non-real time operations run in SMP mode no task affinity.

    SMP mode is currently not supported on C66x. On C66x, we offer OpenMP to allow for deploying of tasks using a compiler based interface.

    Let me provide a visual representation of the boot process and see if this helps with the understanding:

    A15_0 on this device is the boot master (first core to wake up after POR and controls the boot process). On power on reset, it will run the ROM bootloader (RBL) that is programmed in the ROM memory and starts reading the user/secondary bootloader from the boot media (boot order selected by the SYSBOOT pins). The secondary bootloader is then copied to OCMC memory and ROM bootloader passes control to this user bootloader which sets up the DDR copies application image for different cores and then wakes up the slave cores to start the application.

    Let me know if you need further clarification on this boot process.

    Regards,

    Rahul

  • Hello Rahul-san,

    Thank you for your reply.
    How about the question 2?
    We want to know whether we should make the dedicated software for each DSP cores.
    Should we make the dedicated software for DSP1 and DSP2 respectively?

    Best Regards,
    Nomo
  • Nomo,

    C66x doesn`t support SMP mode of operation so typically application don`t run the same image.  However, you can load the code in shared memory and set it up so that the code contains control code which will use COre ID to determine what part of the application applies to each DSP.

    In this case both DSPs will run the same instructions but maintain separate heap/stack and data memory based on core ID and may have exceptions to the code path based on its core ID.

    Psuedo code:

    Hope this helps clarify my earlier description.

     /* Initialize UART */
        coreNum = platform_get_coreid();
       
       <Common code >
    
       // Code Specific to DSP Core 0
       if (coreNum == 0)
        {
           .....
        }
    
       //Code Specific to DSP Core 1
          if (coreNum == 1)
        {
           .....
        }

    Hope this clarifies my earlier description.

    Regards,

    Rahul

  • Hello Rahul-san,

    Thank you for your reply.
    I could understand.

    Best Regards,
    Nomo