RTEMS Logo

RTEMS 4.10.2 On-Line Library


Configuring a System Determining Memory Requirements

PREV UP NEXT Bookshelf RTEMS C User's Guide

23.12: Determining Memory Requirements

Since memory is a critical resource in many real-time embedded systems, the RTEMS Classic API was specifically designed to allow unused managers to be forcibly excluded from the run-time environment. This allows the application designer the flexibility to tailor RTEMS to most efficiently meet system requirements while still satisfying even the most stringent memory constraints. As result, the size of the RTEMS executive is application dependent.

It is not necessary for RTEMS Application Developers to calculate the amount of memory required for the RTEMS Workspace. This is done automatically by <rtems/confdefs.h>. See Configuring a System Sizing the RTEMS RAM Workspace for more details on how this works. In the event, you are interested in the memory required for an instance of a particular RTEMS object, please run the test spsize on your target board.

RTEMS is built to be a library and any routines that you do not directly or indirectly require in your application will NOT be included in your executable image. However, some managers may be explicitly excluded and no attempt to create these instances of these objects will succeed even if they are configured. The following Classic API managers may be optionally excluded:

RTEMS is designed to be built and installed as a library that is linked into the application. As such, much of RTEMS is implemented in such a way that there is a single entry point per source file. This avoids having the linker being forced to pull large object files in their entirety into an application when the application references a single symbol. In the event you discover an RTEMS method that is included in your executable but never entered, please let us know. It might be an opportunity to break a dependency and shrink many RTEMS applications.

RTEMS based applications must somehow provide memory for RTEMS' code and data space. Although RTEMS' data space must be in RAM, its code space can be located in either ROM or RAM. In addition, the user must allocate RAM for the RTEMS RAM Workspace. The size of this area is application dependent and can be calculated using the formula provided in the Memory Requirements chapter of the Applications Supplement document for a specific target processor.

All private RTEMS data variables and routine names used by RTEMS begin with the underscore ( _ ) character followed by an upper-case letter. If RTEMS is linked with an application, then the application code should NOT contain any symbols which begin with the underscore character and followed by an upper-case letter to avoid any naming conflicts. All RTEMS directive names should be treated as reserved words.


PREV UP NEXT Bookshelf RTEMS C User's Guide

Copyright © 1988-2008 OAR Corporation