forked from Imagelibrary/rtems
Updated to reflect lower confdefs.h values and new control
over number of termios ports.
This commit is contained in:
@@ -62,6 +62,7 @@ a message queue and a time slice of 50 milliseconds is configured:
|
|||||||
#define CONFIGURE_MICROSECONDS_PER_TICK 1000 /* 1 millisecond */
|
#define CONFIGURE_MICROSECONDS_PER_TICK 1000 /* 1 millisecond */
|
||||||
#define CONFIGURE_TICKS_PER_TIMESLICE 50 /* 50 milliseconds */
|
#define CONFIGURE_TICKS_PER_TIMESLICE 50 /* 50 milliseconds */
|
||||||
|
|
||||||
|
#define CONFIGURE_MAXIMUM_TASKS 4
|
||||||
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||||
@end group
|
@end group
|
||||||
@end example
|
@end example
|
||||||
@@ -81,6 +82,46 @@ application that includes @code{confdefs.h} or the symbol
|
|||||||
table will be instantiated multiple times and linking errors
|
table will be instantiated multiple times and linking errors
|
||||||
produced.
|
produced.
|
||||||
|
|
||||||
|
The user should be aware that the defaults are intentionally
|
||||||
|
set as low as possible. By default, no application resources
|
||||||
|
are configured. The @code{confdefs.h} file ensures that
|
||||||
|
at least one application tasks or thread is configured
|
||||||
|
and that at least one of the initialization task/thread
|
||||||
|
tables is configured.
|
||||||
|
|
||||||
|
The @code{confdefs.h} file estimates the amount of
|
||||||
|
memory required for the RTEMS Executive Workspace. This
|
||||||
|
estimate is only as accurate as the information given
|
||||||
|
to @code{confdefs.h} and may be either too high or too
|
||||||
|
low for a variety of reasons. Some of the reasons that
|
||||||
|
@code{confdefs.h} may reserve too much memory for RTEMS
|
||||||
|
are:
|
||||||
|
|
||||||
|
@itemize @bullet
|
||||||
|
@item All tasks/threads are assumed to be floating point.
|
||||||
|
@end itemize
|
||||||
|
|
||||||
|
Conversely, there are many more reasons, the resource
|
||||||
|
estimate could be too low:
|
||||||
|
|
||||||
|
@itemize @bullet
|
||||||
|
@item Task/thread stacks greater than minimum size must be
|
||||||
|
accounted for explicitly by developer.
|
||||||
|
|
||||||
|
@item Memory for messages is not included.
|
||||||
|
|
||||||
|
@item Device driver requirements are not included.
|
||||||
|
|
||||||
|
|
||||||
|
@item Network stack requirements are not included.
|
||||||
|
|
||||||
|
@item Requirements for add-on libraries are not included.
|
||||||
|
@end itemize
|
||||||
|
|
||||||
|
In general, @code{confdefs.h} is very accurate when given
|
||||||
|
enough information. However, it is quite easy to use
|
||||||
|
a library and not account for its resources.
|
||||||
|
|
||||||
The following subsection list all of the constants which can be
|
The following subsection list all of the constants which can be
|
||||||
set by the user.
|
set by the user.
|
||||||
|
|
||||||
@@ -95,7 +136,22 @@ related configuration parameters supported by
|
|||||||
@item @code{CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS} is set to the
|
@item @code{CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS} is set to the
|
||||||
maximum number of files that can be concurrently open. Libio requires
|
maximum number of files that can be concurrently open. Libio requires
|
||||||
a Classic RTEMS semaphore for each file descriptor as well as one
|
a Classic RTEMS semaphore for each file descriptor as well as one
|
||||||
global one. The default value is 20 file descriptors.
|
global one. The default value is 3 file descriptors which is
|
||||||
|
enough to support standard input, output, and error output.
|
||||||
|
|
||||||
|
@findex CONFIGURE_TERMIOS_DISABLED
|
||||||
|
@item @code{CONFIGURE_TERMIOS_DISABLED} is defined if the
|
||||||
|
software implementing POSIX termios functionality is
|
||||||
|
not going to be used by this application. By default, this
|
||||||
|
is not defined and resources are reserved for the
|
||||||
|
termios functionality.
|
||||||
|
|
||||||
|
@findex CONFIGURE_NUMBER_OF_TERMIOS_PORTS
|
||||||
|
@item @code{CONFIGURE_NUMBER_OF_TERMIOS_PORTS} is set to the
|
||||||
|
number of ports using the termios functionality. Each
|
||||||
|
concurrently active termios port requires resources.
|
||||||
|
By default, this is set to 1 so a console port can be
|
||||||
|
used.
|
||||||
|
|
||||||
@findex CONFIGURE_HAS_OWN_MOUNT_TABLE
|
@findex CONFIGURE_HAS_OWN_MOUNT_TABLE
|
||||||
@item @code{CONFIGURE_HAS_OWN_MOUNT_TABLE} is defined when the
|
@item @code{CONFIGURE_HAS_OWN_MOUNT_TABLE} is defined when the
|
||||||
@@ -106,15 +162,16 @@ entries pointed to by the global variable
|
|||||||
entries in this table is in an integer variable named
|
entries in this table is in an integer variable named
|
||||||
@code{rtems_filesystem_mount_table_t}.
|
@code{rtems_filesystem_mount_table_t}.
|
||||||
|
|
||||||
@findex CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM
|
@findex CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
|
||||||
@item @code{CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM} is defined
|
@item @code{CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM} is defined
|
||||||
if the application wishes to use a minimal functionality subset
|
if the application wishes to use the full functionality
|
||||||
of the In-Memory FileSystem (IMFS). The miniIMFS is comparable
|
IMFS. By default, the miniIMFS is used. The miniIMFS
|
||||||
|
is a minimal functionality subset of the In-Memory
|
||||||
|
FileSystem (IMFS). The miniIMFS is comparable
|
||||||
in functionality to the pseudo-filesystem name space provided
|
in functionality to the pseudo-filesystem name space provided
|
||||||
before RTEMS release 4.5.0. The miniIMFS supports
|
before RTEMS release 4.5.0. The miniIMFS supports
|
||||||
only directories and device nodes and is smaller in executable
|
only directories and device nodes and is smaller in executable
|
||||||
code size than the full IMFS. By default, this is not
|
code size than the full IMFS.
|
||||||
defined and the full functionality IMFS is used.
|
|
||||||
|
|
||||||
@findex STACK_CHECKER_ON
|
@findex STACK_CHECKER_ON
|
||||||
@item @code{STACK_CHECKER_ON} is defined when the application
|
@item @code{STACK_CHECKER_ON} is defined when the application
|
||||||
@@ -141,7 +198,10 @@ tables.
|
|||||||
size of the interrupt stack. The interrupt stack size is
|
size of the interrupt stack. The interrupt stack size is
|
||||||
usually set by the BSP but since this memory is allocated
|
usually set by the BSP but since this memory is allocated
|
||||||
from the RTEMS Ram Workspace, it must be accounted for. The
|
from the RTEMS Ram Workspace, it must be accounted for. The
|
||||||
default for this field is RTEMS_MINIMUM_STACK_SIZE.
|
default for this field is RTEMS_MINIMUM_STACK_SIZE. [NOTE:
|
||||||
|
At this time, changing this constant does NOT change the
|
||||||
|
size of the interrupt stack, only the amount of memory
|
||||||
|
reserved for it.]
|
||||||
|
|
||||||
@findex CONFIGURE_EXECUTIVE_RAM_WORK_AREA
|
@findex CONFIGURE_EXECUTIVE_RAM_WORK_AREA
|
||||||
@item @code{CONFIGURE_EXECUTIVE_RAM_WORK_AREA} is the base
|
@item @code{CONFIGURE_EXECUTIVE_RAM_WORK_AREA} is the base
|
||||||
@@ -287,7 +347,7 @@ system configuration parameters supported by @code{confdefs.h}.
|
|||||||
@findex CONFIGURE_MAXIMUM_TASKS
|
@findex CONFIGURE_MAXIMUM_TASKS
|
||||||
@item @code{CONFIGURE_MAXIMUM_TASKS} is the maximum number of
|
@item @code{CONFIGURE_MAXIMUM_TASKS} is the maximum number of
|
||||||
Classic API tasks that can be concurrently active.
|
Classic API tasks that can be concurrently active.
|
||||||
The default for this field is 10.
|
The default for this field is 0.
|
||||||
|
|
||||||
@findex CONFIGURE_MAXIMUM_TIMERS
|
@findex CONFIGURE_MAXIMUM_TIMERS
|
||||||
@item @code{CONFIGURE_MAXIMUM_TIMERS} is the maximum number of
|
@item @code{CONFIGURE_MAXIMUM_TIMERS} is the maximum number of
|
||||||
@@ -415,7 +475,7 @@ is enabled at configure time using the @code{--enable-posix} option.
|
|||||||
@findex CONFIGURE_MAXIMUM_POSIX_THREADS
|
@findex CONFIGURE_MAXIMUM_POSIX_THREADS
|
||||||
@item @code{CONFIGURE_MAXIMUM_POSIX_THREADS} is the maximum number of
|
@item @code{CONFIGURE_MAXIMUM_POSIX_THREADS} is the maximum number of
|
||||||
POSIX API threads that can be concurrently active.
|
POSIX API threads that can be concurrently active.
|
||||||
The default is 10.
|
The default is 0.
|
||||||
|
|
||||||
@findex CONFIGURE_MAXIMUM_POSIX_MUTEXES
|
@findex CONFIGURE_MAXIMUM_POSIX_MUTEXES
|
||||||
@item @code{CONFIGURE_MAXIMUM_POSIX_MUTEXES} is the maximum number of
|
@item @code{CONFIGURE_MAXIMUM_POSIX_MUTEXES} is the maximum number of
|
||||||
@@ -503,7 +563,7 @@ is enabled at configure time using the @code{--enable-itron} option.
|
|||||||
@item @code{CONFIGURE_MAXIMUM_ITRON_TASKS}
|
@item @code{CONFIGURE_MAXIMUM_ITRON_TASKS}
|
||||||
is the maximum number of
|
is the maximum number of
|
||||||
ITRON API tasks that can be concurrently active.
|
ITRON API tasks that can be concurrently active.
|
||||||
The default is 10.
|
The default is 0.
|
||||||
|
|
||||||
@findex CONFIGURE_MAXIMUM_ITRON_SEMAPHORES
|
@findex CONFIGURE_MAXIMUM_ITRON_SEMAPHORES
|
||||||
@item @code{CONFIGURE_MAXIMUM_ITRON_SEMAPHORES}
|
@item @code{CONFIGURE_MAXIMUM_ITRON_SEMAPHORES}
|
||||||
|
|||||||
@@ -74,6 +74,8 @@ rtems_task user_application(rtems_task_argument argument)
|
|||||||
#define CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER /* for stdio */
|
#define CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER /* for stdio */
|
||||||
#define CONFIGURE_TEST_NEEDS_CLOCK_DRIVER /* for time services */
|
#define CONFIGURE_TEST_NEEDS_CLOCK_DRIVER /* for time services */
|
||||||
|
|
||||||
|
#define CONFIGURE_MAXIMUM_TASKS 2
|
||||||
|
|
||||||
#define CONFIGURE_INIT_TASK_NAME rtems_build_name( 'E', 'X', 'A', 'M' )
|
#define CONFIGURE_INIT_TASK_NAME rtems_build_name( 'E', 'X', 'A', 'M' )
|
||||||
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user