When I debug \Keil\ARM\RV30\RTL\Kernel\Examples\Measure\Measure.uv3,I want watch "cmdbuf[]" in Watch & Call Stack Window,when I use SARM.dll V1.5,watch data was right,but when I use SARM.dll V3.x,watch data was wrong.
Static works, thanks..
But there are other problems. I made this function:
void Main_make_sprintf_work(char * str) { static char str_local[40]; sprintf(str_local, "%f" ,2.45); memcpy(str, str_local, 10); }
It works when I call it from main() but don't work if the call come from a function further inside the program.
In what way does it "not work"?
When I call Main_make_sprintf_work(char * str) from a task, str_local don't contain the right string.
After adding 500 bytes to the stack (now 1500 bytes) it writes "2" in Str_local.
I think its strange it did not detect any stack overflow and why do it need so much stack?
The problem was that I had an RTX_Config file for V3.02 and my IRQ and USR stack size was too small.