Changeset bae90e1 in rtems for doc/user/conf.t


Ignore:
Timestamp:
Jul 3, 1999, 7:06:57 PM (21 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, master
Children:
2aab33e5
Parents:
f3482e3
Message:

Added a lot of information on confdefs.t

File:
1 edited

Legend:

Unmodified
Added
Removed
  • doc/user/conf.t

    rf3482e3 rbae90e1  
    1 @c
    21@c  COPYRIGHT (c) 1988-1998.
    32@c  On-Line Applications Research Corporation (OAR).
     
    76@c
    87
     8@c The following macros from confdefs.h have not been discussed in this
     9@c chapter:
     10@c
     11@c CONFIGURE_NEWLIB_EXTENSION
     12@c CONFIGURE_MALLOC_REGION
     13@c CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS
     14@c CONFIGURE_LIBIO_SEMAPHORES
     15@c CONFIGURE_INIT
     16@c CONFIGURE_INTERRUPT_STACK_MEMORY
     17@c CONFIGURE_GNAT_RTEMS
     18@c     CONFIGURE_GNAT_MUTEXES
     19@c     CONFIGURE_GNAT_KEYS
     20@c     CONFIGURE_MAXIMUM_ADA_TASKS
     21@c     CONFIGURE_MAXIMUM_FAKE_ADA_TASKS
     22@c     CONFIGURE_ADA_TASKS_STACK
     23@c
     24@c In addition, there should be examples of defining your own
     25@c Device Driver Table, Init task table, etc.
     26@c
     27@c Regardless, this is a big step up. :)
     28@c
     29
    930@chapter Configuring a System
     31
     32@section Automatic Generation of System Configuration
     33
     34RTEMS provides the @code{confdefs.h} C language header file that
     35based on the setting of a variety of macros can automatically
     36produce nearly all of the configuration tables required
     37by an RTEMS application.  Rather than building the individual
     38tables by hand. the application simply specifies the values
     39for the configuration parameters it wishes to set.  In the following
     40example, the configuration information for a simple system with
     41a message queue and a time slice of 50 milliseconds is configured:
     42
     43@example
     44@group
     45#define CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER
     46#define CONFIGURE_TEST_NEEDS_CLOCK_DRIVER
     47
     48#define CONFIGURE_MICROSECONDS_PER_TICK   1000 /* 1 millisecond */
     49#define CONFIGURE_TICKS_PER_TIMESLICE       50 /* 50 milliseconds */
     50
     51#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
     52@end group
     53@end example
     54
     55This system will begin execution with the single initialization task
     56named @code{Init}.  It will be configured to have both a console
     57device driver (for standard I/O) and a clock tick device driver.
     58
     59For each configuration parameter in the configuration tables, the
     60macro corresponding to that field is discussed.  Most systems
     61can be easily configured using the @code{confdefs.h} mechanism.
    1062
    1163@section Configuration Table
     
    74126RTEMS will invoke the fatal error handler during
    75127@code{@value{DIRPREFIX}initialize_executive}.
     128When using the @code{confdefs.h} mechanism for configuring
     129an RTEMS application, the value for this field corresponds
     130to the setting of the macro @code{CONFIGURE_EXECUTIVE_RAM_WORK_AREA}.
    76131
    77132@item work_space_size
     
    79134RTEMS RAM Workspace.  The section Sizing the RTEMS RAM Workspace
    80135details how to arrive at this number.
     136When using the @code{confdefs.h} mechanism for configuring
     137an RTEMS application, the value for this field corresponds
     138to the setting of the macro @code{CONFIGURE_EXECUTIVE_RAM_SIZE}
     139and is calculated based on the other system configuration settings.
    81140
    82141@item microseconds_per_tick
    83142is number of microseconds per clock tick.
     143When using the @code{confdefs.h} mechanism for configuring
     144an RTEMS application, the value for this field corresponds
     145to the setting of the macro @code{CONFIGURE_MICROSECONDS_PER_TICK}.
     146If not defined by the application, then the @code{CONFIGURE_MAXIMUM_TASKS}
     147macro defaults to 10.
     148XXX
    84149
    85150@item ticks_per_timeslice
    86151is the number of clock ticks for a timeslice.
     152When using the @code{confdefs.h} mechanism for configuring
     153an RTEMS application, the value for this field corresponds
     154to the setting of the macro @code{CONFIGURE_TICKS_PER_TIMESLICE}.
    87155
    88156@item maximum_devices
    89157is the maximum number of devices that can be registered.
     158When using the @code{confdefs.h} mechanism for configuring
     159an RTEMS application, the value for this field corresponds
     160to the setting of the macro @code{CONFIGURE_MAXIMUM_DEVICES}.
    90161
    91162@item number_of_device_drivers
    92163is the number of device drivers for the system.  There should be
    93164the same number of entries in the Device Driver Table.  If this field
    94 is zero, then the User_driver_address_table entry should be NULL.
     165is zero, then the @code{User_driver_address_table} entry should be NULL.
     166When using the @code{confdefs.h} mechanism for configuring
     167an RTEMS application, the value for this field is calculated
     168automatically based on the number of entries in the
     169Device Driver Table.  This calculation is based on the assumption
     170that the Device Driver Table is named @code{Device_drivers}
     171and defined in C.  This table may be generated automatically
     172for simple applications using only the device drivers that correspond
     173to the following macros:
     174
     175@itemize @bullet
     176
     177@item @code{CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER}
     178@item @code{CONFIGURE_TEST_NEEDS_CLOCK_DRIVER}
     179@item @code{CONFIGURE_TEST_NEEDS_TIMER_DRIVER}
     180@item @code{CONFIGURE_TEST_NEEDS_RTC_DRIVER}
     181@item @code{CONFIGURE_TEST_NEEDS_STUB_DRIVER}
     182
     183@end itemize
     184
     185Note that network device drivers are not configured in the
     186Device Driver Table.
    95187
    96188@item Device_driver_table
     
    99191then this entry should be NULL. The format of this table will be
    100192discussed below.
     193When using the @code{confdefs.h} mechanism for configuring
     194an RTEMS application, the Device Driver Table is assumed to be
     195named @code{Device_drivers} and defined in C.  If the application is providing
     196its own Device Driver Table, then the macro
     197@code{CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE} must be defined to indicate
     198this and prevent @code{confdefs.h} from generating the table.
    101199
    102200@item number_of_initial_extensions
     
    104202the same number of entries as in the User_extension_table.  If this field
    105203is zero, then the User_driver_address_table entry should be NULL.
     204When using the @code{confdefs.h} mechanism for configuring
     205an RTEMS application, the value for this field corresponds
     206to the setting of the macro @code{CONFIGURE_NUMBER_OF_INITIAL_EXTENSIONS}
     207which is set automatically by @code{confdefs.h} based on the size
     208of the User Extensions Table.
    106209
    107210@item User_extension_table
     
    111214are configured, then this entry should be NULL.  The format of
    112215this table will be discussed below.
     216When using the @code{confdefs.h} mechanism for configuring
     217an RTEMS application, the User Extensions Table is named
     218@code{Configuration_Initial_Extensions} and defined in
     219confdefs.h.  It is initialized based on the following
     220macros:
     221
     222@itemize @bullet
     223
     224@item @code{CONFIGURE_INITIAL_EXTENSIONS}
     225@item @code{STACK_CHECKER_EXTENSION}
     226
     227@end itemize
     228
     229The application may configure one or more initial user extension
     230sets by setting the @code{CONFIGURE_INITIAL_EXTENSIONS} macro.  By
     231defining the @code{STACK_CHECKER_EXTENSION} macro, the task stack bounds
     232checking user extension set is automatically included in the
     233application.
    113234
    114235@item User_multiprocessing_table
     
    117238configuration.  This field must be NULL when RTEMS is used in a
    118239single processor configuration.
     240When using the @code{confdefs.h} mechanism for configuring
     241an RTEMS application, the Multiprocessor Configuration Table
     242is automatically generated when the @code{CONFIGURE_MPTEST}
     243is defined.  If @code{CONFIGURE_MPTEST} is not defined, the this
     244entry is set to NULL.  The generated table has the name
     245@code{Multiprocessing_configuration}.
    119246
    120247@item RTEMS_api_configuration
     
    123250NULL if the RTEMS API is not used.  [NOTE: Currently the RTEMS API
    124251is required to support support components such as BSPs and libraries
    125 which use this API.]
     252which use this API.]  This table is built automatically and this
     253entry filled in, if using the @code{confdefs.h} application
     254configuration mechanism.  The generated table has the name
     255@code{Configuration_RTEMS_API}.
    126256
    127257@item POSIX_api_configuration
    128258is the address of the POSIX API Configuration Table.  This table
    129259contains information needed by the POSIX API.  This field should be
    130 NULL if the POSIX API is not used.
     260NULL if the POSIX API is not used.  This table is built automatically
     261and this entry filled in, if using the @code{confdefs.h} application
     262configuration mechanism.  The @code{confdefs.h} application
     263mechanism will fill this field in with the address of the
     264@code{Configuration_POSIX_API} table of POSIX API is configured
     265and NULL if the POSIX API is not configured.
    131266
    132267@end table
     
    185320can be concurrently active (created) in the system including
    186321initialization tasks.
     322When using the @code{confdefs.h} mechanism for configuring
     323an RTEMS application, the value for this field corresponds
     324to the setting of the macro @code{CONFIGURE_MAXIMUM_TASKS}.
     325If not defined by the application, then the @code{CONFIGURE_MAXIMUM_TASKS}
     326macro defaults to 10.
    187327
    188328@item maximum_timers
    189329is the maximum number of timers
    190330that can be concurrently active in the system.
     331When using the @code{confdefs.h} mechanism for configuring
     332an RTEMS application, the value for this field corresponds
     333to the setting of the macro @code{CONFIGURE_MAXIMUM_TIMERS}.
     334If not defined by the application, then the @code{CONFIGURE_MAXIMUM_TIMERS}
     335macro defaults to 0.
    191336
    192337@item maximum_semaphores
    193338is the maximum number of
    194339semaphores that can be concurrently active in the system.
     340When using the @code{confdefs.h} mechanism for configuring
     341an RTEMS application, the value for this field corresponds
     342to the setting of the macro @code{CONFIGURE_MAXIMUM_SEMAPHORES}.
     343If not defined by the application, then the @code{CONFIGURE_MAXIMUM_SEMAPHORES}
     344macro defaults to 0.
    195345
    196346@item maximum_message_queues
    197347is the maximum number of
    198348message queues that can be concurrently active in the system.
     349When using the @code{confdefs.h} mechanism for configuring
     350an RTEMS application, the value for this field corresponds
     351to the setting of the macro @code{CONFIGURE_MAXIMUM_MESSAGE_QUEUES}.
     352If not defined by the application, then the
     353@code{CONFIGURE_MAXIMUM_MESSAGE_QUEUES} macro defaults to 0.
    199354
    200355@item maximum_partitions
    201356is the maximum number of
    202357partitions that can be concurrently active in the system.
     358When using the @code{confdefs.h} mechanism for configuring
     359an RTEMS application, the value for this field corresponds
     360to the setting of the macro @code{CONFIGURE_MAXIMUM_PARTITIONS}.
     361If not defined by the application, then the @code{CONFIGURE_MAXIMUM_PARTITIONS}
     362macro defaults to 0.
    203363
    204364@item maximum_regions
    205365is the maximum number of regions
    206366that can be concurrently active in the system.
     367When using the @code{confdefs.h} mechanism for configuring
     368an RTEMS application, the value for this field corresponds
     369to the setting of the macro @code{CONFIGURE_MAXIMUM_REGIONS}.
     370If not defined by the application, then the @code{CONFIGURE_MAXIMUM_REGIONS}
     371macro defaults to 0.
    207372
    208373@item maximum_ports
     
    210375dual-port memory areas that can be concurrently active in the
    211376system.
     377When using the @code{confdefs.h} mechanism for configuring
     378an RTEMS application, the value for this field corresponds
     379to the setting of the macro @code{CONFIGURE_MAXIMUM_PORTS}.
     380If not defined by the application, then the @code{CONFIGURE_MAXIMUM_PORTS}
     381macro defaults to 0.
    212382
    213383@item number_of_initialization_tasks
    214384is the number of initialization tasks configured.  At least one
    215 initialization task must be configured.
     385RTEMS initialization task or POSIX initializatin must be configured
     386in order for the user's application to begin executing.
     387When using the @code{confdefs.h} mechanism for configuring
     388an RTEMS application, the user must define the
     389@code{CONFIGURE_RTEMS_INIT_TASKS_TABLE} to indicate that there
     390is one or more RTEMS initialization task.  If the application
     391only has one RTEMS initialization task, then the automatically
     392generated Initialization Task Table will be sufficient.  The following
     393macros correspond to the single initialization task:
     394 
     395@itemize @bullet
     396
     397@item @code{CONFIGURE_INIT_TASK_NAME} - is the name of the task. 
     398If this macro is not defined by the application, then this defaults
     399to the task name of @code{"UI1 "} for User Initialization Task 1.
     400
     401@item @code{CONFIGURE_INIT_TASK_STACK_SIZE} - is the stack size
     402of the single initialization task.  If this macro is not defined
     403by the application, then this defaults to @code{RTEMS_MINIMUM_STACK_SIZE}.
     404
     405@item @code{CONFIGURE_INIT_TASK_PRIORITY} - is the initial priority
     406of the single initialization task.  If this macro is not defined
     407by the application, then this defaults to 1.
     408
     409@item @code{CONFIGURE_INIT_TASK_ATTRIBUTES} - is the attributes
     410of the single initialization task.  If this macro is not defined
     411by the application, then this defaults to @code{RTEMS_DEFAULT_ATTRIBUTES}.
     412
     413@item @code{CONFIGURE_INIT_TASK_ENTRY_POINT} - is the entry point
     414of the single initialization task.  If this macro is not defined
     415by the application, then this defaults to the C language routine
     416@code{Init}.
     417
     418@item @code{CONFIGURE_INIT_TASK_INITIAL_MODES} - is the initial execution
     419modes of the single initialization task.  If this macro is not defined
     420by the application, then this defaults to @code{RTEMS_NO_PREEMPT}.
     421
     422@item @code{CONFIGURE_INIT_TASK_ARGUMENTS} - is the argument passed to the
     423of the single initialization task.  If this macro is not defined
     424by the application, then this defaults to 0.
     425
     426
     427@end itemize
     428
     429
     430has the option to have
     431 value for this field corresponds
     432to the setting of the macro @code{}.
    216433
    217434@item User_initialization_tasks_table
     
    219436information needed to create and start each of the
    220437initialization tasks.  The format of this table will be discussed below.
     438When using the @code{confdefs.h} mechanism for configuring
     439an RTEMS application, the value for this field corresponds
     440to the setting of the macro @code{CONFIGURE_EXECUTIVE_RAM_WORK_AREA}.
    221441
    222442@end table
     
    295515can be concurrently active (created) in the system including
    296516initialization threads.
     517When using the @code{confdefs.h} mechanism for configuring
     518an RTEMS application, the value for this field corresponds
     519to the setting of the macro @code{CONFIGURE_MAXIMUM_POSIX_THREADS}.
     520If not defined by the application, then the
     521@code{CONFIGURE_MAXIMUM_POSIX_THREADS} macro defaults to 10.
    297522
    298523@item maximum_mutexes
    299524is the maximum number of mutexes that can be concurrently
    300525active in the system.
     526When using the @code{confdefs.h} mechanism for configuring
     527an RTEMS application, the value for this field corresponds
     528to the setting of the macro @code{CONFIGURE_MAXIMUM_POSIX_MUTEXES}.
     529If not defined by the application, then the
     530@code{CONFIGURE_MAXIMUM_POSIX_MUTEXES} macro defaults to 0.
    301531
    302532@item maximum_condition_variables
    303533is the maximum number of condition variables that can be
    304534concurrently active in the system.
     535When using the @code{confdefs.h} mechanism for configuring
     536an RTEMS application, the value for this field corresponds
     537to the setting of the macro @code{CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES}.
     538If not defined by the application, then the
     539@code{CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES} macro defaults to 0.
    305540
    306541@item maximum_keys
    307542is the maximum number of keys that can be concurrently active in the system.
     543When using the @code{confdefs.h} mechanism for configuring
     544an RTEMS application, the value for this field corresponds
     545to the setting of the macro @code{CONFIGURE_MAXIMUM_POSIX_KEYS}.
     546If not defined by the application, then the
     547@code{CONFIGURE_MAXIMUM_POSIX_KEYS} macro defaults to 0.
    308548
    309549@item maximum_timers
    310550is the maximum number of POSIX timers that can be concurrently active
    311551in the system.
     552When using the @code{confdefs.h} mechanism for configuring
     553an RTEMS application, the value for this field corresponds
     554to the setting of the macro @code{CONFIGURE_MAXIMUM_POSIX_TIMERS}.
     555If not defined by the application, then the
     556@code{CONFIGURE_MAXIMUM_POSIX_TIMERS} macro defaults to 0.
    312557
    313558@item maximum_queued_signals
    314559is the maximum number of queued signals that can be concurrently
    315560pending in the system.
     561When using the @code{confdefs.h} mechanism for configuring
     562an RTEMS application, the value for this field corresponds
     563to the setting of the macro @code{CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS}.
     564If not defined by the application, then the
     565@code{CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS} macro defaults to 0.
    316566
    317567@item number_of_initialization_threads
    318568is the number of initialization threads configured.  At least one
    319569initialization threads must be configured.
     570When using the @code{confdefs.h} mechanism for configuring
     571an RTEMS application, the user must define the
     572@code{CONFIGURE_POSIX_INIT_THREAD_TABLE} to indicate that there
     573is one or more POSIX initialization thread.  If the application
     574only has one POSIX initialization thread, then the automatically
     575generated POSIX Initialization Thread Table will be sufficient.  The following
     576macros correspond to the single initialization task:
     577
     578@itemize @bullet
     579
     580@item @code{CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT} - is the entry
     581point of the thread.  If this macro is not defined by the application,
     582then this defaults to the C routine @code{POSIX_Init}.
     583
     584@item @code{CONFIGURE_POSIX_INIT_TASK_STACK_SIZE} - is the stack size
     585of the single initialization thread.  If this macro is not defined
     586by the application, then this defaults to
     587@code{(RTEMS_MINIMUM_STACK_SIZE * 2)}.
     588
     589@end itemize
    320590 
    321591@item User_initialization_threads_table
     
    323593information needed to create and start each of the initialization threads. 
    324594The format of each entry in this table is defined in the
    325 posix_initialization_threads_table @value{STRUCTURE}.
     595@code{posix_initialization_threads_table} @value{STRUCTURE}.
     596When using the @code{confdefs.h} mechanism for configuring
     597an RTEMS application, the value for this field corresponds
     598to the address of the @code{POSIX_Initialization_threads} structure.
    326599
    327600@end table
     
    337610target processor.
    338611
     612The @code{confdefs.h} mechanism does not support generating this
     613table.  It is normally filled in by the Board Support Package.
     614
    339615@section Initialization Task Table
    340616
     
    344620task the user wishes to create and start.  The fields of this
    345621data structure directly correspond to arguments to the
    346 task_create and task_start directives.  The number of entries is
    347 found in the number_of_initialization_tasks entry in the
    348 Configuration Table.  The format of each entry in the
     622@code{@value{DIRPREFIX}task_create} and
     623@code{@value{DIRPREFIX}task_start} directives.  The number of entries is
     624found in the @code{number_of_initialization_tasks} entry in the
     625Configuration Table. 
     626
     627The format of each entry in the
    349628Initialization Task Table is defined in the following @value{LANGUAGE}
    350629@value{STRUCTURE}:
     
    719998communications layer provided by the user.  The address of the
    720999Multiprocessor Configuration Table should be placed in the
    721 User_multiprocessing_table entry in the primary Configuration
     1000@code{User_multiprocessing_table} entry in the primary Configuration
    7221001Table.  Further details regarding many of the entries in the
    7231002Multiprocessor Configuration Table will be provided in the
    724 Multiprocessing chapter.  The format of the Multiprocessor
    725 Configuration Table is defined in
     1003Multiprocessing chapter. 
     1004
     1005
     1006When using the @code{confdefs.h} mechanism for configuring
     1007an RTEMS application, the macro @code{CONFIGURE_MPTEST} must
     1008be defined to automatically generate the Multiprocessor Configuration Table.
     1009If @code{CONFIGURE_MPTEST}, is not defined, then a NULL pointer
     1010is configured as the address of this table.
     1011
     1012The format of the Multiprocessor Configuration Table is defined in
    7261013the following @value{LANGUAGE} @value{STRUCTURE}:
    7271014
     
    7661053represent broadcasted packets.  Thus, it is recommended that
    7671054node numbers start at one and increase sequentially.
     1055When using the @code{confdefs.h} mechanism for configuring
     1056an RTEMS application, the value for this field corresponds
     1057to the setting of the macro @code{CONFIGURE_MP_NODE_NUMBER}.
     1058If not defined by the application, then the @code{CONFIGURE_MP_NODE_NUMBER}
     1059macro defaults to the value of the @code{NODE_NUMBER} macro which is
     1060set on the compiler command line by the RTEMS Multiprocessing Test Suites.
     1061
    7681062
    7691063@item maximum_nodes
    7701064is the number of processor nodes in the system.
     1065When using the @code{confdefs.h} mechanism for configuring
     1066an RTEMS application, the value for this field corresponds
     1067to the setting of the macro @code{CONFIGURE_MP_MAXIMUM_NODES}.
     1068If not defined by the application, then the @code{CONFIGURE_MP_MAXIMUM_NODES}
     1069macro defaults to the value 2.
    7711070
    7721071@item maximum_global_objects
     
    7751074same on all nodes in the system, then a fatal error is generated
    7761075to inform the user that the system is inconsistent.
     1076When using the @code{confdefs.h} mechanism for configuring
     1077an RTEMS application, the value for this field corresponds
     1078to the setting of the macro @code{CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS}.
     1079If not defined by the application, then the
     1080@code{CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS} macro defaults to the value 32.
     1081
    7771082
    7781083@item maximum_proxies
     
    7821087on a remote object.  Proxies are used in situations in which delayed
    7831088interaction is required with a remote node.
     1089When using the @code{confdefs.h} mechanism for configuring
     1090an RTEMS application, the value for this field corresponds
     1091to the setting of the macro @code{CONFIGURE_MP_MAXIMUM_PROXIES}.
     1092If not defined by the application, then the @code{CONFIGURE_MP_MAXIMUM_PROXIES}
     1093macro defaults to the value 32.
     1094
    7841095
    7851096@item User_mpci_table
     
    7901101entries configured.  The format of this table and details
    7911102regarding its entries can be found in the next section.
     1103When using the @code{confdefs.h} mechanism for configuring
     1104an RTEMS application, the value for this field corresponds
     1105to the setting of the macro @code{CONFIGURE_MP_MPCI_TABLE_POINTER}.
     1106If not defined by the application, then the
     1107@code{CONFIGURE_MP_MPCI_TABLE_POINTER} macro defaults to the
     1108address of the table named @code{MPCI_table}.
     1109
    7921110
    7931111@end table
    7941112
    7951113@section Multiprocessor Communications Interface Table
     1114
     1115This table defines the set of callouts that must be provided by
     1116an Multiprocessor Communications Interface implementation. 
     1117
     1118When using the @code{confdefs.h} mechanism for configuring
     1119an RTEMS application, the name of this table is assumed
     1120to be @code{MPCI_table} unless the application sets
     1121the @code{CONFIGURE_MP_MPCI_TABLE_POINTER} when configuring a
     1122multiprocessing system.
    7961123
    7971124The format of this table is defined in
     
    8741201
    8751202Since memory is a critical resource in many real-time
    876 embedded systems, RTEMS was specifically designed to allow
    877 unused managers to be excluded from the run-time environment.
     1203embedded systems, the RTEMS Classic API was specifically designed to allow
     1204unused managers to be forcibly excluded from the run-time environment.
    8781205This allows the application designer the flexibility to tailor
    8791206RTEMS to most efficiently meet system requirements while still
     
    8861213that enough memory is allocated for future versions of RTEMS,
    8871214the application designer should round these memory requirements
    888 up.  The following managers may be optionally excluded:
     1215up.  The following Classic API managers may be optionally excluded:
    8891216
    8901217@itemize @bullet
     
    9011228@end itemize
    9021229
     1230RTEMS is designed to be built and installed as a library
     1231that is linked into the application.  As such, much of
     1232RTEMS is implemented in such a way that there is a single
     1233entry point per source file.  This avoids having the
     1234linker being forced to pull large object files in their
     1235entirety into an application when the application references
     1236a single symbol.
     1237
    9031238RTEMS based applications must somehow provide memory
    9041239for RTEMS' code and data space.  Although RTEMS' data space must
     
    9101245for a specific target processor.
    9111246
    912 All RTEMS data variables and routine names used by
     1247All private RTEMS data variables and routine names used by
    9131248RTEMS begin with the underscore ( _ ) character followed by an
    9141249upper-case letter.  If RTEMS is linked with an application, then
     
    9271262and floating point context areas are dynamically allocated from
    9281263the RTEMS RAM Workspace.
     1264
     1265The @code{confdefs.h} mechanism calcalutes the size
     1266of the RTEMS RAM Workspace automatically.  It assumes that
     1267all tasks are floating point and that all will be allocated
     1268the miminum stack space.  This calculation also automatically
     1269includes the memory that will be allocated for internal use
     1270by RTEMS.  The following macros may be set
     1271by the application to make the calculation
     1272of memory required more accurate:
     1273
     1274@itemize @bullet
     1275
     1276CONFIGURE_MEMORY_OVERHEAD
     1277CONFIGURE_EXTRA_TASK_STACKS
     1278
     1279@end itemize
    9291280
    9301281The starting address of the RTEMS RAM Workspace must
Note: See TracChangeset for help on using the changeset viewer.