I have a dual-CPU project, with both CPUs booting from Flash, and copying much of the ISR-code into RAM for the fastest operation. Both of these CPUs run seemingly reliably within the debugger. However when I power-cycle, CPU2 either doesn't boot or runs to an ESTOP or some significant failure like that.
I have inter-processor communication working (within the debugger), and my boot-sequence is as follows:
The first thing CPU2 does is spin on IPC17:
while (IpcRegs.IPCSTS.bit.IPC17 == 0); // Wait for CPU01 to set IPC17
IpcRegs.IPCACK.bit.IPC17 = 1; // Acknowledge and clear IPC17
Within CPU1, I initialize almost every peripheral (including the shared-RAM segregation between CPUs), and at the end of init, I set IPC17. Then CPU2 can initialize its peripherals and copy its ISR code from Flash to RAM.
I have limited debug capability, because this only fails after a power-cycle. I know from the RSTSTAT register that CPU2 is not held in reset, but it also does not appear to be executing. Any ideas or suggestions I might look at?
Thanks,
Jim