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: Suspend running of CPU2 in a RAM project until CPU1 setup GSRAM-Rights

Part Number: TMS320F28388D


Hello everybody,

we are using the CLA of the CPUs excessively. We now need the full LSRAM for CLA-Data and CLA-Program.
This is why we needed to map the normal Program-Code into the GSRAM.

CPU1 uses GSRAM0-7 and CPU2 GSRAM8-15. I set up the Linker-Command-File accordingly. I am using a Launch-Configuration, which will load the CPU1/CLA-Project and the CPU2/CLA-Project onto the TMS320F28388D. If I don't use FLASH-Memory at all, the CPU2-application is now mapped into the GSRAM8-15 from the start.

I now have the problem, that the Launch-Config starts both CPUs. CPU1 has to allow CPU2 access to the GSRAMs, but CPU2 is running before that happens, this is why I always have to restart the CPU2 after loading the program.

As far as I understood CPU1 has to select a boot mode for CPU2 and bring CPU2 out of reset (see Device_bootCPU2 function from TIs "device.c" file). But I think this is bypassed when loading the CPU2-application via CCS.

How can I suspend CPU2 from running until CPU1 has set up the GSRAM-Rights?

Thanks and Regards,

Marcel.

  • Hi Marcel,

    As far as I understood CPU1 has to select a boot mode for CPU2 and bring CPU2 out of reset (see Device_bootCPU2 function from TIs "device.c" file). But I think this is bypassed when loading the CPU2-application via CCS.

    That is correct. When you use CCS to load the code, CCS will force the PC to entry point and start running from there. There are multiple ways you can solve this. 

    1) Map initial code into D0/D1 RAM which are dedicated and have IPC handshake code with CPU1 in this code to make sure GSx RAM configuration is done before starting the code which is allocated in GSx RAMs.

    2) CCS also has option to disable run to main (by default it is enable) which you can use so that CPU2 does not start running after load. It'll run only after you click on "Run" icon in CCS.

    I would suggest to use option 1 which will be useful when you are running the application with flash and with out CCS.

    Regards,

    Vivek Singh