menu "Kernel feature" menu "separate compile(choose none for compile once)" config SEPARATE_COMPILE bool default n config COMPILER_APP bool "only compile application" default n select USER_APPLICATION select SEPARATE_COMPILE choice prompt "select the startup site of APP " default APP_STARTUP_FROM_FLASH config APP_STARTUP_FROM_SDCARD bool "app start from sd card" config APP_STARTUP_FROM_FLASH bool "app start from flash" endchoice config COMPILER_KERNEL bool "only compile kernel" default n select SEPARATE_COMPILE endmenu menu "Memory Management" config KERNEL_MEMBLOCK bool "Using gather block" default n config MEM_ALIGN_SIZE int "Alignment size for CPU architecture data access" default 8 help Alignment size for CPU architecture data access config MM_PAGE_SIZE int "Config memory page size" default 4096 help config memory page size menu "Using small memory allocator" config KERNEL_SMALL_MEM_ALLOC bool "Using small memory allocator" default y if KERNEL_SMALL_MEM_ALLOC config SMALL_NUMBER_32B int "Config 32B small memory number" range 1 256 default 64 config SMALL_NUMBER_64B int "Config 64B small memory number" range 1 128 default 32 endif endmenu endmenu menu "Task feature" config USER_APPLICATION bool "start system application" default y config TASK_ISOLATION bool "Enable task isolation" default n select SEPARATE_COMPILE select COMPILER_APP select COMPILER_KERNEL help Enable task isolation menu "Inter-Task communication" config KERNEL_SEMAPHORE bool "Enable semaphore" default y config KERNEL_MUTEX bool "Enable mutex" default y config KERNEL_EVENT bool "Enable event" default y config KERNEL_MESSAGEQUEUE bool "Enable message queue" default y config KERNEL_SOFTTIMER bool "Enable softtimer " select KERNEL_WORKQUEUE default y endmenu choice prompt "Scheduler Policy Set" default SCHED_POLICY_RR_REMAINSLICE config SCHED_POLICY_RR_REMAINSLICE bool "config scheduler policy as RR REMAINSLICE" config SCHED_POLICY_RR bool "config scheduler policy as RR " config SCHED_POLICY_FIFO bool "config scheduler policy as FIFO" endchoice choice prompt "The maximal level value of priority of task" default KTASK_PRIORITY_32 config KTASK_PRIORITY_8 bool "8" config KTASK_PRIORITY_32 bool "32" config KTASK_PRIORITY_256 bool "256" endchoice config KTASK_PRIORITY_MAX int default 8 if KTASK_PRIORITY_8 default 32 if KTASK_PRIORITY_32 default 256 if KTASK_PRIORITY_256 config TICK_PER_SECOND int "Tick frequency, Hz" range 10 1000 default 100 help System's tick frequency, Hz. config KERNEL_STACK_OVERFLOW_CHECK bool "Using stack overflow checking" default y help Enable task stack overflow checking. The stack overflow is checking when each task switch. config IDLE_KTASK_STACKSIZE int "The stack size of idle task" default 1024 config ZOMBIE_KTASK_STACKSIZE int "The stack size of zombie_recycle task" default 2048 endmenu menu "Kernel Console" config KERNEL_CONSOLE bool "config enable console" default y if KERNEL_CONSOLE config KERNEL_BANNER bool "config system banner print" default y config KERNEL_CONSOLEBUF_SIZE int "default buffer size for console log printf" default 128 endif endmenu menu "Kernel Hook" menuconfig KERNEL_HOOK bool "Enable system hook" default n help Enable the hook function when system running, such as idle task hook, task context switch etc. if KERNEL_HOOK menuconfig KERNEL_IDLE_HOOK bool "Enable IDLE Task hook" default y if KERNEL_IDLE_HOOK config IDEL_HOOK_LIST_SIZE int "The max size of idle hook list" default 4 range 1 16 help The system has a hook list. This is the hook list size. endif endif endmenu source "$KERNEL_DIR/tool/shell/Kconfig" menu "Kernel data structure Manage" menuconfig KERNEL_QUEUEMANAGE bool "Config Kernel Queue Manage" default y if KERNEL_QUEUEMANAGE config KERNEL_WORKQUEUE bool "Config kernel work queue" default y if KERNEL_WORKQUEUE config WORKQUEUE_KTASK_STACKSIZE int "The stack size for workqueue task" default 2048 config WORKQUEUE_KTASK_PRIORITY int default 6 if KTASK_PRIORITY_8 default 23 if KTASK_PRIORITY_32 default 128 if KTASK_PRIORITY_256 config QUEUE_MAX int "Config the max queue length" default 16 endif config KERNEL_WAITQUEUE bool "Config kernel wait queue" default y config KERNEL_DATAQUEUE bool "Config kernel data queue" default y endif config KERNEL_CIRCULAR_AREA bool "Config Kernel Circular Area" default n config KERNEL_AVL_TREE bool "Config Kernel AVL Tree" default n endmenu menu "Kernel components init" menuconfig KERNEL_COMPONENTS_INIT bool "Use components automatically initialization" default y if KERNEL_COMPONENTS_INIT config ENV_INIT_KTASK_STACK_SIZE int "Set env init task stack size" default 8192 menuconfig KERNEL_USER_MAIN bool "The main() function as user entry function" default y endif endmenu config NAME_NUM_MAX int "The maximal size of kernel object name" range 2 32 default 32 help Each kernel object, such as task has a name, the NAME_NUM_MAX is the maximal size of this name. menuconfig KERNEL_DEBUG bool "Enable debugging features" default n if KERNEL_DEBUG config DEBUG_INIT_CONFIG bool "Enable debugging of components initialization" default y config KDYN_LOG_DBG bool "Enable DYNAMIC [DBG] LOG" default y config DBG_INIT int default 1 if DEBUG_INIT_CONFIG endif menuconfig ARCH_SMP bool "Enable SMP(Symmetric multiprocessing)" default n help This option should be selected by machines which have an SMP- capable CPU. The only effect of this option is to make the SMP-related options available to the user for configuration. config CPU_NUMBERS int "Number of CPUs" default 2 depends on ARCH_SMP help Number of CPUs in the system menu "hash table config" menuconfig ID_HTABLE_SIZE int "ID hash table size" range 1 256 default 16 help Size of the hash table that ID manager uses internally menuconfig ID_NUM_MAX int "ID num max" range 16 256 default 128 help max num of the ID manager endmenu source "$KERNEL_DIR/kernel/kernel_test/Kconfig" endmenu