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.

RTOS/TM4C1294NCPDT: Stack overflow occurs in TM4C1294 Tiva C series EVM

Part Number: TM4C1294NCPDT

Tool/software: TI-RTOS

Hi,

During execution of my application, Often I am getting the below error,

l.Task: line 383: E_spOutOfBounds: Task 0x200028dc stack error, SP = 0x20000ce4.
xdc.runtime.Error.raise: terminating execution

I am using almost 9 task with each task having 512Kb stack size. I have used 4 event handler and 4 mailbox.

Question:

1.Do I need to increase the stack size of each task? or the system stack

2.What is the default system stack size? Where I can find the system stack increase option in CCS .cfg file.

3., it's throwing memory error, When I increase event handler or mailbox. Is there any option to increase memory buffer for mailbox.

Regards,

Manohar

  • Manohar B said:
    I am using almost 9 task with each task having 512Kb stack size.

    I don't think this is possible. There's not that much memory on the chip and the Launchpad doesn't add memory.

    Robert

  • Hi,
    Thanks Robert

    Actually the Stack size for each task is 512 bytes only, So 4Kb of memory only its taking.
    Then why its showing the error?

    l.Task: line 383: E_spOutOfBounds: Task 0x200028dc stack error, SP = 0x20000ce4.
    xdc.runtime.Error.raise: terminating execution

    Please suggest any optimaization can be done or stack size can be increased.

    Note: In our task there is no local variables, no recursive calls and no arrays declared.


    Regards,
    Manohar
  • Manohar B said:
    Then why its showing the error?

    Because q is 32? Seriously, how are we to know?

    Manohar B said:
    Note: In our task there is no local variables, no recursive calls and no arrays declared.

    RTOS calls? library calls?

    How have you determined the appropriate size for you stacks?

    Manohar B said:
    l.Task: line 383: E_spOutOfBounds: Task 0x200028dc stack error, SP = 0x20000ce4.

    Note, your error is telling you which task and stack are failing

    Robert

  • Hi Robert,

    1. Because q is 32? Seriously, how are we to know?
    I am not getting this question.

    2.How have you determined the appropriate size for you stacks?
    I am just using default Stack memory size that is mentioned when I create a task in .cfg GUI.


    3.Note, your error is telling you which task and stack are failing
    How can I find which task and stack is failing using the task address, do you have any idea on how we can find it in CSS?


    Regards,
    Manohar
  • Manohar B said:

    1. Because q is 32? Seriously, how are we to know?
    I am not getting this question.

    I was making the observation that we have no insight into why you might have a stack problem. We have no idea how your application is structured or what your tasks do. I was flippantly suggesting that the reason your stack was overflowing was because you had set q to 32. That's as good a suggestion as any given the information we have.

    Manohar B said:
    2.How have you determined the appropriate size for you stacks?
    I am just using default Stack memory size that is mentioned when I create a task in .cfg GUI.

    So now you have your first task. determine what size your stacks need to be.

    Manohar B said:
    3.Note, your error is telling you which task and stack are failing
    How can I find which task and stack is failing using the task address

    Back track from the address information given.

    Manohar B said:
    , do you have any idea on how we can find it in CSS?

    Not the foggiest, but it should be possible to produce a map. Although I presume you mean CCS, otherwise I have even less of an idea.

    Robert

  • Hi,

    Thank you Robert

    I have found that the above error is because of Idle task with the address in the Error.

    And I have gradually increased the idle task stack size from 512 to 2048. Since I am getting the same error.

    Question:

    1.I want to know how to resolve this error, its not getting resolved even if I increase the stack size of idle task.

    2. Any other approach to resolve this issue?

    Regards,

    Manohar