![background image](http://html2.mh-extra.com/html/rabbit/3000/3000_user-manual_3114034119.webp)
User’s Manual
111
mapped into contiguous regions of memory to create a continuous root code segment
starting at the bottom of physical memory in flash. In the I space the division between the
root segment and the data segment is irrelevant because the DATASEG register contains
zero and the division between the segments defined by the lower 4 bits of the SEGSIZE
register does not mark a division in physical memory for code space. However, if for D
space accesses A16 is inverted for the root segment and A19 is inverted for the data seg-
ment, then root segment data is mapped to the next 64k of flash and data segment data is
mapped to a place in memory 512k higher in the RAM. This divides the data space into 2
separate segments for constants and variables. If the stack segment (which is still com-
bined I and D space) and the extended code segment (also combined I and D space)
occupy 12k at the top of the 64k space, then the remaining 52k is doubled into a 52k code
space in flash and a 52k data space which may be split into 2 parts, one for constants and
one for variables. The relative size of the 2 parts depends on the lower 4 bits of the SEG-
SIZE register which defines the 4k page boundary between the root segment and the data
segment.
Figure 8-5. Combined versus Separate I & D Space
The use of physical memory that goes with this map is shown in Figure 8-6, “Use of Phys-
ical Memory Separate I & D Space Model,” on page 112. In this figure "n" is the number
of 4k pages devoted to D space constants. In the figure it is assumed that the lower 512k of
memory is entirely composed of flash memory and the upper 512k is entirely RAM. This
does not have to be the case. For example if a low cost 32k x 8 RAM is used and mapped
to the 3rd quadrant using /CS1 the RAM memory will begin at 512k and be repeated 8
times in the 3rd quadrant from addresses 512k to 768k. Since the memory repeats it can be
considered to start at any address and continue for 32k bytes. At least 4k byte of RAM is
needed for the stack segment, so if a 32k byte RAM is used a maximum of 28k would be
available for storing data variables. If more stack segments are needed the amount of data
variable space would be corresponding reduced.
Combined I & D
Root
Code
I-Space
64k
D-Space
Const
D-Space
Var
(RAM)
(flash)
Extended Code
Stack
RAM
Root
Code &
Data
(flash)
Separate I & D
52k
(4*n)k
Allocate
vars
Allocate
consts
Содержание 3000
Страница 1: ...Rabbit 3000 Microprocessor User s Manual 019 0108 020426 A...
Страница 8: ...Rabbit 3000 Microprocessor...
Страница 28: ...20 Rabbit 3000 Microprocessor...
Страница 73: ...User s Manual 65 6 RABBIT INTERNAL I O REGISTERS...
Страница 122: ...114 Rabbit 3000 Microprocessor...
Страница 138: ...130 Rabbit 3000 Microprocessor...
Страница 150: ...142 Rabbit 3000 Microprocessor...
Страница 188: ...180 Rabbit 3000 Microprocessor...
Страница 208: ...200 Rabbit 3000 Microprocessor...
Страница 228: ...220 Rabbit 3000 Microprocessor...
Страница 232: ...224 Rabbit 3000 Microprocessor...
Страница 238: ...230 Rabbit 3000 Microprocessor...
Страница 260: ...252 Rabbit 3000 Microprocessor...
Страница 266: ......