X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;ds=inline;f=bertos%2Fcfg%2Fcfg_kern.h;h=e828bce7009a46a7af95ca2ced6cdc8f1fe2f6a5;hb=0eeba5822b3ff0e76ae0fd0272536d371d272d7d;hp=2188b72da209234b53622f3ce3b1d5de61ed7f05;hpb=4cc44c9888a0336b9d01121ec0b7ad95f4a76195;p=bertos.git diff --git a/bertos/cfg/cfg_kern.h b/bertos/cfg/cfg_kern.h index 2188b72d..e828bce7 100644 --- a/bertos/cfg/cfg_kern.h +++ b/bertos/cfg/cfg_kern.h @@ -26,100 +26,45 @@ * invalidate any other reasons why the executable file might be covered by * the GNU General Public License. * - * Copyright 2001,2004 Develer S.r.l. (http://www.develer.com/) - * Copyright 1999,2000,2001 Bernie Innocenti - * + * Copyright 2001, 2004 Develer S.r.l. (http://www.develer.com/) + * Copyright 1999, 2000, 2001, 2008 Bernie Innocenti * --> * * \brief Kernel configuration parameters * * \version $Id$ - * * \author Bernie Innocenti */ #ifndef CFG_KERN_H #define CFG_KERN_H -#include "cfg/cfg_arch.h" /* ARCH_EMUL */ - /** - * Multithreading kernel. + * Enable the multithreading kernel. */ -#define CONFIG_KERNEL 0 +#define CONFIG_KERN 1 /** - * \name Modules activation - * + * \name Optional kernel features * \{ */ -/* Module/option Active Dependencies */ -#define CONFIG_KERN_SCHED (0) -#define CONFIG_KERN_SIGNALS (0 && CONFIG_KERN_SCHED) -#define CONFIG_KERN_TIMER (0) -#define CONFIG_KERN_HEAP (0) -#define CONFIG_KERN_SEMAPHORES (0 && CONFIG_KERN_SIGNALS) -#define CONFIG_KERN_MONITOR (0 && CONFIG_KERN_SCHED) +#define CONFIG_KERN_SCHED 1 ///< Process schedling +#define CONFIG_KERN_SIGNALS 1 ///< Inter-process signals +#define CONFIG_KERN_IRQ 1 ///< Interrupt supervisor +#define CONFIG_KERN_HEAP 0 ///< Dynamic memory allocation +#define CONFIG_KERN_SEMAPHORES 0 ///< Re-entrant mutual exclusion primitives +#define CONFIG_KERN_MONITOR 1 ///< Process monitor +#define CONFIG_KERN_PREEMPT 1 ///< Preemptive process scheduling +#define CONFIG_KERN_PRI 1 ///< Priority-based scheduling policy /*\}*/ -/* EXPERIMENTAL */ -#define CONFIG_KERN_PREEMPTIVE (0 && CONFIG_KERN_SCHED && CONFIG_KERN_TIMER) - -#define CONFIG_KERN_QUANTUM 50 /**< Time sharing quantum in timer ticks. */ - -#if (ARCH & ARCH_EMUL) - /* We need a large stack because system libraries are bloated */ - #define CONFIG_PROC_DEFSTACKSIZE 65536 -#else - /** - * Default stack size for each thread, in bytes. - * - * The goal here is to allow a minimal task to save all of its - * registers twice, plus push a maximum of 32 variables on the - * stack. - * - * The actual size computed by the default formula is: - * AVR: 102 - * i386: 156 - * ARM: 164 - * x86_64: 184 - * - * Note that on most 16bit architectures, interrupts will also - * run on the stack of the currently running process. Nested - * interrupts will greatly increases the amount of stack space - * required per process. Use irqmanager to minimize stack - * usage. - */ - #define CONFIG_PROC_DEFSTACKSIZE \ - (CPU_SAVED_REGS_CNT * 2 * sizeof(cpustack_t) \ - + 32 * sizeof(int)) -#endif +/// [ms] Time sharing quantum (a prime number prevents interference effects) +#define CONFIG_KERN_QUANTUM 47 -/* OBSOLETE */ -#define CONFIG_KERN_DEFSTACKSIZE CONFIG_PROC_DEFSTACKSIZE +/// Module logging level. +#define KERN_LOG_LEVEL LOG_LVL_ERR -/* Memory fill codes to help debugging */ -#if CONFIG_KERN_MONITOR - #include - #if (SIZEOF_CPUSTACK_T == 1) - /* 8bit cpustack_t */ - #define CONFIG_KERN_STACKFILLCODE 0xA5 - #define CONFIG_KERN_MEMFILLCODE 0xDB - #elif (SIZEOF_CPUSTACK_T == 2) - /* 16bit cpustack_t */ - #define CONFIG_KERN_STACKFILLCODE 0xA5A5 - #define CONFIG_KERN_MEMFILLCODE 0xDBDB - #elif (SIZEOF_CPUSTACK_T == 4) - /* 16bit cpustack_t */ - #define CONFIG_KERN_STACKFILLCODE 0xA5A5A5A5UL - #define CONFIG_KERN_MEMFILLCODE 0xDBDBDBDBUL - #elif (SIZEOF_CPUSTACK_T == 8) - /* 16bit cpustack_t */ - #define CONFIG_KERN_STACKFILLCODE 0xA5A5A5A5A5A5A5A5UL - #define CONFIG_KERN_MEMFILLCODE 0xDBDBDBDBDBDBDBDBUL - #else - #error No cpustack_t size supported! - #endif -#endif +/// Module logging format. +#define KERN_LOG_FORMAT LOG_FMT_VERBOSE #endif /* CFG_KERN_H */