menu "Bk_rtos"

	config CUSTOMIZE_HEAP_SIZE
		int "Set Customize Heap Size"
		default 163840
		help
			customize heap size, default 160k
    
	config PSRAM_HEAP_INIT_SET_ZERO
		bool "Set psram content zero"
		default n
		help
			when initialising psram memory,its contents are 
			automatically zeroed.

	menu "Modify FreeRTOS Config"
		config FREERTOS
			bool "Enable FreeRTOS"
			default y

		config FREERTOS_FPU_ENABLE
			bool "Enable FreeRTOS FPU"
			default y

		config FREERTOS_USE_QUEUE_SETS
			depends on FREERTOS
			bool "Enable FreeRTOS Queue_Sets"
			default n

		config MEM_MGMT
			bool "Enable Mem Mgmt"
			default n
			help
				Enable heap management module

		choice FREERTOS_VER
			depends on FREERTOS
			prompt "Select FreeRTOS Version"
			default FREERTOS_V9

			config FREERTOS_V9
				bool "FreeRTOS v9.0.0"
			config FREERTOS_V10
				bool "FreeRTOS v10"
			config FREERTOS_SMP
				bool "FreeRTOS SMP v10"
		endchoice

		config FREERTOS_POSIX
			depends on FREERTOS_V10 || FREERTOS_SMP
			bool "Enable FreeRTOS Posix"
			default n

		config FREERTOS_TRACE
			depends on FREERTOS_V10
			bool "FreeRTOS Trace"
			default n

		config TASK_STACK_IN_PSRAM
			depends on FREERTOS_V10
			bool "Create FreeRTOS Task stack in psram"
			default n
		
		config QUEUE_IN_PSRAM
			depends on FREERTOS_V10
			bool "Create FreeRTOS queue in psram"
			default n

		config FREERTOS_ALLOW_OS_API_IN_IRQ_DISABLED
			depends on FREERTOS_SMP
			bool "Allow Call OS API in IRQ disabled"
			default n
			help
				Allow call some OS API in irq disabled, and scheduler will not enable
				the irq but left the user app to restore previous irq status.

		config FREERTOS_SMP_TEMP
			depends on FREERTOS_SMP
			bool "SMP TEMP code"
			default n

		config FREERTOS_RTT_MONITOR
			depends on FREERTOS_SMP
			bool "FreeRTOS Segger Real-Time Transfer"
			default n

		config FREERTOS_USE_TICKLESS_IDLE
			depends on FREERTOS_V10 || FREERTOS_SMP
			int "Set FreeRTOS Use Tickless Idle"
			default 2
			help
				Use tickless idle, can be 0/1/2

		config FREERTOS_TICK_RATE_HZ
			depends on FREERTOS
			int "Set FreeRTOS tick count per second"
			default 1000
			help
				System tick count per second, can be 1-1000
        
        config BK_OS_TIMER_DEBUG
            bool "Enable OS timer Debug"
            default y
            help
				when turn on the marco,the current task TCB information
				will be added every time the software timer command is sent
        
		config DEBUG_RTOS_TIMER
			bool "Enable OS adapter layer timer Debug"
			default n
			help
				when turn on the marco, the System will output timer related
				debug information

		config RTOS_TIMER_DEBUG_CNT
			depends on DEBUG_RTOS_TIMER
			int "OS adapter layer timer Debug count value"
			default 128
			help
				set OS adapter layer timer Debug count value  

		config FREERTOS_HISTORY_CPU_PERCENT
			bool "Enable FreeRTOS CPU usage percent record"
			default n
			help   
				Enabling this marco allows you to output CPU utilization over 
				a specified period via commands,with the duration being configurable
				(e.g.,5 seconds, 10 seconds,etc.).

		config USE_STATIC_TASK_NAME
			bool "Use Static Task Name"
			default y
			help
				When this marco is enabled, the task name will be set as constant string.
				and the incoming parameters are directly used internally, not copied.

		config DYNAMIC_TASK_NAME_LEN
			int "set Dynamic Task Name Len"
			default 16
			help
				When the task name used the native method of FreeRTOS,the
				task name is copied, and this marco can be configured to 
				set the maximum length of the task name.

	endmenu

	menu "Modify LITEOS_M Config"

		config LITEOS_M
			bool "Enable Liteos_m"
			default n

		config LITEOS_M_V3
			bool "Enable Liteos_m_v3"
			default n
			help
				liteos_m v3.0.1-LTS

		config LITEOS_M_BK
			depends on LITEOS_M_V3
			bool "Enable Liteos_m_bk"
			default n
			help
				liteos_m bk adapter

	endmenu

	menu "Modify NON_OS Config"

		config NON_OS
			bool "Enable Non_os"
			default n

	endmenu

	menu "Modify Memory Debug Config"

		config MALLOC_STATIS
			bool "Enable Malloc Statis"
			default n
			help
				enable malloc statistics

		config MEM_DEBUG
			bool "Enable Mem Debug"
			default n
			help
				When this option is enable, more memory will be consumed because
				a fixed length debug block will be appended to every memory allocated
				from heap.
				Moreover, suggest disable task/watchdog when this option is enabled
				in case os_dump_memory_stats() triggers watchdog.

		config MEM_DEBUG_FUNC_NAME
			depends on MEM_DEBUG
			bool "Enable Mem Debug Func Name"
			default y

		config MEM_DEBUG_FUNC_NAME_LEN
			depends on MEM_DEBUG_FUNC_NAME
			int "Set Mem Debug Func Name Len"
			default 16
			help
				set memory debug function name length

		config MEM_DEBUG_TASK_NAME
			depends on MEM_DEBUG
			bool "Enable Mem Debug Task Name"
			default y

		config MEM_DEBUG_TASK_NAME_LEN
			depends on MEM_DEBUG_TASK_NAME
			int "Set Mem Debug Task Name Len"
			default 8
			help
				set memory debug task name length
        
        config MEM_DEBUG_OVERFLOW
			bool "Enable memory overflow debug"
			default n
        
		config MEM_OVERFLOW_FREE_RECORD_MAX
			depends on MEM_DEBUG_OVERFLOW
			int "Set memory overflow free record len"
			default 512
        
        config MEM_OVERFLOW_MALLOC_RECORD_MAX
			depends on MEM_DEBUG_OVERFLOW
			int "Set memory overflow malloc record len"
			default 256
        
        config MEM_OVERFLOW_FREELIST_RECORD_MAX
			depends on MEM_DEBUG_OVERFLOW
			int "Set memory overflow freelist record len"
			default 128

	endmenu

endmenu
