Accessing 512KB external RAM for RCM6750.

Hi guys,
The RCM6750 got two section of battery-backup RAM: The internal 32KB RAM and the external 512KB RAM.

From the .org file that created after every compilation using Dynamic C, we can see that the battery backup RAM address is from 200000h to 208000h which is 8000h in size which equals to 32KB. So, that refers to the internal 32KB RAM right?

Then how bout the 512KB external RAM? What is the address for accessing the external RAM?

There is no simple way to force the data into a particular part of BBRAM, the compiler will use it to store any data you use the bbram keyword with and fill it up as it goes along. It will also stick normal data into BBRAM as a last resort if the normal RAM does not have enough room.

BTW I think the RCM6750 has 512Kx16 of BBRAM for a total of 1024K bytes.

Regards,
Peter

I know that if we use the internal BBRAM, we can specified a memory location ie. 200000h to write our data into.

But how about the external BBRAM? What addresses should we use?

Generally, you don’t write to BBRAM using absolute addresses like that. You either define a variable or array of variables with the bbram preface or you use _xalloc() to allocate a block of memory with the type parameter set to XALLOC_BB.

See the DC 10 function reference manual for details.

Regards,
Peter

Generally, you don’t write to BBRAM using absolute addresses like that. You either define a variable or array of variables with the bbram preface or you use _xalloc() to allocate a block of memory with the type parameter set to XALLOC_BB.

See the DC 10 function reference manual for details.

Regards,
Peter

I’m using xmem2root() and root2xmem() function to excess my RAM. So, with that function, you need to specify the specific location address for the data right? ie: xmem2root(WebInfo, 10000, sizeof(WebInfo)); where 10000 is the address of the memory.
Can these function be use for the external bbram?

I’m using xmem2root() and root2xmem() function to excess my RAM. So, with that function, you need to specify the specific location address for the data right? ie: xmem2root(WebInfo, 10000, sizeof(WebInfo)); where 10000 is the address of the memory.
Can these function be use for the external bbram?

They can be used with external BBRAM. Is there a specific reason you need to copy the data into and out of root memory? I generally use far pointers for accessing data in xmem and leave it in place. If speed is important I make sure the data I need to access quickly resides in root but for the rest of it I let the compiler decide where to stick it.