FreeRTOS-Kernel/configuration/kconfig.config
2023-09-13 22:42:16 -07:00

159 lines
5.2 KiB
Plaintext

config SELECT_CORTEX_M
bool "Using a Cortex M?"
default y
config configCPU_CLOCK_HZ
int "What is the CPU clock frequency? (hz)"
default 20000000
help
In most cases, configCPU_CLOCK_HZ must be set to the frequency of the clock
that drives the peripheral used to generate the kernels periodic tick interrupt.
The default value is set to 20MHz and matches the QEMU demo settings. Your
application will certainly need a different value so set this correctly.
This is very often, but not always, equal to the main system clock frequency
config SELECT_SYSTICKER
bool "Sys Tick timer clocked at a different frequency than CPU?"
depends on SELECT_CORTEX_M
default n
help
By default ARM Cortex-M ports generate the RTOS tick interrupt from the
Cortex-M SysTick timer. Most Cortex-M MCUs run the SysTick timer at the same
frequency as the MCU itself - when that is the case configSYSTICK_CLOCK_HZ is
not needed and should be left undefined. If the SysTick timer is clocked at a
different frequency to the MCU core then set configCPU_CLOCK_HZ to the MCU clock
frequency, as normal, and configSYSTICK_CLOCK_HZ to the SysTick clock
frequency.
config configSYSTICK_CLOCK_HZ
int "Sys Tick timer frequency? (hz)"
depends on SELECT_SYSTICKER
config configTICK_RATE_HZ
int "FreeRTOS Scheduler Tick Rate (hz)"
default 100
config configUSE_PREEMPTION
bool "Enable pre-emptive scheduling"
default y
help
https://www.freertos.org/single-core-amp-smp-rtos-scheduling.html
config configUSE_TIME_SLICING
bool "Configure the scheduler to switch between ready tasks of equal priority"
default y
help
https://freertos.org/single-core-amp-smp-rtos-scheduling.html
config configUSE_PORT_OPTIMISED_TASK_SELECTION
bool "Use an optmised task selector"
default n
help
run using an algorithm optimised to the instruction set of the target hardware -
normally using a count leading zeros assembly instruction. Set to 0 to select
the next task to run using a generic C algorithm that works for all FreeRTOS
ports. Not all FreeRTOS ports have this option. Defaults to 0 if left
undefined
config USE_TICKLESS_IDLE
bool "Use the low power tickless mode"
default n
help
https://www.freertos.org/low-power-tickless-rtos.html
config configMAX_PRIORITIES
int "How many priorities are needed in this system?"
default 5
help
Determine the number of priority levels needed in this system.
The lowest priority level is 0. The highest priority level is configMAX_PRIORITIES-1.
config configMINIMAL_STACK_SIZE
int "The stack size of the idle task"
default 128
config configMAX_TASK_NAME_LEN
int "Maximum task name length"
default 16
config configUSE_16_BIT_TICKS
bool "Use 16-bit ticks (limit maximum delay to 65535 ticks)"
default n
config configIDLE_SHOULD_YIELD
bool "Place idle tasks at a lower priority than 0 priority application tasks"
default n
config configTASK_NOTIFICATION_ARRAY_ENTRIES
int "Number of Notifications enabled per task"
default 1
config configQUEUE_REGISTRY_SIZE
int "Maximum number of queues and semaphores references from the queue registery"
default 0
config configENABLE_BACKWARD_COMPATIBILITY
bool "Enable API backward compatibility with FreeRTOS before v9"
default n
config configNUM_THREAD_LOCAL_STORAGE_POINTERS
int "Number of pointers available for thread local storage"
default 0
help
https://www.freertos.org/thread-local-storage-pointers.html
choice
prompt "Select Stack Depth Type"
default SELECT_UINT16
config SELECT_UINT16
bool "Use 16-bit types for the stack depth type"
config SELECT_UINT32
bool "Use 32-bit types for the stack depth type"
endchoice
config configSTACK_DEPTH_TYPE
string
default uint16_t
default uint32_t if SELECT_UINT32
choice
prompt "Select Message Buffer Length type"
default SELECT_SIZE_T
config SELECT_UINT8
bool "Maximum message buffer size of 255 bytes"
config SELECT_UINT16
bool "Maximum message buffer size of 65535 bytes"
config SELECT_UINT32
bool "Maximum message buffer size of 4.2GB"
config SELECT_SIZE_T
bool "Buffer sizes limited to size_t"
endchoice
config configMESSAGE_BUFFER_LENGTH_TYPE
string
default size_t
default uint8_t if SELECT_UINT8_T
default uint16_t if SELECT_UINT16_T
default uint32_t if SELECT_UINT32_T
config configUSE_NEWLIB_REENTRANT
bool "Enable reentrant newlib (EXPERIMENTAL)"
default n
help
Note: Newlib support has been included by popular demand, but is not used or
tested by the FreeRTOS maintainers themselves. FreeRTOS is not responsible for
resulting newlib operation. User must be familiar with newlib and must provide
system-wide implementations of the necessary stubs. Note that (at the time of
writing) the current newlib design implements a system-wide malloc() that must
be provided with locks.
config configUSE_TIMERS
bool "Enable software timers"
default y
config configTIMER_TASK_PRIORITY
int "Timer Task priority"
default 0
range 0 configMAX_PRIORITIES