From b58126efa02bf813c20e69e717c50033b86a9468 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Thu, 5 Feb 2009 21:15:51 +0000 Subject: [PATCH] git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@722 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- src/templates/chconf.h | 250 +++++++++++++++++++++++++---------------- 1 file changed, 156 insertions(+), 94 deletions(-) diff --git a/src/templates/chconf.h b/src/templates/chconf.h index c54820f58..8863b0061 100644 --- a/src/templates/chconf.h +++ b/src/templates/chconf.h @@ -32,177 +32,239 @@ * 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 - * that this is not related to the compiler optimization options.*/ +/** + * If specified then time efficient rather than space efficient code is used + * when two possible implementations exist. + * @note This is not related to the compiler optimization options. + */ #define CH_OPTIMIZE_SPEED -/** Configuration option: If enabled then the use of nested @p chSysLock() / - * @p chSysUnlock() operations is allowed.
- * For performance and code size reasons the recommended setting is to leave - * this option disabled.
- * You can use this option if you need to merge ChibiOS/RT with external - * libraries that require nested lock/unlock operations. +/** + * If enabled then the use of nested @p chSysLock() / @p chSysUnlock() + * operations is allowed.
+ * For performance and code size reasons the recommended setting is to leave + * this option disabled.
+ * 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 -/** 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 -/** 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 -/** 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 -/** Configuration option: If enabled then the threads are enqueued on semaphores - * by priority rather than FIFO order. - * @note requires @p CH_USE_SEMAPHORES.*/ +/** + * If enabled then the threads are enqueued on semaphores by priority rather + * 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 -/** 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 -/** Configuration option: if specified then the Semaphores with timeout APIs - * are included in the kernel. - * @note requires @p CH_USE_SEMAPHORES.*/ +/** + * If specified then the Semaphores with timeout APIs are included in the + * kernel. + * @note Requires @p CH_USE_SEMAPHORES. + */ #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 -/** Configuration option: if specified then the Conditional Variables APIs are - * included in the kernel. - * @note requires @p CH_USE_MUTEXES.*/ +/** + * If specified then the Conditional Variables APIs are included in the kernel. + * @note Requires @p CH_USE_MUTEXES. + */ #define CH_USE_CONDVARS -/** Configuration option: if specified then the Conditional Variables APIs are - * included in the kernel. - * @note requires @p CH_USE_CONDVARS and @p CH_USE_MUTEXES.*/ +/** + * If specified then the Conditional Variables APIs are included in the kernel. + * @note Requires @p CH_USE_CONDVARS. + */ #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 -/** Configuration option: if specified then the @p chEvtWaitXXXTimeout() - * functions are included in the kernel. - * @note requires @p CH_USE_EVENTS. +/** + * If specified then the @p chEvtWaitXXXTimeout() functions are included in + * the kernel. + * @note Requires @p CH_USE_EVENTS. */ #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 -/** Configuration option: if specified then the @p chMsgSendWithEvent() - * function is included in the kernel. - * @note requires @p CH_USE_MESSAGES.*/ +/** + * If specified then the @p chMsgSendWithEvent() function is included in the + * kernel. + * @note Requires @p CH_USE_MESSAGES and @p CH_USE_EVENTS. + */ #define CH_USE_MESSAGES_EVENT -/** Configuration option: If enabled then the threads serve messages by - * priority instead of FIFO order. - * @note requires @p CH_USE_MESSAGES.*/ +/** + * If enabled then messages are served by priority rather than in FIFO order. + * @note Requires @p CH_USE_MESSAGES. + */ #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 -/** 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 -/** Configuration option: if specified then the I/O queues with timeout - * APIs are included in the kernel. - * @note requires @p CH_USE_SEMAPHORES_TIMEOUT.*/ +/** + * If specified then the I/O queues with timeout APIs are included in the + * kernel. + * @note Requires @p CH_USE_QUEUES and @p CH_USE_SEMAPHORES_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 -/** 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 -/** 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 -/** 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. - * @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. - * @note requires @p CH_USE_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 + * provide the @p __heap_base__ and @p __heap_end__ symbols. + * @note Requires @p CH_USE_HEAP. */ #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 -/** 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 -/** Configuration option: if specified then the dynamic objects creation APIs - * are included in the kernel. - * @note requires @p CH_USE_WAITEXIT. +/** + * If specified then the dynamic threads creation APIs are included in the + * kernel. + * @note Requires @p CH_USE_WAITEXIT. */ #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 -/** Configuration option: This constant is the number of ticks allowed for the - * threads before preemption occurs. This option is only meaningful if the - * option @p CH_USE_ROUNDROBIN is also active.*/ +/** + * This constant is the number of system ticks allowed for the threads before + * preemption occurs. This option is only meaningful if the option + * @p CH_USE_ROUNDROBIN is also active. + */ #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 - * 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 - * resulting in lower RAM usage and faster code. - * @note This option is only useable with the GCC compiler and is only useful - * on processors with many registers like ARM cores. - * @note If this option is enabled then ALL the libraries linked to the - * ChibiOS/RT code must be recompiled with the GCC option @p - * -ffixed-\. +/** + * 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 + * effect is that one less register has to be saved during the context switch + * resulting in lower RAM usage and faster code. + * @note This option is only usable with the GCC compiler and is only useful + * on processors with many registers like ARM cores. + * @note If this option is enabled then ALL the libraries linked to the + * ChibiOS/RT code must be recompiled with the GCC option @p + * -ffixed-@. */ -//#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 - * targets. In that case stub functions will be included. +/** + * 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 + * targets. In that case stub functions will be included. */ #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 -/** 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 \ struct { \ /* 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) { \ /* 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) { \ /* Add thread finalization code here.*/ \ }