Hi guys, do you guys have any info for the memory map of RCM6750? I can’t find it anywhere in the user manual of RCM6750.
I want something like the memory map for Rabbit 6000 which is in page 55 of Rabbit 6000 User’s Manual.
This is because I want to use the function xmem2root and root2xmem but don’t know what memory address to put.
Does the xmem refer to the 1M SRAM on the RCM6750?
The RCM6750 has 3 blocks of RAM: 32K of battery backable RAM internal to the chip, 1MB of fast RAM internal to the chip and 1MB of slower battery backable RAM which is on the module external to the Rabbit 6000 chip.
To see the memory map (and how much is used etc) have a look a the .org file after you have compiled a program. This has all the details and I think there is an app note on the meaning of the different sections.
xmem refers to memory outside of the bottom 64K of the memory map. The xmem2root and root2xmem functions can be used but to be honest using far pointers is generally easier unless there is a very specific reason to need them. With far pointers you can access data directly and most of the memory and string functions now support them by default.
Ok. I have check out my .org file after compile.
There are rootcode, no_lcall, xmemcode, rootconst, rootdata… and so on.
Should I want like to use xmem2root and root2xmem, which location address should I put?
Generally you don’t need to know the address before hand. If you are using xmem as opposed to far to access data you use the xdata, xstring, ximport keywords when defining the data or use xalloc() to allocate blocks of xmem. This way the compiler and runtime look after the exact location for you.
The example programs in the samples\xmem folder show examples of all of these.
Alternatively, the examples in samples\rabbit4000\far show the use of far data and pointers. Searching the files in the samples folders for “far” shows lots of examples of this as well.
If I want to store data in the 4MB serial flash in the RCM6750, is it that I must use sf_RAMToPage(a) function? Where ‘a’ is the page number.
What is the limit of the page number?
Have a look at the samples\rcm6700\serial_flash folder for some help with all this.
You should also look at an article about memory utilization at the following link:
http://www.digi.com/ask_larry/2009/1208