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.

Idle task stack overflow

Other Parts Discussed in Thread: SYSBIOS

All:

when I run application,ccs respond:

ti.sysbios.knl.Task: line 364: E_stackOverflow: Task 0xb0ed8528 stack overflow.
xdc.runtime.Error.raise: terminating execution

from the ROV we can see that the error task is idle task

but even when I enlarge the Task stack size to 81920 by

var Task = xdc.useModule('ti.sysbios.knl.Task');

Task.idleTaskStackSize = 81920;

the error also occured.

 

follow is the idle task raw message

Hope for your rely,thanks very much!

  • Hi Yuanxi Liu1,

    Are you sure that it's the idle Task that's overflowing?  I noticed that the address of the Task that's in the error output has address:

    0xb0ed8528

    But your ROV view shows the address of the idle Task as:

    0xb0ed84b8

    I think if you increase the stack size of the Task with handle 0xb0ed8528 you should be able to get past this.

    Steve

  • Hi Steve

          Thanks for your attention very much.

         Now the error happen again,

     

    But I can't find the task at the address 0xb0ec9cf0

    if you need any other information,please tell me ,hope for u reply!

        

  • I also can not fine the addr 0xb0ec9cf0 in the .map file

  • Yuanxi Liu1,

    I would try making all of your Task stacks really big.  I see you have some that are 2K and the idle Task stack is 1K.  It seems like you have a lot of memory so you can do this.  Then you can check the stack peaks.

    Or, you can try to find out which Task corresponds to that handle.

    You can do this by putting a breakpoint into the beginning of each of your Task functions.  Then run the app again and write down the handle of the Task for each function when the break point hits.

    Also, your screen shots are great, but for the Task view, can you please capture the "detailed" tab next time?  It shows more info that's useful, such as the stack peaks

    Steve

  • I enlarge every stack size of task,but it also crash.

    The task detailed view

    You can do this by putting a breakpoint into the beginning of each of your Task functions.  Then run the app again and write down the handle of the Task for each function when the break point hits

    I also did this,but can not find the handle.

    Thansks for you reply very much,hope for your sustained attention!

     

  • Are you creating any Tasks dynamically?  Or are all of your Tasks created statically in your BIOS configuration (*.cfg file)?

    Can you also check the 'module' view for Task in ROV?  What does the hwiStackSize and hwiStackPeak show?  Also, try the "scan for errors" test in the BIOS module in ROV.

    You may have some data corruption going on.  There may be a corrupt Task pointer in memory when the kernel is checking the Task stacks.  When you see the error, could you please look at the address in the error message (the Task handle value)?  You can do this by opening a memory browser within CCS and entering that handle address.

    Can you also check the Task object table to see if there is any Task that has that address?

    You can also find the Task object table using the memory browser within CCS.  Then you would enter the symbol name "ti_sysbios_knl_Task_Object__table__V".  It should look similar to the following screen shot:

    If there is no Task handle that matches the address you see in the error message, then it probably is data corruption and you have to find out what code is "behaving badly" and overwriting data that it should not be touching.

    Yuanxi Liu1 said:
    I also did this,but can not find the handle.

    The task handle can be seen in ROV.  The handle is the value under the "address" column in the screen shot you posted above.

    Steve

  • Hi Steve

       Thanks for your reply very much!

      I found it's the hwi module problem,if I uncheck the HWI Moudle's stack overflow  check.

     

    But the  hwistackpeak is far less than the hwistacksize

    Is there any way to find out the problem.

  • do you solve this problem?