We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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.
I am currently showing v3.03e. This is a separate SARM.dll file sent to me by Keil. It ends up in:
<base keil directory>\ARM\BIN
The info shown on the file itself in the actual directory is 3.3.0.1 for the one that came with the latest debugger update, and 3.3.5.1 for the new one they sent me.
Kathy
Hi I posted too soon. The Watch does appear to be improved, the locals seem to work now where as before they didn't. But now if put a breakpoint after a string activity such as
char cmdbuf [30];
bla bla for (i = 0; cmdbuf[i] != 0; i++) { cmdbuf[i] = (char) toupper(cmdbuf[i]); }
and I hover over string arrays I get a stange looking yy which has two dots above each y. I had been playing with some string manipulation software just before the upgrade. I could see the string contents fine.....
However if I change the declaration to
static char cmdbuf [30];
Things are fine again. I also wish that in the "locals and watch#x" windows that they had ascii as well as decimal and hex.
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.