Hi,
my customer has one boot code project and one app code project.
The flow for them to upgrade the app code is as below:
1. When upgrade request is received from SCI, the app code will erase the flag(to tell that the app need to be ugpraded), and then enable watchdog and trigger watchdog reset.
2. After watchdog reset, the code will go to code_start, here, we will check the Flag and then jump to boot code project c_int00, and after c_int00 we should go to BOOT code main(), here we finish loading APP code, and at the end of main() we will jump to APP c_int00, then it should go to APP main().
However, we have 20pcs out of 150pcs that could not correctly go to APP main(), but we are sure the new APP code is already loaded to the device since we have read out the memory and compare the results. So we guess the code got stuck somewhere in APP c_int00 and trigger illegal TRAP.
And we have unsoldered the bad device to the good board, the problem goes with the bad device.
We've no idea why it would stuck in APP c_int00. We guess it's because we have done twice c_int00, once boot c_int00, and once APP c_int00.
But why it will cause problem? And why the problem happens only on some devices?



