ChibiOS/NIL  3.2.2
Configuration
Collaboration diagram for Configuration:

Detailed Description

Kernel related settings and hooks.

Kernel parameters and options

#define CH_CFG_NUM_THREADS   3
 Number of user threads in the application. More...
 

System timer settings

#define CH_CFG_ST_RESOLUTION   32
 System time counter resolution. More...
 
#define CH_CFG_ST_FREQUENCY   1000
 System tick frequency. More...
 
#define CH_CFG_ST_TIMEDELTA   0
 Time delta constant for the tick-less mode. More...
 

Subsystem options

#define CH_CFG_USE_SEMAPHORES   TRUE
 Semaphores APIs. More...
 
#define CH_CFG_USE_MUTEXES   FALSE
 Mutexes APIs. More...
 
#define CH_CFG_USE_EVENTS   TRUE
 Events Flags APIs. More...
 
#define CH_CFG_USE_MAILBOXES   TRUE
 Mailboxes APIs. More...
 
#define CH_CFG_USE_MEMCORE   TRUE
 Core Memory Manager APIs. More...
 
#define CH_CFG_USE_HEAP   TRUE
 Heap Allocator APIs. More...
 
#define CH_CFG_USE_MEMPOOLS   TRUE
 Memory Pools Allocator APIs. More...
 
#define CH_CFG_USE_OBJ_FIFOS   TRUE
 Objects FIFOs APIs. More...
 
#define CH_CFG_USE_PIPES   TRUE
 Pipes APIs. More...
 
#define CH_CFG_MEMCORE_SIZE   0
 Managed RAM size. More...
 

Objects factory options

#define CH_CFG_USE_FACTORY   TRUE
 Objects Factory APIs. More...
 
#define CH_CFG_FACTORY_MAX_NAMES_LENGTH   8
 Maximum length for object names. More...
 
#define CH_CFG_FACTORY_OBJECTS_REGISTRY   TRUE
 Enables the registry of generic objects. More...
 
#define CH_CFG_FACTORY_GENERIC_BUFFERS   TRUE
 Enables factory for generic buffers. More...
 
#define CH_CFG_FACTORY_SEMAPHORES   TRUE
 Enables factory for semaphores. More...
 
#define CH_CFG_FACTORY_MAILBOXES   TRUE
 Enables factory for mailboxes. More...
 
#define CH_CFG_FACTORY_OBJ_FIFOS   TRUE
 Enables factory for objects FIFOs. More...
 
#define CH_CFG_FACTORY_PIPES   TRUE
 Enables factory for Pipes. More...
 

Debug options

#define CH_DBG_STATISTICS   FALSE
 Debug option, kernel statistics. More...
 
#define CH_DBG_SYSTEM_STATE_CHECK   TRUE
 Debug option, system state check. More...
 
#define CH_DBG_ENABLE_CHECKS   TRUE
 Debug option, parameters checks. More...
 
#define CH_DBG_ENABLE_ASSERTS   TRUE
 System assertions. More...
 
#define CH_DBG_ENABLE_STACK_CHECK   TRUE
 Stack check. More...
 

Kernel hooks

#define CH_CFG_SYSTEM_INIT_HOOK()
 System initialization hook. More...
 
#define CH_CFG_THREAD_EXT_FIELDS   /* Add threads custom fields here.*/
 Threads descriptor structure extension. More...
 
#define CH_CFG_THREAD_EXT_INIT_HOOK(tr)
 Threads initialization hook. More...
 
#define CH_CFG_IDLE_ENTER_HOOK()
 Idle thread enter hook. More...
 
#define CH_CFG_IDLE_LEAVE_HOOK()
 Idle thread leave hook. More...
 
#define CH_CFG_SYSTEM_HALT_HOOK(reason)
 System halt hook. More...
 

Macro Definition Documentation

#define CH_CFG_NUM_THREADS   3

Number of user threads in the application.

Note
This number is not inclusive of the idle thread which is Implicitly handled.

Definition at line 46 of file chconf.h.

Referenced by chSchDoReschedule(), chSchGoSleepTimeoutS(), chSchReadyI(), chSysInit(), chSysTimerHandlerI(), nil_find_thread(), and nil_ready_all().

#define CH_CFG_ST_RESOLUTION   32

System time counter resolution.

Note
Allowed values are 16 or 32 bits.

Definition at line 61 of file chconf.h.

#define CH_CFG_ST_FREQUENCY   1000

System tick frequency.

Note
This value together with the CH_CFG_ST_RESOLUTION option defines the maximum amount of time allowed for timeouts.

Definition at line 69 of file chconf.h.

#define CH_CFG_ST_TIMEDELTA   0

Time delta constant for the tick-less mode.

Note
If this value is zero then the system uses the classic periodic tick. This value represents the minimum number of ticks that is safe to specify in a timeout directive. The value one is not valid, timeouts are rounded up to this value.

Definition at line 79 of file chconf.h.

Referenced by chSchGoSleepTimeoutS().

#define CH_CFG_USE_SEMAPHORES   TRUE

Semaphores APIs.

If enabled then the Semaphores APIs are included in the kernel.

Note
The default is TRUE.

Definition at line 96 of file chconf.h.

#define CH_CFG_USE_MUTEXES   FALSE

Mutexes APIs.

If enabled then the mutexes APIs are included in the kernel.

Note
Feature not currently implemented.
The default is FALSE.

Definition at line 105 of file chconf.h.

#define CH_CFG_USE_EVENTS   TRUE

Events Flags APIs.

If enabled then the event flags APIs are included in the kernel.

Note
The default is TRUE.

