RTEMS CPU Kit with SuperCore
Modules | Macros
RTEMS Configuration

This module contains all RTEMS Configuration parameters. More...

Collaboration diagram for RTEMS Configuration:

Modules

 Filesystems and Mount Table Configuration
 Defines to control the file system:
 
 Scheduler configuration
 The scheduler configuration allows an application to select the scheduling policy to use.
 
 Configuration Helpers
 This module contains items which are used internally to ease the configuration calculations.
 
 Classic API Configuration
 This macro specifies that the user wants to use unlimited objects for any classic or posix objects that have not already been given resource limits.
 
 General System Configuration
 This module contains configuration parameters that are independent of any API but impact general system configuration.
 

Macros

#define CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY   FALSE
 Should the RTEMS Workspace and C Program Heap be cleared automatically at system start up?
 
#define NULL_DRIVER_TABLE_ENTRY   { NULL, NULL, NULL, NULL, NULL, NULL }
 This is an empty device driver slot.
 
#define CONFIGURE_MAXIMUM_DRIVERS
 This specifies the maximum number of device drivers that can be installed in the system at one time. More...
 
#define CONFIGURE_LIBBLOCK_TASKS   0
 This specifies the number of libblock tasks. More...
 
#define CONFIGURE_LIBBLOCK_TASK_EXTRA_STACKS   0
 This specifies the extra stack space configured for libblock tasks. More...
 
#define CONFIGURE_LIBBLOCK_SEMAPHORES   0
 This specifies the number of Classic API semaphores needed by libblock. More...
 
#define CONFIGURE_LIBBLOCK_POSIX_MUTEXES   0
 This specifies the number of POSIX Mutexes needed by libblock. More...
 
#define CONFIGURE_LIBBLOCK_POSIX_CONDITION_VARIABLES   0
 This specifies the number of POSIX Condition Variables needed by libblock.
 
#define CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK   0
 This defines the extra stack space required for the MPCI server thread.
 
#define CONFIGURE_TIMER_FOR_SHARED_MEMORY_DRIVER   0
 This defines the timers required for the shared memory driver in a multiprocessing configuration.
 
#define CONFIGURE_GNAT_MUTEXES   0
 This defines he number of POSIX mutexes GNAT needs. More...
 
#define CONFIGURE_MAXIMUM_ADA_TASKS   0
 This defines he number of Ada tasks needed by the application. More...
 
#define CONFIGURE_MAXIMUM_FAKE_ADA_TASKS   0
 This defines he number of non-Ada tasks/threads that will invoke Ada subprograms or functions.
 
#define CONFIGURE_GO_INIT_MUTEXES   0
 This specifies the number of mutexes required by the Go run-time for its own use. More...
 
#define CONFIGURE_GO_INIT_CONDITION_VARIABLES   0
 This specifies the number of condition variables required by the Go run-time for its own use. More...
 
#define CONFIGURE_MAXIMUM_GOROUTINES   0
 This specifies the maximum number of Go co-routines. More...
 
#define CONFIGURE_GOROUTINES_TASK_VARIABLES   0
 This specifies the maximum number of Go per-task variables required. More...
 
#define CONFIGURE_MAXIMUM_GO_CHANNELS   0
 This specifies the maximum number of Go channels required. More...
 

Detailed Description

This module contains all RTEMS Configuration parameters.

This modules includes configuration parameters for applications which use GCC Go.

This modules includes configuration parameters for applications which use GNAT/RTEMS.

This module contains the parameters related to the Multiprocessing configuration of RTEMS.

This module contains parameters related to the LIBBLOCK buffering and caching subsystem.

This group contains parameters related to generating a Device Driver Table.

This group contains the elements needed to define the Classic API Initialization Tasks Table.

This module contains parameters related to thread aand interrupt stacks.

This module contains configuration parameters related to the set of IDLE threads.

The model is to estimate the memory required for each configured item and sum those estimates. The estimate can be too high or too low for a variety of reasons:

Reasons estimate is too high:

Reasons estimate is too low:

NOTE: Eventually this may be able to take into account some of the above. This procedure has evolved from just enough to support the RTEMS Test Suites into something that can be used remarkably reliably by most applications.

On a uniprocessor system, there is one IDLE thread. On an SMP system, there is one for each core.

Default User Initialization Task Table. This table guarantees that one user initialization table is defined.

Default Device Driver Table. Each driver needed by the test is explicitly choosen by the application. There is always a null driver entry.

It requires tasks to swap out data to be written to non-volatile storage.

In a single processor or SMP configuration, only two parameters are needed and they are defaulted. The user should not have to specify any parameters.

GNAT implements each Ada task as a POSIX thread.

Macro Definition Documentation

◆ CONFIGURE_GNAT_MUTEXES

#define CONFIGURE_GNAT_MUTEXES   0

This defines he number of POSIX mutexes GNAT needs.

◆ CONFIGURE_GO_INIT_CONDITION_VARIABLES

#define CONFIGURE_GO_INIT_CONDITION_VARIABLES   0

This specifies the number of condition variables required by the Go run-time for its own use.

This is an internal parameter.

◆ CONFIGURE_GO_INIT_MUTEXES

#define CONFIGURE_GO_INIT_MUTEXES   0

This specifies the number of mutexes required by the Go run-time for its own use.

This is an internal parameter.

◆ CONFIGURE_GOROUTINES_TASK_VARIABLES

#define CONFIGURE_GOROUTINES_TASK_VARIABLES   0

This specifies the maximum number of Go per-task variables required.

◆ CONFIGURE_LIBBLOCK_POSIX_MUTEXES

#define CONFIGURE_LIBBLOCK_POSIX_MUTEXES   0

This specifies the number of POSIX Mutexes needed by libblock.

◆ CONFIGURE_LIBBLOCK_SEMAPHORES

#define CONFIGURE_LIBBLOCK_SEMAPHORES   0

This specifies the number of Classic API semaphores needed by libblock.

◆ CONFIGURE_LIBBLOCK_TASK_EXTRA_STACKS

#define CONFIGURE_LIBBLOCK_TASK_EXTRA_STACKS   0

This specifies the extra stack space configured for libblock tasks.

◆ CONFIGURE_LIBBLOCK_TASKS

#define CONFIGURE_LIBBLOCK_TASKS   0

This specifies the number of libblock tasks.

◆ CONFIGURE_MAXIMUM_ADA_TASKS

#define CONFIGURE_MAXIMUM_ADA_TASKS   0

This defines he number of Ada tasks needed by the application.

◆ CONFIGURE_MAXIMUM_DRIVERS

#define CONFIGURE_MAXIMUM_DRIVERS

This specifies the maximum number of device drivers that can be installed in the system at one time.

It must account for both the statically and dynamically installed drivers.

◆ CONFIGURE_MAXIMUM_GO_CHANNELS

#define CONFIGURE_MAXIMUM_GO_CHANNELS   0

This specifies the maximum number of Go channels required.

◆ CONFIGURE_MAXIMUM_GOROUTINES

#define CONFIGURE_MAXIMUM_GOROUTINES   0

This specifies the maximum number of Go co-routines.