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)();