Reply by Nathan Johnston●January 16, 20052005-01-16
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
Reply by Scott Henion●January 16, 20052005-01-16
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
Reply by M●January 16, 20052005-01-16
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
Reply by Nathan Johnston●January 16, 20052005-01-16
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
Reply by M●January 16, 20052005-01-16
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.