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.
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