Jameco Electronics 2000 Network Card User Manual


 
30 Rabbit 3000 Microprocessor
Figure 3-7. Schemes for Data Memory Windows
A third approach is to place the data and root code in RAM in the root segment, freeing the
data segment to be a window to extended memory. This requires copying the root code to
RAM at startup time. Copying root code to RAM is not necessarily that burdensome since
the amount of RAM required can be quite small, say 12K for example.
The XPC segment at the top of the memory can also be used as a data segment by pro-
grams that are compiled into root memory. This is handy for small programs that need to
access a lot of data.
3.2.4 Practical Memory Considerations
The simplest Rabbit configurations have one flash memory chip interfaced using /CS0 and
one RAM memory chip interfaced using /CS1. Typical Rabbit-based systems use 256K of
flash and 128 K of RAM, but smaller or larger memories may be used.
Although the Rabbit can support code size approaching a megabyte, it is anticipated that
the majority of applications will use less than 250K of code, equivalent to approximately
10,000–20,000 C statements. This reflects both the compact nature of Rabbit code and the
typical size of embedded applications.
Directly accessible C variables are limited to approximately 44K of memory, split
between data stored in flash and RAM. This will be more than adequate for many embed-
Root
Code
Data
(RAM)
Root
Code
Data
(RAM)
Stack Segment
used as data
window
Data Segment
used as data
window
Stacks in data
segment
Root Segment
mapped to
RAM has both
root code and
data.
Stack Segment
used for stack
Using Stack Segment
for a Data Window
Using Data Segment for
a Data Window (Code must
be copied to RAM on startup.)
(flash)
(RAM)