EmbeddedRelated.com
Forums
Memfault Beyond the Launch

RCM3360, memory management questions

Started by M January 16, 2005

Hi All,

 

We are doing projects using the RCM3700 and RCM3360 core modules.  I have reread all that I could find on memory management including the … in a Nutchell tech note.

It is a lot clearer on the 3700 than it is on the 3360 and its SRAM and Fast SRAM hardware.

Using separate instruction and data space, I am not clear as to where or how we control the use of the Fast RAM versus the use of the battery protected SRAM on the 3360.

Instead of trying to understand and read through the whole bios library, I hope that somebody can respond to the following questions:

 

Obviously, the stacks (using uCos) and stack data (auto variables) go into the SRAM?  I hope I am right on this one! If I am wrong, wake me up.     

Is the SRAM limited to this only use, stack data?

Are all static variables stored in the battery protected SRAM?

 

Is there a document somewhere describing the memory management scheme of the 3360 specifically?  I have gone through the 3360 manual but it does not go at all into the specifics.  What I would like to find is a diagram like the one in memory management in a nutshell but with the specifics of the 3360, its 512K flash, 512K SRAM and 512K Fast SRAM.

 

Thank you all.

 

Mario



Message
Search the archives for "bbram". There was some discussions <6 months ago on this.
 
The fast SRAM is used for running applications for RCM's with higher clock speeds, as to avoid flash wait states (remember to select compile to flash, run in ram to take advantage of this). The biggest catch is that the fast SRAM is not battery backed (and I still don't know why they didn't make it so). ZWorld added a keyword "bbram" to make it battery backed. Just declaring a variable as static won't work, i.e. you must declare it bbram static. Also be careful with xmem as its address range is not all battery backed, however you can use _xalloc which allows you to specify battery backed.
 
Regards,
Nathan
-----Original Message-----
From: M [mailto:m...@pointct.com]
Sent: Monday, 17 January 2005 5:41 AM
To: r...@yahoogroups.com
Subject: [rabbit-semi] RCM3360, memory management questions

Hi All,

 

We are doing projects using the RCM3700 and RCM3360 core modules.  I have reread all that I could find on memory management including the ... in a Nutchell tech note.

It is a lot clearer on the 3700 than it is on the 3360 and its SRAM and Fast SRAM hardware.

Using separate instruction and data space, I am not clear as to where or how we control the use of the Fast RAM versus the use of the battery protected SRAM on the 3360.

Instead of trying to understand and read through the whole bios library, I hope that somebody can respond to the following questions:

 

Obviously, the stacks (using uCos) and stack data (auto variables) go into the SRAM?  I hope I am right on this one! If I am wrong, wake me up.     

Is the SRAM limited to this only use, stack data?

Are all static variables stored in the battery protected SRAM?

 

Is there a document somewhere describing the memory management scheme of the 3360 specifically?  I have gone through the 3360 manual but it does not go at all into the specifics.  What I would like to find is a diagram like the one in memory management in a nutshell but with the specifics of the 3360, its 512K flash, 512K SRAM and 512K Fast SRAM.

 

Thank you all.

 

Mario



Message

Hi Nathan,

 

Thank you for your answer. Is the Fast RAM used at all when we select the standard compile to flash like I am doing? Is the stack segment in this condition on the Fast RAM? Basically, if my application is hungrier for data and code space than speed, is this Fast RAM useful?

 

I have tried searching for bbram and found only this thread and another one regarding preservation of battery backed data which is relevant but not exactly what I need to learn now.

 

Thanks again,

 

Mario

 

De : Nathan Johnston [mailto:n...@dominion.net.au]
Envoynbsp;: 16 janvier 2005 17:13
nbsp;: 'r...@yahoogroups.com'
Objet : RE: [rabbit-semi] RCM3360, memory management questions

 

Search the archives for "bbram". There was some discussions <6 months ago on this.

 

The fast SRAM is used for running applications for RCM's with higher clock speeds, as to avoid flash wait states (remember to select compile to flash, run in ram to take advantage of this). The biggest catch is that the fast SRAM is not battery backed (and I still don't know why they didn't make it so). ZWorld added a keyword "bbram" to make it battery backed. Just declaring a variable as static won't work, i.e. you must declare it bbram static. Also be careful with xmem as its address range is not all battery backed, however you can use _xalloc which allows you to specify battery backed.

 

Regards,

Nathan

-----Original Message-----
From: M [mailto:m...@pointct.com]
Sent: Monday, 17 January 2005 5:41 AM
To: r...@yahoogroups.com
Subject: [rabbit-semi] RCM3360, memory management questions

Hi All,

 

We are doing projects using the RCM3700 and RCM3360 core modules.  I have reread all that I could find on memory management including the ... in a Nutchell tech note.

It is a lot clearer on the 3700 than it is on the 3360 and its SRAM and Fast SRAM hardware.

Using separate instruction and data space, I am not clear as to where or how we control the use of the Fast RAM versus the use of the battery protected SRAM on the 3360.

Instead of trying to understand and read through the whole bios library, I hope that somebody can respond to the following questions:

 

