Jameco Electronics 3000 ユーザーズマニュアル

ページ / 349
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)