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.
Presumably changing the "RAM settings" involves writing specific values to specific addresses;compiling with "-O2 -g+" will have the effect of causing accesses to behave as though volatile, whilst this behaviour will be optimised out with "-O2 -Otime"; for example:void foo(void){ unsigned char *f = (unsigned char *)0x100; *f = 2; *f = 4; *f = 6;}Generates three write accesses with debug, but only writes "6" without debug enabled.Declaring f as "volatile unsigned char*", will result in all three writes always being generated.If you are talking to peripherals, are you sure you're using the volatile specifier correctly?hths.
void foo(void){ unsigned char *f = (unsigned char *)0x100; *f = 2; *f = 4; *f = 6;}