I use RCM6710 that has 32K of NV RAM. The problem is: I need large array for nonvolatile data storage (approx size = 10000 bytes). But when I try to declare it like:
bbram far unsigned char arr;
I get error message: “Out of battery backed xmem data space”.
Could somebody advise how to organize such bbram data storage? Please help!
P.S.: I use DC 10.66
It seems when compiling for the RCM6700, by default the majority of the 32K BBRAM (20K) is allocated for FAT file system buffers - even if you don’t use the FAT file system.
Have a look at the comments in the fatconfig.lib file for ways to remove or reduce the size of this allocation and free up some more BBRAM.
Thank you, Peter! You are absolutely right! I did it, defined
#define FAT_MAXBUFS 0
and now I can declare large arrays (till 0x7000 bytes - even more than I need now) without any problems.
I just wonder how do you know about this trick? I can’t guess it even reading map file of my project…
The .org file for the project shows all the different memory sections and the names. I did a search through the lib files until I found where the fat_buff@ section was being defined and then tracked down where the macros used in that were defined.
I’ve had lots of practise doing this type of stuff whilst working with the BACnet stack as it is one of the largest blocks of code for the Rabbit outside of the Rabbit supplied libraries and I’ve used it on several different boards.