Definition at line 113 of file chconf.h.

#define CH_CFG_USE_MAILBOXES   TRUE

Mailboxes APIs.

If enabled then the asynchronous messages (mailboxes) APIs are included in the kernel.

Note
The default is TRUE.
Requires CH_CFG_USE_SEMAPHORES.

Definition at line 123 of file chconf.h.

#define CH_CFG_USE_MEMCORE   TRUE

Core Memory Manager APIs.

If enabled then the core memory manager APIs are included in the kernel.

Note
The default is TRUE.

Definition at line 132 of file chconf.h.

#define CH_CFG_USE_HEAP   TRUE

Heap Allocator APIs.

If enabled then the memory heap allocator APIs are included in the kernel.

Note
The default is TRUE.

Definition at line 141 of file chconf.h.

#define CH_CFG_USE_MEMPOOLS   TRUE

Memory Pools Allocator APIs.

If enabled then the memory pools allocator APIs are included in the kernel.

Note
The default is TRUE.

Definition at line 150 of file chconf.h.

#define CH_CFG_USE_OBJ_FIFOS   TRUE

Objects FIFOs APIs.

If enabled then the objects FIFOs APIs are included in the kernel.

Note
The default is TRUE.

Definition at line 159 of file chconf.h.

#define CH_CFG_USE_PIPES   TRUE

Pipes APIs.

If enabled then the pipes APIs are included in the kernel.

Note
The default is TRUE.

Definition at line 168 of file chconf.h.

#define CH_CFG_MEMCORE_SIZE   0

Managed RAM size.

Size of the RAM area to be managed by the OS. If set to zero then the whole available RAM is used. The core memory is made available to the heap allocator and/or can be used directly through the simplified core memory allocator.

Note
In order to let the OS manage the whole RAM the linker script must provide the heap_base and heap_end symbols.
Requires CH_CFG_USE_MEMCORE.

Definition at line 181 of file chconf.h.

Referenced by _core_init().

#define CH_CFG_USE_FACTORY   TRUE

Objects Factory APIs.

If enabled then the objects factory APIs are included in the kernel.

Note
The default is FALSE.

Definition at line 199 of file chconf.h.

#define CH_CFG_FACTORY_MAX_NAMES_LENGTH   8

Maximum length for object names.

If the specified length is zero then the name is stored by pointer but this could have unintended side effects.

Definition at line 206 of file chconf.h.

#define CH_CFG_FACTORY_OBJECTS_REGISTRY   TRUE

Enables the registry of generic objects.

Definition at line 211 of file chconf.h.

#define CH_CFG_FACTORY_GENERIC_BUFFERS   TRUE

Enables factory for generic buffers.

Definition at line 216 of file chconf.h.

#define CH_CFG_FACTORY_SEMAPHORES   TRUE

Enables factory for semaphores.

Definition at line 221 of file chconf.h.

#define CH_CFG_FACTORY_MAILBOXES   TRUE

Enables factory for mailboxes.

Definition at line 226 of file chconf.h.

#define CH_CFG_FACTORY_OBJ_FIFOS   TRUE

Enables factory for objects FIFOs.

Definition at line 231 of file chconf.h.

#define CH_CFG_FACTORY_PIPES   TRUE

Enables factory for Pipes.

Definition at line 236 of file chconf.h.

#define CH_DBG_STATISTICS   FALSE

Debug option, kernel statistics.

Note
Feature not currently implemented.
The default is FALSE.

Definition at line 253 of file chconf.h.

#define CH_DBG_SYSTEM_STATE_CHECK   TRUE

Debug option, system state check.

Note
The default is FALSE.

Definition at line 260 of file chconf.h.

#define CH_DBG_ENABLE_CHECKS   TRUE

Debug option, parameters checks.

Note
The default is FALSE.

Definition at line 267 of file chconf.h.

#define CH_DBG_ENABLE_ASSERTS   TRUE

System assertions.

Note
The default is FALSE.

Definition at line 274 of file chconf.h.

#define CH_DBG_ENABLE_STACK_CHECK   TRUE

Stack check.

Note
The default is FALSE.

Definition at line 281 of file chconf.h.

#define CH_CFG_SYSTEM_INIT_HOOK ( )
Value:
{ \
}

System initialization hook.

Definition at line 296 of file chconf.h.

Referenced by chSysInit().

#define CH_CFG_THREAD_EXT_FIELDS   /* Add threads custom fields here.*/

Threads descriptor structure extension.

User fields added to the end of the thread_t structure.

Definition at line 304 of file chconf.h.

#define CH_CFG_THREAD_EXT_INIT_HOOK (   tr)
Value:
{ \
/* Add custom threads initialization code here.*/ \
}

Threads initialization hook.

Definition at line 310 of file chconf.h.

Referenced by chSysInit().

#define CH_CFG_IDLE_ENTER_HOOK ( )
Value:
{ \
}

Idle thread enter hook.

Note
This hook is invoked within a critical zone, no OS functions should be invoked from here.
This macro can be used to activate a power saving mode.

Definition at line 320 of file chconf.h.

Referenced by chSchGoSleepTimeoutS().

#define CH_CFG_IDLE_LEAVE_HOOK ( )
Value:
{ \
}

Idle thread leave hook.

Note
This hook is invoked within a critical zone, no OS functions should be invoked from here.
This macro can be used to deactivate a power saving mode.

Definition at line 329 of file chconf.h.

Referenced by chSchDoReschedule().

#define CH_CFG_SYSTEM_HALT_HOOK (   reason)
Value:
{ \
}

System halt hook.

Definition at line 336 of file chconf.h.

Referenced by chSysHalt().