Component: Fixed-Size Memorypools

Macro name

CYGPKG_UITRON_MEMPOOLFIXED

Type

Boolean

Description

µITRON supports memory pools for dynamic, task-safe memory allocation. Two kinds are supported, fixed-size and variable-size. There may be multiple of each type of pool, each with differing characteristics. This option controls whether there are any fixed-size memorypools in the system. A fixed-size memorypool allocates blocks of memory of its preset fixed size and none other.

Option: Number of fixed-size memory pools

Macro name

CYGNUM_UITRON_MEMPOOLFIXED

Type

Count

Description

The number of µITRON Fixed-Size Memorypools present in the system. Valid Fixed-Size Memorypool IDs will range from 1 to this value.

Component: Support create and delete

Macro name

CYGPKG_UITRON_MEMPOOLFIXED_CREATE_DELETE

Type

Boolean

Description

Support fixed-size memory pool create and delete operations (cre_mpf, del_mpf). Otherwise all fixed mempools are created, up to the number specified above.

Option: Number of fixed mempools created initially

Macro name

CYGNUM_UITRON_MEMPOOLFIXED_INITIALLY

Type

Count

Description

The number of fixed mempools initially created. This number should not be more than the number of fixed mempools in the system, though setting it to a large value to mean 'all' is acceptable. Initially, only fixed mempools numbered from 1 to this number exist; higher numbered ones must be created before use. Whilst all mempools must be initialized to tell the system what memory to use for each pool, it is only useful to initialize the blocksize of fixed mempools up to this number; the blocksize for higher numbered ones will be defined when they are created.

Option: Externs for initialization

Macro name

CYGDAT_UITRON_MEMPOOLFIXED_EXTERNS

Type

Multiline

Description

Fixed mempool initializers may refer to external objects such as memory for the pool to manage. Use this option to define or declare any external objects needed by the pool's static initializer below. Example: create some memory for a mempool using 'static char fpool1[2000];' to set up a chunk of memory of 2000 bytes. Note: this option is invoked in the 'outermost' context of C++ source, where global/static objects are created; it should contain valid, self-contained, C++ source.

Option: Static initializers

Macro name

CYGDAT_UITRON_MEMPOOLFIXED_INITIALIZERS

Type

Multiline

Description

Fixed block memory pools should be statically initialized: enter a list of initializers separated by commas, one per line. An initializer is 'CYG_UIT_MEMPOOLFIXED(ADDR,SIZE,BLOCK)' where addr is the address of memory to manage, size is the total size of that memory, and block is the block size for allocation by the pool. If create and delete operations are supported, initializers of the form 'CYG_UIT_MEMPOOLFIXED_NOEXS(ADDR,SIZE)' should be used for pools which are not initially created, to tell the system what memory to use for each pool. Note: this option is invoked in the context of a C++ array initializer, between curly brackets. Ensure that the number of initializers here exactly matches the total number of fixed pools specified.