I am getting os_stk_overflow exception with task_id displayed as 8000 in watch window. What task has id 8000?
RTX can only have 255 tasks and I am using only 16 tasks. Looking at the RTX Kernel dialog page for Active Tasks when os_stk_overflow exception occurs, only one task has stack load of 26%. Rest all have stack load in teens and no task shows stack load status as overflow.
Does any one have an idea whats going on?
Infinite recursion?
Memory overwrite?
Thanks I do not have recursive calls in my code for sure, although memory corruption very well seems possible. I have narrowed down the issue to a particular branch of code that only happens in certain situation and contains heavy float point computation. I ported this code to STM32F103 from Rabbit 3000 which is 8 bit processor. Could this be a result of divide by zero issue or some variable type mismatch?
Also do you know any issues using "sprintf" with float values on RTX? I read a blog where some had an issue with it. I also use IAR compiler that gives option to select small, medium or big lib support for "sprintf" or "scanf" functions. Big lib support for float variables. I don't see such option in keil compiler.
Any further thoughts in this issue?
Does MicroLIB supports float point and trigonometric computations?
There is a section in the Manual which specifically lists what the MicroLib does & does not support...