git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@722 35acf78f-673a-0410-8e92-d51de3d6d3f4
parent
5a69fb420c
commit
b58126efa0
|
@ -32,13 +32,16 @@
|
||||||
* is the one into the project directories.
|
* is the one into the project directories.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** Configuration option: if specified then time efficient rather than space
|
/**
|
||||||
* efficient code is used when two possible implementations exist, note
|
* If specified then time efficient rather than space efficient code is used
|
||||||
* that this is not related to the compiler optimization options.*/
|
* when two possible implementations exist.
|
||||||
|
* @note This is not related to the compiler optimization options.
|
||||||
|
*/
|
||||||
#define CH_OPTIMIZE_SPEED
|
#define CH_OPTIMIZE_SPEED
|
||||||
|
|
||||||
/** Configuration option: If enabled then the use of nested @p chSysLock() /
|
/**
|
||||||
* @p chSysUnlock() operations is allowed.<br>
|
* If enabled then the use of nested @p chSysLock() / @p chSysUnlock()
|
||||||
|
* operations is allowed.<br>
|
||||||
* For performance and code size reasons the recommended setting is to leave
|
* For performance and code size reasons the recommended setting is to leave
|
||||||
* this option disabled.<br>
|
* this option disabled.<br>
|
||||||
* You can use this option if you need to merge ChibiOS/RT with external
|
* You can use this option if you need to merge ChibiOS/RT with external
|
||||||
|
@ -46,163 +49,222 @@
|
||||||
*/
|
*/
|
||||||
#define CH_USE_NESTED_LOCKS
|
#define CH_USE_NESTED_LOCKS
|
||||||
|
|
||||||
/** Configuration option: if specified then the kernel performs the round
|
/**
|
||||||
* robin scheduling algorithm on threads of equal priority.*/
|
* If specified then the kernel performs the round robin scheduling algorithm
|
||||||
|
* on threads of equal priority.
|
||||||
|
* @note The default is ON.
|
||||||
|
*/
|
||||||
#define CH_USE_ROUNDROBIN
|
#define CH_USE_ROUNDROBIN
|
||||||
|
|
||||||
/** Configuration option: if specified then the @p chThdWait() function
|
/**
|
||||||
* is included in the kernel.*/
|
* If specified then the @p chThdWait() function is included in the kernel.
|
||||||
|
*/
|
||||||
#define CH_USE_WAITEXIT
|
#define CH_USE_WAITEXIT
|
||||||
|
|
||||||
/** Configuration option: if specified then the Semaphores APIs are included
|
/**
|
||||||
* in the kernel.*/
|
* If specified then the Semaphores APIs are included in the kernel.
|
||||||
|
*/
|
||||||
#define CH_USE_SEMAPHORES
|
#define CH_USE_SEMAPHORES
|
||||||
|
|
||||||
/** Configuration option: If enabled then the threads are enqueued on semaphores
|
/**
|
||||||
* by priority rather than FIFO order.
|
* If enabled then the threads are enqueued on semaphores by priority rather
|
||||||
* @note requires @p CH_USE_SEMAPHORES.*/
|
* than FIFO order.
|
||||||
|
* @note The recommended default is OFF unless you have some specific
|
||||||
|
* requirements.
|
||||||
|
* @note Requires @p CH_USE_SEMAPHORES.
|
||||||
|
*/
|
||||||
#define CH_USE_SEMAPHORES_PRIORITY
|
#define CH_USE_SEMAPHORES_PRIORITY
|
||||||
|
|
||||||
/** Configuration option: if specified then the Semaphores atomic Signal+Wait
|
/**
|
||||||
* APIs are included in the kernel.*/
|
* If specified then the Semaphores the @p chSemWaitSignal() API is included
|
||||||
|
* in the kernel.
|
||||||
|
* @note Requires @p CH_USE_SEMAPHORES.
|
||||||
|
*/
|
||||||
#define CH_USE_SEMSW
|
#define CH_USE_SEMSW
|
||||||
|
|
||||||
/** Configuration option: if specified then the Semaphores with timeout APIs
|
/**
|
||||||
* are included in the kernel.
|
* If specified then the Semaphores with timeout APIs are included in the
|
||||||
* @note requires @p CH_USE_SEMAPHORES.*/
|
* kernel.
|
||||||
|
* @note Requires @p CH_USE_SEMAPHORES.
|
||||||
|
*/
|
||||||
#define CH_USE_SEMAPHORES_TIMEOUT
|
#define CH_USE_SEMAPHORES_TIMEOUT
|
||||||
|
|
||||||
/** Configuration option: if specified then the Mutexes APIs are included in
|
/**
|
||||||
* the kernel.*/
|
* If specified then the Mutexes APIs are included in the kernel.
|
||||||
|
*/
|
||||||
#define CH_USE_MUTEXES
|
#define CH_USE_MUTEXES
|
||||||
|
|
||||||
/** Configuration option: if specified then the Conditional Variables APIs are
|
/**
|
||||||
* included in the kernel.
|
* If specified then the Conditional Variables APIs are included in the kernel.
|
||||||
* @note requires @p CH_USE_MUTEXES.*/
|
* @note Requires @p CH_USE_MUTEXES.
|
||||||
|
*/
|
||||||
#define CH_USE_CONDVARS
|
#define CH_USE_CONDVARS
|
||||||
|
|
||||||
/** Configuration option: if specified then the Conditional Variables APIs are
|
/**
|
||||||
* included in the kernel.
|
* If specified then the Conditional Variables APIs are included in the kernel.
|
||||||
* @note requires @p CH_USE_CONDVARS and @p CH_USE_MUTEXES.*/
|
* @note Requires @p CH_USE_CONDVARS.
|
||||||
|
*/
|
||||||
#define CH_USE_CONDVARS_TIMEOUT
|
#define CH_USE_CONDVARS_TIMEOUT
|
||||||
|
|
||||||
/** Configuration option: if specified then the Events APIs are included in
|
/**
|
||||||
* the kernel.*/
|
* If specified then the Event flags APIs are included in the kernel.
|
||||||
|
*/
|
||||||
#define CH_USE_EVENTS
|
#define CH_USE_EVENTS
|
||||||
|
|
||||||
/** Configuration option: if specified then the @p chEvtWaitXXXTimeout()
|
/**
|
||||||
* functions are included in the kernel.
|
* If specified then the @p chEvtWaitXXXTimeout() functions are included in
|
||||||
* @note requires @p CH_USE_EVENTS.
|
* the kernel.
|
||||||
|
* @note Requires @p CH_USE_EVENTS.
|
||||||
*/
|
*/
|
||||||
#define CH_USE_EVENTS_TIMEOUT
|
#define CH_USE_EVENTS_TIMEOUT
|
||||||
|
|
||||||
/** Configuration option: if specified then the Synchronous Messages APIs are
|
/**
|
||||||
* included in the kernel.*/
|
* If specified then the Synchronous Messages APIs are included in the kernel.
|
||||||
|
*/
|
||||||
#define CH_USE_MESSAGES
|
#define CH_USE_MESSAGES
|
||||||
|
|
||||||
/** Configuration option: if specified then the @p chMsgSendWithEvent()
|
/**
|
||||||
* function is included in the kernel.
|
* If specified then the @p chMsgSendWithEvent() function is included in the
|
||||||
* @note requires @p CH_USE_MESSAGES.*/
|
* kernel.
|
||||||
|
* @note Requires @p CH_USE_MESSAGES and @p CH_USE_EVENTS.
|
||||||
|
*/
|
||||||
#define CH_USE_MESSAGES_EVENT
|
#define CH_USE_MESSAGES_EVENT
|
||||||
|
|
||||||
/** Configuration option: If enabled then the threads serve messages by
|
/**
|
||||||
* priority instead of FIFO order.
|
* If enabled then messages are served by priority rather than in FIFO order.
|
||||||
* @note requires @p CH_USE_MESSAGES.*/
|
* @note Requires @p CH_USE_MESSAGES.
|
||||||
|
*/
|
||||||
#define CH_USE_MESSAGES_PRIORITY
|
#define CH_USE_MESSAGES_PRIORITY
|
||||||
|
|
||||||
/** Configuration option: if specified then the I/O queues APIs are included
|
/**
|
||||||
* in the kernel.*/
|
* If specified then the I/O queues APIs are included in the kernel.
|
||||||
|
* @note Requires @p CH_USE_SEMAPHORES.
|
||||||
|
*/
|
||||||
#define CH_USE_QUEUES
|
#define CH_USE_QUEUES
|
||||||
|
|
||||||
/** Configuration option: if specified then the halfduplex queue APIs are
|
/**
|
||||||
* included in the kernel.*/
|
* If specified then the half duplex queues APIs are included in the kernel.
|
||||||
|
* @note Requires @p CH_USE_SEMAPHORES.
|
||||||
|
*/
|
||||||
#define CH_USE_QUEUES_HALFDUPLEX
|
#define CH_USE_QUEUES_HALFDUPLEX
|
||||||
|
|
||||||
/** Configuration option: if specified then the I/O queues with timeout
|
/**
|
||||||
* APIs are included in the kernel.
|
* If specified then the I/O queues with timeout APIs are included in the
|
||||||
* @note requires @p CH_USE_SEMAPHORES_TIMEOUT.*/
|
* kernel.
|
||||||
|
* @note Requires @p CH_USE_QUEUES and @p CH_USE_SEMAPHORES_TIMEOUT.
|
||||||
|
*/
|
||||||
#define CH_USE_QUEUES_TIMEOUT
|
#define CH_USE_QUEUES_TIMEOUT
|
||||||
|
|
||||||
/** Configuration option: if specified then the full duplex serial driver APIs
|
/**
|
||||||
* are included in the kernel.*/
|
* If specified then the full duplex serial driver APIs are included in the
|
||||||
|
* kernel.
|
||||||
|
* @note Requires @p CH_USE_QUEUES.
|
||||||
|
*/
|
||||||
#define CH_USE_SERIAL_FULLDUPLEX
|
#define CH_USE_SERIAL_FULLDUPLEX
|
||||||
|
|
||||||
/** Configuration option: if specified then the half duplex serial driver APIs
|
/**
|
||||||
* are included in the kernel.*/
|
* If specified then the half duplex serial driver APIs are included in the
|
||||||
|
* kernel.
|
||||||
|
* @note Requires @p CH_USE_QUEUES_HALFDUPLEX.
|
||||||
|
*/
|
||||||
#define CH_USE_SERIAL_HALFDUPLEX
|
#define CH_USE_SERIAL_HALFDUPLEX
|
||||||
|
|
||||||
/** Configuration option: if specified then the memory heap allocator APIs
|
/**
|
||||||
* are included in the kernel.*/
|
* If specified then the memory heap allocator APIs are included in the kernel.
|
||||||
|
* @note Requires @p CH_USE_MUTEXES or @p CH_USE_SEMAPHORES.
|
||||||
|
* @note Mutexes are recommended.
|
||||||
|
*/
|
||||||
#define CH_USE_HEAP
|
#define CH_USE_HEAP
|
||||||
|
|
||||||
/** Configuration option: Number of RAM bytes to use as system heap. If set to
|
/**
|
||||||
* zero then the whole available RAM is used as system heap.
|
* Number of RAM bytes to use as system heap. If set to zero then the whole
|
||||||
|
* available RAM is used as system heap.
|
||||||
* @note In order to use the whole RAM as system heap the linker script must
|
* @note In order to use the whole RAM as system heap the linker script must
|
||||||
* provide the @p __heap_base__ and @p __heap_end__ symbols.
|
* provide the @p __heap_base__ and @p __heap_end__ symbols.
|
||||||
* @note requires @p CH_USE_HEAP.
|
* @note Requires @p CH_USE_HEAP.
|
||||||
*/
|
*/
|
||||||
#define CH_HEAP_SIZE 0
|
#define CH_HEAP_SIZE 0
|
||||||
|
|
||||||
/** Configuration option: enforces the use of the C-runtime @p malloc() and
|
/**
|
||||||
* @p free() functions as backend for the system heap allocator.*/
|
* If enabled enforces the use of the C-runtime @p malloc() and @p free()
|
||||||
|
* functions as backend for the system heap allocator.
|
||||||
|
* @note Requires @p CH_USE_HEAP.
|
||||||
|
* @note The recommended setting is OFF.
|
||||||
|
*/
|
||||||
#define CH_USE_MALLOC_HEAP
|
#define CH_USE_MALLOC_HEAP
|
||||||
|
|
||||||
/** Configuration option: if specified then the memory pools allocator APIs
|
/**
|
||||||
* are included in the kernel.*/
|
* If specified then the memory pools allocator APIs are included in the
|
||||||
|
* kernel.
|
||||||
|
*/
|
||||||
#define CH_USE_MEMPOOLS
|
#define CH_USE_MEMPOOLS
|
||||||
|
|
||||||
/** Configuration option: if specified then the dynamic objects creation APIs
|
/**
|
||||||
* are included in the kernel.
|
* If specified then the dynamic threads creation APIs are included in the
|
||||||
* @note requires @p CH_USE_WAITEXIT.
|
* kernel.
|
||||||
|
* @note Requires @p CH_USE_WAITEXIT.
|
||||||
*/
|
*/
|
||||||
#define CH_USE_DYNAMIC
|
#define CH_USE_DYNAMIC
|
||||||
|
|
||||||
/** Configuration option: Frequency of the system timer that drives the system
|
/**
|
||||||
* ticks. This also defines the system time unit.*/
|
* Frequency of the system timer that drives the system ticks. This also
|
||||||
|
* defines the system tick time unit.
|
||||||
|
*/
|
||||||
#define CH_FREQUENCY 1000
|
#define CH_FREQUENCY 1000
|
||||||
|
|
||||||
/** Configuration option: This constant is the number of ticks allowed for the
|
/**
|
||||||
* threads before preemption occurs. This option is only meaningful if the
|
* This constant is the number of system ticks allowed for the threads before
|
||||||
* option @p CH_USE_ROUNDROBIN is also active.*/
|
* preemption occurs. This option is only meaningful if the option
|
||||||
|
* @p CH_USE_ROUNDROBIN is also active.
|
||||||
|
*/
|
||||||
#define CH_TIME_QUANTUM 20
|
#define CH_TIME_QUANTUM 20
|
||||||
|
|
||||||
/** Configuration option: Defines a CPU register to be used as storage for the
|
/**
|
||||||
* global @p currp variable. Caching this variable in a register can greatly
|
* If enabled defines a CPU register to be used as storage for the global
|
||||||
|
* @p currp variable. Caching this variable in a register can greatly
|
||||||
* improve both space and time efficiency of the generated code. Another side
|
* improve both space and time efficiency of the generated code. Another side
|
||||||
* effect is that one less register has to be saved during the context switch
|
* effect is that one less register has to be saved during the context switch
|
||||||
* resulting in lower RAM usage and faster code.
|
* resulting in lower RAM usage and faster code.
|
||||||
* @note This option is only useable with the GCC compiler and is only useful
|
* @note This option is only usable with the GCC compiler and is only useful
|
||||||
* on processors with many registers like ARM cores.
|
* on processors with many registers like ARM cores.
|
||||||
* @note If this option is enabled then ALL the libraries linked to the
|
* @note If this option is enabled then ALL the libraries linked to the
|
||||||
* ChibiOS/RT code <b>must</b> be recompiled with the GCC option @p
|
* ChibiOS/RT code <b>must</b> be recompiled with the GCC option @p
|
||||||
* -ffixed-\<reg\>.
|
* -ffixed-@<reg@>.
|
||||||
*/
|
*/
|
||||||
//#define CH_CURRP_REGISTER_CACHE "reg"
|
#define CH_CURRP_REGISTER_CACHE "reg"
|
||||||
|
|
||||||
/** Debug option: Includes basic debug support to the kernel.
|
/**
|
||||||
|
* Debug option, if enableed includes basic debug support to the kernel.
|
||||||
* @note The debug support is port-dependent, it may be not present on some
|
* @note The debug support is port-dependent, it may be not present on some
|
||||||
* targets. In that case stub functions will be included.
|
* targets. In that case stub functions will be included.
|
||||||
*/
|
*/
|
||||||
#define CH_USE_DEBUG
|
#define CH_USE_DEBUG
|
||||||
|
|
||||||
/** Debug option: Includes the threads context switch tracing feature.
|
/**
|
||||||
|
* Debug option, includes the threads context switch tracing feature.
|
||||||
*/
|
*/
|
||||||
#define CH_USE_TRACE
|
#define CH_USE_TRACE
|
||||||
|
|
||||||
/** User fields added to the end of the @p Thread structure. */
|
/**
|
||||||
|
* User fields added to the end of the @p Thread structure.
|
||||||
|
*/
|
||||||
#define THREAD_EXT_FIELDS \
|
#define THREAD_EXT_FIELDS \
|
||||||
struct { \
|
struct { \
|
||||||
/* Add thread custom fields here.*/ \
|
/* Add thread custom fields here.*/ \
|
||||||
};
|
};
|
||||||
|
|
||||||
/** User initialization code added to the @p chThdInit() API.
|
/**
|
||||||
* @note It is invoked from within @p chThdInit(). */
|
* User initialization code added to the @p chThdInit() API.
|
||||||
|
* @note It is invoked from within @p chThdInit().
|
||||||
|
*/
|
||||||
#define THREAD_EXT_INIT(tp) { \
|
#define THREAD_EXT_INIT(tp) { \
|
||||||
/* Add thread initialization code here.*/ \
|
/* Add thread initialization code here.*/ \
|
||||||
}
|
}
|
||||||
|
|
||||||
/** User finalization code added to the @p chThdExit() API.
|
/**
|
||||||
* @note It is inserted into lock zone. */
|
* User finalization code added to the @p chThdExit() API.
|
||||||
|
* @note It is inserted into lock zone.
|
||||||
|
*/
|
||||||
#define THREAD_EXT_EXIT(tp) { \
|
#define THREAD_EXT_EXIT(tp) { \
|
||||||
/* Add thread finalization code here.*/ \
|
/* Add thread finalization code here.*/ \
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue