mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-05-29 00:19:04 -04:00
159 lines
5.2 KiB
Plaintext
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 |