xiuos/kernel/Kconfig

318 lines
9.0 KiB
Plaintext

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