I remember reading in another post, that some rabbits root memmory is battery backed, and that the variables persists if defined into the root space.
Is this correct, I couldn’t find a reference to it anywhere, and up to now have been unable to verify this behaviour.
My RCM3365 does have a lithium battery connected to the VBAT_EXT pin.
Ok I have tested if a variable can be non volatile on a RCM3365 using the battery backed memory.
I have declared my variable as follows :
xmem char check[3]; or
root char check[3];
and have set in the compiler options the following settings :
Program in flash, run from flash
Program in flash, run from ram
and
Seperate instruction and Data space
Not seperate instruction and Data space.
In all that is 8 tests I have performed, with no success in having my variable non volatile. If I do select the option to program in flash, and run out of ram, the initial value of the variable is non volatile, but any subsequent changes gets lost with a power failure.
I do see that the RCM3365/RCM3375 boards have 512K of program-execution fast SRAM at U11. The program-execution SRAM is not battery-backed. There are 512K of battery-backed data SRAM installed at U10.
How do I specify to Dynamic C that I want a variable placed in the battery-backed SRAM at U10?
Ok for everyone else some further searching provided the answer thanks to Ask Larry :
http://www.rabbit.com/support/ask_larry/2007/121907.shtml
The key word the variable must be initialized with is bbram.