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: Multivore Bootloader to Matlab Application Jump Problem.

Part Number: TMS320F28388D

Tool/software:

Hi Fellas,

I implemented multicore bootloader for F28388D.

Every core have a own bootloader. CPU1 is the main bootloader. It activates other core bootloaders by using Device_BootCPU2() and Device_BootCM() synchronize it with IP_Sync()
and exchange data by using IPC mechanism.

I modified the linker script used by Matlab C2000 Blockset and then write that program specific flash cores by bootloader.

I try to test some possible scneario.

-> CPU1, CPU2 and CM have a bootloaders.CPU1, CPU2 and CM Matlab Application sector is empty. I successfully write the Matlab generated program to CPU1 sectors and then CPU1 bootloaders jumps the
CPU1 Matlab program entry point. It'runs without any problem. Assume that if user inadvertendly delete CPU2 bootloader, after power up/down cycle.
CPU1 Matlab Program didn't work. I also delete the IPC_sync(IPC_CPU1_L_CPU2_R, IPC_FLAG31) on CPU1 but it didn't work.

1)What kind of problem prevent the working of CPU1 Matlab program?

2)How can i determine from CPU1 side that CPU2 specific sector have a program or not?

Best regards.

CPU1 Bootloader : Sector 0-1
CPU1 Matlab Application : Sector 2-13

CPU2 Bootloader : Sector 12-13
CPU2 Matlab Application : Sector 0-11

CPU1 Bootloader side ı use.

//Boot CPU2 and initialize
Device_bootCPU2(BOOTMODE_BOOT_TO_FLASH_SECTOR13);
IPC_clearFlagLtoR(IPC_CPU1_L_CPU2_R, IPC_FLAG_ALL);
IPC_sync(IPC_CPU1_L_CPU2_R, IPC_FLAG31);

//Before jump the CPU1 Matlab Entry Point. Reset cores, and then jump.
SysCtl_controlCPU2Reset(SYSCTL_CORE_ACTIVE);
while(SysCtl_isCPU2Reset() != 0x1U);
(*Jump_Entry_Point)();

  • Hello,

    Can you provide more details on how the CPU1 application is not working (where is it getting stuck, etc.)? Can you share the linker command files you're using for CPU1 and CPU2?

    2)How can i determine from CPU1 side that CPU2 specific sector have a program or not?

    Unfortunately, you cannot read CPU2 and CM flash memory from CPU1. You can bring out CPU2 out of reset and use VCRC to validate CPU2 flash memory but not through CPU1.

    Best,

    Matt

  • Hello,

    Since there have been no replies for over a month, I'll assume this is resolved and close the thread.

    Best,

    Matt