Other Parts Discussed in Thread: C2000WARE
Last year we had feedback about CPU1 startup failures, and here are two threads from that time:
TMS320F28388D: CPU1 gets stuck after power on
TMS320F28388D: RE: TMS320F28388D: CPU1 gets stuck after power on
We have recently experienced the same problem with other products, with about 5% of chips having CPU1 jump to ITRAP during the power-on startup process.
I conducted a test using the faulty equipment, and the following phenomena occurred:
1. If only CPU1 is run, there is no problem. If CPU1 boots CPU2, even if there are no application program in CPU2, CPU1 has a probability of entering ITRAP
2. I used TI's routine for the above test. The memory configuration and code came from C2000ware, and CPU1 would also enter ITRAP.
3. I have tested the time interval between CPU1 booting CPU2 and CPU1 entering ITRAP, which is about 37us. I ran the test using three abnormal devices, and the time interval was almost identical. I've drawn two diagrams to illustrate the normal and problematic running of our application for further discussion.

We have the following judgments and questions:
1. Since problems can occur with TI routines, and the problems are concentrated on a few specific chips, we tend to think that this is a hardware or chip problem. But according to our earlier tests, if I randomly add a few NOP statements to the program to slightly change the FLASH space allocation and the program execution timing, the problem will disappear, and then as I add more NOP, the problem will return, which makes us very confused as to why the software tweaks will affect the problem recurrence.
2. The time interval between CPU1 starting CPU2 and the problem occurring is fixed at 37us. Do we have the means to determine what actions the whole system, especially CPU2, is performing at this moment? Can you give us some hints, or can I look up relevant information from TRM?
3.My judgment is that during the startup of CPU2, CPU1's access to FLASH will be affected at some point, causing CPU1 to jump to ITRAP. For this reason, I tried to avoid this "problem moment" by having CPU1 jump to RAM to execute a loop of about 10ms after CPU1 boots CPU2. After adding this mechanism, CPU1 did not get stuck to ITRAP anymore.



