I have an application with two tasks that I create dynamically. Both were running correctly until I added a new uninstantiated object. Just adding that object declaration cause the stack to get corrupted on return from BIOS_start.
Below is the ROV capture showing the tasks stack location at 0x800017D0.
Here is the correctly initialized stack.
Here I'm at the final stages of BIOS_start in Task_startCore calling Task_SupportProxy_swap which is going to do a task context switch. Notice the task's stack is still good.
Here is the stack after the call. Completely corrupted.
My first calls in this task are
System_printf("enter TaskStatusControl()\n");
Task_sleep(100);
The call to Task_sleep fails which you would expect b/c it checks the stack.
I have tied the following
1. Turned off caching
2. Moved the stack to the internal memory.
3. Moved to static task
4. Moved ALL .text, .const, .stack, .far, .systemHeap to internal memory
What could cause this and how on earth do I go about debugging it?
TMS320C6671 using bios_6_35_04_50, xdctools_3_25_03_72, c6000_7.4.6 (compiler)