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: CPU2 BOOT from CPU1

Part Number: TMS320F28388D

Hi,

i am using F28388D controller, i am facing a strange behavior when i try to boot the CPU2 from CPU1 , after calling that function I see it goes to ILLEGAL ISR defined in my code.

I am using the NMI registers to get the indication if CPU2 does not have code into it and causes a reset that gets indicated to CPU1.

I have below executable statements in main function.

    DINT;
    IER = 0x0000;
    IFR = 0x0000;
    gu16CpuId = gu16CpuIdRaw & 0x000F;
    ScDisableInternalWatchDog();
    if( CPUID_1 == gu16CpuId )
    {
        ScPieVectorTableInitialization(&Cpu1PieVectTableInit);
        EALLOW;
        NmiIntruptRegs.NMIFLGCLR.all = NmiIntruptRegs.NMIFLG.all;
        NmiIntruptRegs.NMIFLGCLR.bit.NMIINT = BIT_SET;
        NmiIntruptRegs.NMICFG.bit.NMIE = 1;
        EDIS;
        Device_bootCPU2(BOOTMODE_BOOT_TO_FLASH_SECTOR0);
        ScConfigGsMemory(&strGsMemInit, BOOL_FALSE, BOOL_FALSE);
    }

Can you please let me know under what circumstances this issue can occur, its like if there is a function call below Device_bootCPU2 it goes to illegal isr defined in my pie vector table. looks like its not getting the next function all address not sure exactly how can I debug to understand more.

thanks,

Nagesh