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