Obviously, the stacks (using uCos) and stack data (auto variables) go into the SRAM?  I hope I am right on this one! If I am wrong, wake me up.     

Is the SRAM limited to this only use, stack data?

Are all static variables stored in the battery protected SRAM?

 

Is there a document somewhere describing the memory management scheme of the 3360 specifically?  I have gone through the 3360 manual but it does not go at all into the specifics.  What I would like to find is a diagram like the one in memory management in a nutshell but with the specifics of the 3360, its 512K flash, 512K SRAM and 512K Fast SRAM.

 

Thank you all.

 

Mario



At 05:13 PM 1/16/2005, you wrote:
The fast SRAM is used for running applications for RCM's with higher clock speeds, as to avoid flash wait states (remember to select compile to flash, run in ram to take advantage of this). The biggest catch is that the fast SRAM is not battery backed (and I still don't know why they didn't make it so).

That is because the fast ram would suck down a battery in a matter of hours. The slow ram is a low-power version. There is a big difference between a 15ns and a 55ns RAM.

Yes, the "Compile to flash. RUN in RAM" is rally the only way to go. You get a 33% speed up of code and can use both the fast and slow RAM. Compile to flash only gives use of one of the RAM's.

------
| Scott G. Henion| s...@shdesigns.org |
|   Consultant   |   Stone Mountain, GA  |
|   SHDesigns    |   PGP Key 0xE98DDC48  |
|     http://www.shdesigns.org            |
------
today's fortune
Knowledge is power -- knowledge shared is power lost.
                 -- Aleister Crowley


Message
Mario,
 
I'm not sure if the fast ram is available when doing a standard compile. I've always used the compile to flash, run in ram option for the performance increase. It wouldn't be hard to test this by making a test program that xalloc'd memory (you'll need to try xalloc 3x 256k because of memory bank sizes).
 
The previous thread was in regards to battery backed data but I thought it also covered some general info about the fast SRAM. When compiling to flash, running from ram, the fast sram is split (part for running program, part as standard ram). You'd need to have a look in xmem.lib for details of this. I'm not sure what happens if you have a large program, whether this "split" shifts (ie entire program resides in fast SRAM), or whether there is runtime copying of code in and out of the fast SRAM.
 
Hopefully Scott or someone else here can confirm/clarify my comments. It's been a while since I worked with a fast SRAM RCM...
 
Nathan
 
-----Original Message-----
From: M [mailto:m...@pointct.com]
Sent: Monday, 17 January 2005 9:35 AM
To: r...@yahoogroups.com
Subject: RE: [rabbit-semi] RCM3360, memory management questions

Hi Nathan,

 

Thank you for your answer.  Is the Fast RAM used at all when we select the standard compile to flash like I am doing?  Is the stack segment in this condition on the Fast RAM?    Basically, if my application is hungrier for data and code space than speed, is this Fast RAM useful?

 

I have tried searching for bbram and found only this thread and another one regarding preservation of battery backed data which is relevant but not exactly what I need to learn now.

 

Thanks again,

 

Mario

 

De : Nathan Johnston [mailto:n...@dominion.net.au]
Envoynbsp;: 16 janvier 2005 17:13
nbsp;: 'r...@yahoogroups.com'
Objet : RE: [rabbit-semi] RCM3360, memory management questions

 

Search the archives for "bbram". There was some discussions <6 months ago on this.

 

The fast SRAM is used for running applications for RCM's with higher clock speeds, as to avoid flash wait states (remember to select compile to flash, run in ram to take advantage of this). The biggest catch is that the fast SRAM is not battery backed (and I still don't know why they didn't make it so). ZWorld added a keyword "bbram" to make it battery backed. Just declaring a variable as static won't work, i.e. you must declare it bbram static. Also be careful with xmem as its address range is not all battery backed, however you can use _xalloc which allows you to specify battery backed.

 

Regards,

Nathan

-----Original Message-----
From: M [mailto:m...@pointct.com]
Sent: Monday, 17 January 2005 5:41 AM
To: r...@yahoogroups.com
Subject: [rabbit-semi] RCM3360, memory management questions

Hi All,

 

We are doing projects using the RCM3700 and RCM3360 core modules.  I have reread all that I could find on memory management including the ... in a Nutchell tech note.

It is a lot clearer on the 3700 than it is on the 3360 and its SRAM and Fast SRAM hardware.

Using separate instruction and data space, I am not clear as to where or how we control the use of the Fast RAM versus the use of the battery protected SRAM on the 3360.

Instead of trying to understand and read through the whole bios library, I hope that somebody can respond to the following questions:

 

Obviously, the stacks (using uCos) and stack data (auto variables) go into the SRAM?  I hope I am right on this one! If I am wrong, wake me up.     

Is the SRAM limited to this only use, stack data?

Are all static variables stored in the battery protected SRAM?

 

Is there a document somewhere describing the memory management scheme of the 3360 specifically?  I have gone through the 3360 manual but it does not go at all into the specifics.  What I would like to find is a diagram like the one in memory management in a nutshell but with the specifics of the 3360, its 512K flash, 512K SRAM and 512K Fast SRAM.

 

Thank you all.

 

Mario




Memfault Beyond the Launch