mirror of
https://github.com/espressif/ESP8266_RTOS_SDK.git
synced 2025-05-28 21:48:05 +08:00
177 lines
6.5 KiB
Plaintext
177 lines
6.5 KiB
Plaintext
menu "FreeRTOS"
|
|
|
|
config DISABLE_FREERTOS
|
|
bool "Disable FreeRTOS"
|
|
default n
|
|
help
|
|
Enable this option, FreeRTOS will not be compiled and linked, and the user
|
|
can user other OS platform.
|
|
|
|
config FREERTOS_ENABLE_REENT
|
|
bool "Enable \"reent\" function"
|
|
default n
|
|
select NEWLIB_ENABLE
|
|
help
|
|
Enable "reent" function and FreeRTOS should use "reent" function of newlib.
|
|
|
|
The configuration will enable newlib.
|
|
|
|
config FREERTOS_HZ
|
|
int "Tick rate (Hz)"
|
|
range 1 1000
|
|
default 100
|
|
help
|
|
Select the tick rate at which FreeRTOS does pre-emptive context switching.
|
|
|
|
The value must be the divisor of 1000, otherwise it may cause time mistake.
|
|
|
|
config FREERTOS_MAX_HOOK
|
|
int "FreeRTOS hook max number"
|
|
range 1 16
|
|
default 2
|
|
help
|
|
configurate the max number of FreeRTOS hook function.
|
|
|
|
config FREERTOS_IDLE_TASK_STACKSIZE
|
|
int "Idle Task stack size"
|
|
range 1024 32768
|
|
default 1024
|
|
help
|
|
The idle task has its own stack, sized in bytes. The default size is enough for most uses. Size can be reduced
|
|
to 1024 bytes if no (or simple) FreeRTOS idle hooks are used and pthread local storage or FreeRTOS local storage
|
|
cleanup callbacks are not used.
|
|
|
|
The stack size may need to be increased above the default if the app installs idle or thread local storage
|
|
cleanup hooks that use a lot of stack memory.
|
|
|
|
config FREERTOS_ISR_STACKSIZE
|
|
int "ISR stack size"
|
|
range 512 8192
|
|
default 512
|
|
help
|
|
The interrupt handlers have their own stack. The size of the stack can be defined here.
|
|
|
|
config FREERTOS_EXTENED_HOOKS
|
|
bool "Use FreeRTOS extened hooks"
|
|
default n
|
|
help
|
|
By using the "esp_register_freertos_xxx_hook system", extened hook function offers a number
|
|
of registerable hooks/callback functions that are called when a timer tick happens,
|
|
the idle thread runs etc.
|
|
|
|
Otherwise User can also use FreeRTOS raw hook functions "vApplicationIdleHook" and
|
|
"vApplicationTickHook".
|
|
|
|
config FREERTOS_GLOBAL_DATA_LINK_IRAM
|
|
bool "Link FreeRTOS global data to IRAM"
|
|
default y
|
|
depends on !LWIP_HIGH_THROUGHPUT
|
|
depends on !SOC_FULL_ICACHE
|
|
help
|
|
Link FreeRTOS global data(.bss .data COMMON) from DRAM to IRAM.
|
|
|
|
config FREERTOS_CODE_LINK_TO_IRAM
|
|
bool "Link FreeRTOS code to IRAM"
|
|
default n
|
|
help
|
|
Link FreeRTOS code from Flash to IRAM.
|
|
|
|
config FREERTOS_TIMER_STACKSIZE
|
|
int "Timer stack size"
|
|
default 2048
|
|
help
|
|
The size of the stack used by the timer in FreeRTOS.
|
|
|
|
config TASK_SWITCH_FASTER
|
|
bool "Task switch faster"
|
|
default y
|
|
help
|
|
Enable this option, linking task switch function and its father functions to IRAM
|
|
to speed up task switch. It is specific for faster I/O application and so on.
|
|
|
|
But it may cost more 1KB IRAM, so user global heap may decrease 1KB.
|
|
|
|
config USE_QUEUE_SETS
|
|
bool "Using Queue Sets"
|
|
default n
|
|
help
|
|
Enable this option, the FreeRTOS macro "configUSE_QUEUE_SETS" in file "FreeRTOSConfig.h" will be set to be 1.
|
|
|
|
config ENABLE_FREERTOS_SLEEP
|
|
bool "Enable FreeRTOS SLEEP"
|
|
default n
|
|
help
|
|
Enable this option, FreeRTOS sleep module at idle task will be enable.
|
|
|
|
The module is not working now, so if users want to make it work, they should do this themselves.
|
|
|
|
config FREERTOS_USE_TRACE_FACILITY
|
|
bool "Enable FreeRTOS trace facility"
|
|
default n
|
|
help
|
|
If enabled, configUSE_TRACE_FACILITY will be defined as 1 in FreeRTOS.
|
|
This will allow the usage of trace facility functions such as
|
|
uxTaskGetSystemState().
|
|
|
|
config FREERTOS_USE_STATS_FORMATTING_FUNCTIONS
|
|
bool "Enable FreeRTOS stats formatting functions"
|
|
depends on FREERTOS_USE_TRACE_FACILITY
|
|
default n
|
|
help
|
|
If enabled, configUSE_STATS_FORMATTING_FUNCTIONS will be defined as 1 in
|
|
FreeRTOS. This will allow the usage of stats formatting functions such
|
|
as vTaskList().
|
|
|
|
config FREERTOS_GENERATE_RUN_TIME_STATS
|
|
bool "Enable FreeRTOS to collect run time stats"
|
|
default n
|
|
select FREERTOS_USE_TRACE_FACILITY
|
|
select FREERTOS_USE_STATS_FORMATTING_FUNCTIONS
|
|
help
|
|
If enabled, configGENERATE_RUN_TIME_STATS will be defined as 1 in
|
|
FreeRTOS. This will allow FreeRTOS to collect information regarding the
|
|
usage of processor time amongst FreeRTOS tasks. Run time stats are
|
|
generated using either the ESP Timer or the CPU Clock as the clock
|
|
source (Note that run time stats are only valid until the clock source
|
|
overflows). The function vTaskGetRunTimeStats() will also be available
|
|
if FREERTOS_USE_STATS_FORMATTING_FUNCTIONS and
|
|
FREERTOS_USE_TRACE_FACILITY are enabled. vTaskGetRunTimeStats() will
|
|
display the run time of each task as a % of the total run time of all
|
|
CPUs (task run time / no of CPUs) / (total run time / 100 )
|
|
|
|
choice FREERTOS_RUN_TIME_STATS_CLK
|
|
prompt "Choose the clock source for run time stats"
|
|
depends on FREERTOS_GENERATE_RUN_TIME_STATS
|
|
default FREERTOS_RUN_TIME_STATS_USING_ESP_TIMER
|
|
help
|
|
Choose the clock source for FreeRTOS run time stats. Options are CPU0's
|
|
CPU Clock or the ESP Timer. Both clock sources are 32 bits. The CPU
|
|
Clock can run at a higher frequency hence provide a finer resolution
|
|
but will overflow much quicker. Note that run time stats are only valid
|
|
until the clock source overflows.
|
|
|
|
config FREERTOS_RUN_TIME_STATS_USING_ESP_TIMER
|
|
bool "Use ESP TIMER for run time stats"
|
|
help
|
|
ESP Timer will be used as the clock source for FreeRTOS run time stats.
|
|
The ESP Timer runs at a frequency of 1MHz regardless of Dynamic
|
|
Frequency Scaling. Therefore the ESP Timer will overflow in
|
|
approximately 4290 seconds.
|
|
|
|
config FREERTOS_RUN_TIME_STATS_USING_CPU_CLK
|
|
bool "Use CPU Clock for run time stats"
|
|
help
|
|
CPU Clock will be used as the clock source for the generation of run
|
|
time stats. The CPU Clock has a frequency dependent on
|
|
ESP32_DEFAULT_CPU_FREQ_MHZ and Dynamic Frequency Scaling (DFS).
|
|
Therefore the CPU Clock frequency can fluctuate between 80 to 240MHz.
|
|
Run time stats generated using the CPU Clock represents the number of
|
|
CPU cycles each task is allocated and DOES NOT reflect the amount of
|
|
time each task runs for (as CPU clock frequency can change). If the CPU
|
|
clock consistently runs at the maximum frequency of 240MHz, it will
|
|
overflow in approximately 17 seconds.
|
|
|
|
endchoice
|
|
|
|
endmenu
|