embOS 3.32e
ARM (AT91RM9200)
Lib SP
I have some code in a low pri task that calls OS_GetStackSpace, cycling through a list of all tasks. After I exercize my program a bit, this test pops out an error saying that a specific task is down to 16 bytes of stack. This is surprising because the task is not being activated at all, it is always waiting on an OS event. Although the stack should have been more than enough, I tried adding a large amount to it and the error only changed to say that it was down to 20 bytes. Thinking that I might have a stray pointer writing into the stack area, I placed a large array in front of the task stack declaration and also one after it. Neither affected the error.
In addition, the application continues to execute. I have linked with the stack checking library which should halt with an error if an actual stack overflow occured, but I am not seeing that.
I am wondering if there is a known problem with OS_GetStackSpace. If not, does anyone have any suggestions on how I might go about tracking down the source of the problem ?
George
ARM (AT91RM9200)
Lib SP
I have some code in a low pri task that calls OS_GetStackSpace, cycling through a list of all tasks. After I exercize my program a bit, this test pops out an error saying that a specific task is down to 16 bytes of stack. This is surprising because the task is not being activated at all, it is always waiting on an OS event. Although the stack should have been more than enough, I tried adding a large amount to it and the error only changed to say that it was down to 20 bytes. Thinking that I might have a stray pointer writing into the stack area, I placed a large array in front of the task stack declaration and also one after it. Neither affected the error.
In addition, the application continues to execute. I have linked with the stack checking library which should halt with an error if an actual stack overflow occured, but I am not seeing that.
I am wondering if there is a known problem with OS_GetStackSpace. If not, does anyone have any suggestions on how I might go about tracking down the source of the problem ?
George