Other Parts Discussed in Thread: UNIFLASH
Tool/software: Code Composer Studio
I'm experiencing and issue whereby I have a large SYS/BIOS program splits the usage of global shared ram between CPU1 and CPU2. It looks as though the act of downloading CPU2 is corrupting RAM utilized by CPU1 for BIOS stack/heap usage, presumably one of the global shared RAMs.
We have verified through the respective output *.map files that there is no unintentional overlapping of CPU1 and CPU2 for any of the global shared ram. There is a small piece of intentionally overlapping RAM in GS12 RAM.
We believe that the CCS tool is writing to global shared RAM used by CPU1 (stack) when CPU2 is loaded with its respective *.out file. We have the following test results leading us to that conclusion.
- Load CPU1, run to main()
- Load CPU2, run to main()
- Resume execution on CPU1
- Observe an abort during the stack check of the idle thread()
- Restart CPU1 no abort() is observed, start CPU2
- System runs normally, no abort, everything good
- Load CPU2 (CPU1 still running)
- CPU1 aborts during the stack check of the idle thread()
Is it possible that the CCS debug tool is writing over some of our shared ram when loading CPU2? How do we prevent this? Is there a GEL file setting we should change?
Thanks,
Stuart