source: rtems/doc/supplements/i386/memmodel.t @ 8eba470

4.104.114.84.95
Last change on this file since 8eba470 was 8eba470, checked in by Joel Sherrill <joel.sherrill@…>, on 10/19/98 at 18:25:16

Nearly everything that can be is now automatically generated.

  • Property mode set to 100644
File size: 2.8 KB
Line 
1@c
2@c  COPYRIGHT (c) 1988-1998.
3@c  On-Line Applications Research Corporation (OAR).
4@c  All rights reserved.
5@c
6@c  $Id$
7@c
8
9@chapter Memory Model
10
11@section Introduction
12
13A processor may support any combination of memory
14models ranging from pure physical addressing to complex demand
15paged virtual memory systems.  RTEMS supports a flat memory
16model which ranges contiguously over the processor's allowable
17address space.  RTEMS does not support segmentation or virtual
18memory of any kind.  The appropriate memory model for RTEMS
19provided by the targeted processor and related characteristics
20of that model are described in this chapter.
21
22@section Flat Memory Model
23
24RTEMS supports the i386 protected mode, flat memory
25model with paging disabled.  In this mode, the i386
26automatically converts every address from a logical to a
27physical address each time it is used.  The i386 uses
28information provided in the segment registers and the Global
29Descriptor Table to convert these addresses.  RTEMS assumes the
30existence of the following segments:
31
32@itemize @bullet
33@item a single code segment at protection level (0) which
34contains all application and executive code.
35
36@item a single data segment at protection level zero (0) which
37contains all application and executive data.
38@end itemize
39
40The i386 segment registers and associated selectors
41must be initialized when the initialize_executive directive is
42invoked.  RTEMS treats the segment registers as system registers
43and does not modify or context switch them.
44
45This i386 memory model supports a flat 32-bit address
46space with addresses ranging from 0x00000000 to 0xFFFFFFFF (4
47gigabytes).  Each address is represented by a 32-bit value and
48is byte addressable.  The address may be used to reference a
49single byte, half-word (2-bytes), or word (4 bytes).
50
51RTEMS does not require that logical addresses map
52directly to physical addresses, although it is desirable in many
53applications to do so.  If logical and physical addresses are
54not the same, then an additional selector will be required so
55RTEMS can access the Interrupt Descriptor Table to install
56interrupt service routines.  The selector number of this segment
57is provided to RTEMS in the CPU Dependent Information Table.
58
59By not requiring that logical addresses map directly
60to physical addresses, the memory space of an RTEMS application
61can be separated from that of a ROM monitor.  For example, on
62the Force Computers CPU386, the ROM monitor loads application
63programs into a logical address space where logical address
640x00000000 corresponds to physical address 0x0002000.  On this
65board, RTEMS and the application use virtual addresses which do
66not map to physical addresses.
67
68RTEMS assumes that the DS and ES registers contain
69the selector for the single data segment when a directive is
70invoked.   This assumption is especially important when
71developing interrupt service routines.
72
Note: See TracBrowser for help on using the repository browser.