This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

E_spOutOfBounds errors

Expert 2985 points


Hi TI experts,

My situation:

CCSV5.2, SYS/BIOSv6.33.6.50, XDCv3.23.4.60, IPCv1.24.3.32, C6670

My cfg file:

3821.ICT_BBU_Proj.cfg

My project:

The every core of the 4 of C6670 runs the same project using the same .cfg files.

Every core runs three task and the .text is put in MSMCSRAM because L2RAM is not enough.

My debug background:

My problem:

When I load the .out into the 4 cores, all the cores run well. But after some times, the two(sometimes only one) of the four cores will fails and show the information below

The DSP core runs @ 983MHzDebug(Core 1): Waiting for SRIO to be initialized.
Debug(Core 1): SRIO can now be used.
SRIO start!
Core Num = 1
*********************************************
*******ICT Debug Info: SRIO Task Start*******
*********************************************
ti.sysbios.knl.Task: line 345: E_spOutOfBounds: Task 0x8c23ec stack error, SP = 0x81dec8.
xdc.runtime.Error.raise: terminating execution

Can anyone give a hint to solve this problem?

Regards,

Feng

  • Hi Feng,

        The error points to one of your task stacks. You can open ROV and select the Task module to see all the tasks running on that core. In the Detailed view of the Task module, look for the task with address 0x8c23ec and check if it's overflown its stack (comparing the stack size with the stack peak). If there's a task overflow, try increasing the task size and see if that fixes the problem.

    Let me know how it goes or if you have any further questions

    Moses

  • Hi Moses,

     

    I think the stack peak of the tasks is just reach to the 70% of the stack size.

    But after I change the Program.heap = 81920 to 0x1, everything is OK!

    But I do not know why and how to debug this kind of problem.

     

    Regards,

    Feng

  • Feng,

       I see you're creating a bunch of Heaps. Are you doing that much dynamic memory allocation in your application? Also the Program.heap and BIOS.heapSize doesn't do anything since you set your defaultHeapInstance to heap0 that you created with HeapMem. I'm not sure why changing Program.heap from 81k to 0x1 fixed your problem. What type of data do you have on the task stack? Open ROV, select the Task module and send me a screen shot of the Detailed view? Just to test, you can also set Program.heap back to 81k and increase your task stack instead.

    Let me know how it goes.

    Moses