4 practical memory considerations – Jameco Electronics Rabbit 3000 User Manual

Page 39

Advertising
background image

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)

Advertising
This manual is related to the following products: