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.

TMS320F28388D: Hosing code of both CPUs in Global Shared RAM

Part Number: TMS320F28388D
Other Parts Discussed in Thread: SYSBIOS

Hello,

I would like to create a project with SYSBIOS running on both CPUs, and both CLAs running in parallel. For this purpose I have therefore reserved the entile Local Shared RAM for the CLAs, and I am trying to share the Global Shared RAM between both CPUs.

First, I have given GS0 to 7 to CPU1 and GS8 to 15 to CPU2 and it does not work. Then I have give only GS0 to CPU1 and GS1 to CPU2 and it works perfectly. If I use any of the GS0 to GS2 sectors in any combination the project works, but with any different sector the program is not load correctly in any of the CPUs in which sectors GS3 to 15 are used.

Is there any difference between the first three sectors and the rest of them? I have read the datasheet and I did not see anything and I have debugged the configuration registers: GSxMSEL is properly configured, all memory accesses are allowed and no memory error flash are set.

Thanks in advance!

Regards,

Javier

  • Hi Javier,

    No, all the GSxRAM are same except different address location. Are you able to read/write the location beyond GS2 RAM via CCS memory watch window ? 

    Regards,

    Vivek Singh

  • Hi Vivek,

    Yes, I can modify a value in the Memory Browser and it is read in the Expressions window. In the picture you can see an example in the GS15.

    When I program both CPUs I have to reset both. I have to restart and resume the CPU1 to configure the GS memory. Then I restart the CPU2 and it can reach the main function because it is stuck in this loop:

    In the function TaskSupport_start() I have seen this comment:

    /*
    * The SP register is only 16 bits on 28x. Ensure that the last address
    * in the new stack is less than 0xffff
    */

    And the location of GS3 sector is "origin = 0x010000" so is it out of range? Can these memory section not be used for SYSBIOS?

    Regards,

    Javier

  • Hi Javier,

    Yes, SP is only 16bit on C28x device so any address range beyond 16bit can not be used as stack.

    Regards,

    Vivek Singh

  • Hi,

    I have moved the SYSBIOS stack to the DxRAM that is within the allowed range. Now it seems to be working.

    Thanks!

    Regards,

    Javier