git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@722 35acf78f-673a-0410-8e92-d51de3d6d3f4

master
gdisirio 2009-02-05 21:15:51 +00:00
parent 5a69fb420c
commit b58126efa0
1 changed files with 156 additions and 94 deletions

View File

@ -32,177 +32,239 @@
* 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()
* For performance and code size reasons the recommended setting is to leave * operations is allowed.<br>
* this option disabled.<br> * For performance and code size reasons the recommended setting is to leave
* You can use this option if you need to merge ChibiOS/RT with external * this option disabled.<br>
* libraries that require nested lock/unlock operations. * You can use this option if you need to merge ChibiOS/RT with external
* libraries that require nested lock/unlock operations.
*/ */
#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
* @note In order to use the whole RAM as system heap the linker script must * available RAM is used as system heap.
* provide the @p __heap_base__ and @p __heap_end__ symbols. * @note In order to use the whole RAM as system heap the linker script must
* @note requires @p CH_USE_HEAP. * provide the @p __heap_base__ and @p __heap_end__ symbols.
* @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
* improve both space and time efficiency of the generated code. Another side * @p currp variable. Caching this variable in a register can greatly
* effect is that one less register has to be saved during the context switch * improve both space and time efficiency of the generated code. Another side
* resulting in lower RAM usage and faster code. * effect is that one less register has to be saved during the context switch
* @note This option is only useable with the GCC compiler and is only useful * resulting in lower RAM usage and faster code.
* on processors with many registers like ARM cores. * @note This option is only usable with the GCC compiler and is only useful
* @note If this option is enabled then ALL the libraries linked to the * on processors with many registers like ARM cores.
* ChibiOS/RT code <b>must</b> be recompiled with the GCC option @p * @note If this option is enabled then ALL the libraries linked to the
* -ffixed-\<reg\>. * ChibiOS/RT code <b>must</b> be recompiled with the GCC option @p
* -ffixed-@<reg@>.
*/ */
//#define CH_CURRP_REGISTER_CACHE "reg" #define CH_CURRP_REGISTER_CACHE "reg"
/** Debug option: Includes basic debug support to the kernel. /**
* @note The debug support is port-dependent, it may be not present on some * Debug option, if enableed includes basic debug support to the kernel.
* targets. In that case stub functions will be included. * @note The debug support is port-dependent, it may be not present on some
* 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.*/ \
} }