|
|
@@ -2,47 +2,47 @@ menu "FreeRTOS"
|
|
|
|
|
|
# This is actually also handled in the ESP32 startup code, not only in FreeRTOS.
|
|
|
config FREERTOS_UNICORE
|
|
|
- bool "Run FreeRTOS only on first core"
|
|
|
- default n
|
|
|
- help
|
|
|
- This version of FreeRTOS normally takes control of all cores of
|
|
|
- the CPU. Select this if you only want to start it on the first core.
|
|
|
- This is needed when e.g. another process needs complete control
|
|
|
- over the second core.
|
|
|
+ bool "Run FreeRTOS only on first core"
|
|
|
+ default n
|
|
|
+ help
|
|
|
+ This version of FreeRTOS normally takes control of all cores of
|
|
|
+ the CPU. Select this if you only want to start it on the first core.
|
|
|
+ This is needed when e.g. another process needs complete control
|
|
|
+ over the second core.
|
|
|
|
|
|
|
|
|
choice FREERTOS_CORETIMER
|
|
|
- prompt "Xtensa timer to use as the FreeRTOS tick source"
|
|
|
- default CONFIG_FREERTOS_CORETIMER_0
|
|
|
- help
|
|
|
- FreeRTOS needs a timer with an associated interrupt to use as
|
|
|
- the main tick source to increase counters, run timers and do
|
|
|
- pre-emptive multitasking with. There are multiple timers available
|
|
|
- to do this, with different interrupt priorities. Check
|
|
|
+ prompt "Xtensa timer to use as the FreeRTOS tick source"
|
|
|
+ default CONFIG_FREERTOS_CORETIMER_0
|
|
|
+ help
|
|
|
+ FreeRTOS needs a timer with an associated interrupt to use as
|
|
|
+ the main tick source to increase counters, run timers and do
|
|
|
+ pre-emptive multitasking with. There are multiple timers available
|
|
|
+ to do this, with different interrupt priorities. Check
|
|
|
|
|
|
config FREERTOS_CORETIMER_0
|
|
|
- bool "Timer 0 (int 6, level 1)"
|
|
|
- help
|
|
|
- Select this to use timer 0
|
|
|
+ bool "Timer 0 (int 6, level 1)"
|
|
|
+ help
|
|
|
+ Select this to use timer 0
|
|
|
|
|
|
config FREERTOS_CORETIMER_1
|
|
|
- bool "Timer 1 (int 15, level 3)"
|
|
|
- help
|
|
|
- Select this to use timer 1
|
|
|
+ bool "Timer 1 (int 15, level 3)"
|
|
|
+ help
|
|
|
+ Select this to use timer 1
|
|
|
|
|
|
config FREERTOS_CORETIMER_2
|
|
|
- bool "Timer 2 (int 16, level 5)"
|
|
|
- help
|
|
|
- Select this to use timer 2
|
|
|
+ bool "Timer 2 (int 16, level 5)"
|
|
|
+ help
|
|
|
+ Select this to use timer 2
|
|
|
|
|
|
endchoice
|
|
|
|
|
|
config FREERTOS_HZ
|
|
|
- int "Tick rate (Hz)"
|
|
|
- range 1 10000
|
|
|
- default 100
|
|
|
- help
|
|
|
- Select the tick rate at which FreeRTOS does pre-emptive context switching.
|
|
|
+ int "Tick rate (Hz)"
|
|
|
+ range 1 10000
|
|
|
+ default 100
|
|
|
+ help
|
|
|
+ Select the tick rate at which FreeRTOS does pre-emptive context switching.
|
|
|
|
|
|
config FREERTOS_ASSERT_ON_UNTESTED_FUNCTION
|
|
|
bool "Halt when an SMP-untested function is called"
|
|
|
@@ -53,149 +53,149 @@ config FREERTOS_ASSERT_ON_UNTESTED_FUNCTION
|
|
|
will throw an assert().
|
|
|
|
|
|
choice FREERTOS_CHECK_STACKOVERFLOW
|
|
|
- prompt "Check for stack overflow"
|
|
|
- default FREERTOS_CHECK_STACKOVERFLOW_QUICK
|
|
|
- help
|
|
|
- FreeRTOS can check for stack overflows in threads and trigger an user function
|
|
|
- called vApplicationStackOverflowHook when this happens.
|
|
|
+ prompt "Check for stack overflow"
|
|
|
+ default FREERTOS_CHECK_STACKOVERFLOW_QUICK
|
|
|
+ help
|
|
|
+ FreeRTOS can check for stack overflows in threads and trigger an user function
|
|
|
+ called vApplicationStackOverflowHook when this happens.
|
|
|
|
|
|
config FREERTOS_CHECK_STACKOVERFLOW_NONE
|
|
|
- bool "No checking"
|
|
|
- help
|
|
|
- Do not check for stack overflows (configCHECK_FOR_STACK_OVERFLOW=0)
|
|
|
+ bool "No checking"
|
|
|
+ help
|
|
|
+ Do not check for stack overflows (configCHECK_FOR_STACK_OVERFLOW=0)
|
|
|
|
|
|
config FREERTOS_CHECK_STACKOVERFLOW_PTRVAL
|
|
|
- bool "Check by stack pointer value"
|
|
|
- help
|
|
|
- Check for stack overflows on each context switch by checking if
|
|
|
- the stack pointer is in a valid range. Quick but does not detect
|
|
|
- stack overflows that happened between context switches
|
|
|
- (configCHECK_FOR_STACK_OVERFLOW=1)
|
|
|
+ bool "Check by stack pointer value"
|
|
|
+ help
|
|
|
+ Check for stack overflows on each context switch by checking if
|
|
|
+ the stack pointer is in a valid range. Quick but does not detect
|
|
|
+ stack overflows that happened between context switches
|
|
|
+ (configCHECK_FOR_STACK_OVERFLOW=1)
|
|
|
|
|
|
config FREERTOS_CHECK_STACKOVERFLOW_CANARY
|
|
|
- bool "Check using canary bytes"
|
|
|
- help
|
|
|
- Places some magic bytes at the end of the stack area and on each
|
|
|
- context switch, check if these bytes are still intact. More thorough
|
|
|
- than just checking the pointer, but also slightly slower.
|
|
|
- (configCHECK_FOR_STACK_OVERFLOW=2)
|
|
|
+ bool "Check using canary bytes"
|
|
|
+ help
|
|
|
+ Places some magic bytes at the end of the stack area and on each
|
|
|
+ context switch, check if these bytes are still intact. More thorough
|
|
|
+ than just checking the pointer, but also slightly slower.
|
|
|
+ (configCHECK_FOR_STACK_OVERFLOW=2)
|
|
|
endchoice
|
|
|
|
|
|
config FREERTOS_THREAD_LOCAL_STORAGE_POINTERS
|
|
|
- int "Amount of thread local storage pointers"
|
|
|
- range 0 256 if !WIFI_ENABLED
|
|
|
- range 1 256 if WIFI_ENABLED
|
|
|
- default 1
|
|
|
- help
|
|
|
- FreeRTOS has the ability to store per-thread pointers in the task
|
|
|
- control block. This controls the amount of pointers available;
|
|
|
- 0 turns off this functionality.
|
|
|
+ int "Amount of thread local storage pointers"
|
|
|
+ range 0 256 if !WIFI_ENABLED
|
|
|
+ range 1 256 if WIFI_ENABLED
|
|
|
+ default 1
|
|
|
+ help
|
|
|
+ FreeRTOS has the ability to store per-thread pointers in the task
|
|
|
+ control block. This controls the amount of pointers available;
|
|
|
+ 0 turns off this functionality.
|
|
|
|
|
|
- If using the WiFi stack, this value must be at least 1.
|
|
|
+ If using the WiFi stack, this value must be at least 1.
|
|
|
|
|
|
#This still needs to be implemented.
|
|
|
choice FREERTOS_PANIC
|
|
|
- prompt "Panic handler behaviour"
|
|
|
- default FREERTOS_PANIC_PRINT_REBOOT
|
|
|
- help
|
|
|
- If FreeRTOS detects unexpected behaviour or an unhandled exception, the panic handler is
|
|
|
- invoked. Configure the panic handlers action here.
|
|
|
+ prompt "Panic handler behaviour"
|
|
|
+ default FREERTOS_PANIC_PRINT_REBOOT
|
|
|
+ help
|
|
|
+ If FreeRTOS detects unexpected behaviour or an unhandled exception, the panic handler is
|
|
|
+ invoked. Configure the panic handlers action here.
|
|
|
|
|
|
config FREERTOS_PANIC_PRINT_HALT
|
|
|
- bool "Print registers and halt"
|
|
|
- help
|
|
|
- Outputs the relevant registers over the serial port and halt the
|
|
|
- processor. Needs a manual reset to restart.
|
|
|
+ bool "Print registers and halt"
|
|
|
+ help
|
|
|
+ Outputs the relevant registers over the serial port and halt the
|
|
|
+ processor. Needs a manual reset to restart.
|
|
|
|
|
|
config FREERTOS_PANIC_PRINT_REBOOT
|
|
|
- bool "Print registers and reboot"
|
|
|
- help
|
|
|
- Outputs the relevant registers over the serial port and immediately
|
|
|
- reset the processor.
|
|
|
+ bool "Print registers and reboot"
|
|
|
+ help
|
|
|
+ Outputs the relevant registers over the serial port and immediately
|
|
|
+ reset the processor.
|
|
|
|
|
|
config FREERTOS_PANIC_SILENT_REBOOT
|
|
|
- bool "Silent reboot"
|
|
|
- help
|
|
|
- Just resets the processor without outputting anything
|
|
|
+ bool "Silent reboot"
|
|
|
+ help
|
|
|
+ Just resets the processor without outputting anything
|
|
|
|
|
|
config FREERTOS_PANIC_GDBSTUB
|
|
|
- bool "Invoke GDBStub"
|
|
|
- help
|
|
|
- Invoke gdbstub on the serial port, allowing for gdb to attach to it to do a postmortem
|
|
|
- of the crash.
|
|
|
+ bool "Invoke GDBStub"
|
|
|
+ help
|
|
|
+ Invoke gdbstub on the serial port, allowing for gdb to attach to it to do a postmortem
|
|
|
+ of the crash.
|
|
|
endchoice
|
|
|
|
|
|
config FREERTOS_DEBUG_OCDAWARE
|
|
|
- bool "Make exception and panic handlers JTAG/OCD aware"
|
|
|
- default y
|
|
|
- help
|
|
|
- The FreeRTOS panic and unhandled exception handers can detect a JTAG OCD debugger and
|
|
|
- instead of panicking, have the debugger stop on the offending instruction.
|
|
|
+ bool "Make exception and panic handlers JTAG/OCD aware"
|
|
|
+ default y
|
|
|
+ help
|
|
|
+ The FreeRTOS panic and unhandled exception handers can detect a JTAG OCD debugger and
|
|
|
+ instead of panicking, have the debugger stop on the offending instruction.
|
|
|
|
|
|
choice FREERTOS_ASSERT
|
|
|
- prompt "FreeRTOS assertions"
|
|
|
- default FREERTOS_ASSERT_FAIL_ABORT
|
|
|
- help
|
|
|
- Failed FreeRTOS configASSERT() assertions can be configured to
|
|
|
- behave in different ways.
|
|
|
+ prompt "FreeRTOS assertions"
|
|
|
+ default FREERTOS_ASSERT_FAIL_ABORT
|
|
|
+ help
|
|
|
+ Failed FreeRTOS configASSERT() assertions can be configured to
|
|
|
+ behave in different ways.
|
|
|
|
|
|
config FREERTOS_ASSERT_FAIL_ABORT
|
|
|
- bool "abort() on failed assertions"
|
|
|
- help
|
|
|
- If a FreeRTOS configASSERT() fails, FreeRTOS will abort() and
|
|
|
- halt execution. The panic handler can be configured to handle
|
|
|
- the outcome of an abort() in different ways.
|
|
|
+ bool "abort() on failed assertions"
|
|
|
+ help
|
|
|
+ If a FreeRTOS configASSERT() fails, FreeRTOS will abort() and
|
|
|
+ halt execution. The panic handler can be configured to handle
|
|
|
+ the outcome of an abort() in different ways.
|
|
|
|
|
|
config FREERTOS_ASSERT_FAIL_PRINT_CONTINUE
|
|
|
- bool "Print and continue failed assertions"
|
|
|
- help
|
|
|
- If a FreeRTOS assertion fails, print it out and continue.
|
|
|
+ bool "Print and continue failed assertions"
|
|
|
+ help
|
|
|
+ If a FreeRTOS assertion fails, print it out and continue.
|
|
|
|
|
|
config FREERTOS_ASSERT_DISABLE
|
|
|
- bool "Disable FreeRTOS assertions"
|
|
|
- help
|
|
|
- FreeRTOS configASSERT() will not be compiled into the binary.
|
|
|
+ bool "Disable FreeRTOS assertions"
|
|
|
+ help
|
|
|
+ FreeRTOS configASSERT() will not be compiled into the binary.
|
|
|
|
|
|
endchoice
|
|
|
|
|
|
config FREERTOS_BREAK_ON_SCHEDULER_START_JTAG
|
|
|
- bool "Stop program on scheduler start when JTAG/OCD is detected"
|
|
|
- depends on FREERTOS_DEBUG_OCDAWARE
|
|
|
- default y
|
|
|
- help
|
|
|
- If JTAG/OCD is connected, stop execution when the scheduler is started and the first
|
|
|
- task is executed.
|
|
|
+ bool "Stop program on scheduler start when JTAG/OCD is detected"
|
|
|
+ depends on FREERTOS_DEBUG_OCDAWARE
|
|
|
+ default y
|
|
|
+ help
|
|
|
+ If JTAG/OCD is connected, stop execution when the scheduler is started and the first
|
|
|
+ task is executed.
|
|
|
|
|
|
menuconfig ENABLE_MEMORY_DEBUG
|
|
|
- bool "Enable heap memory debug"
|
|
|
- default n
|
|
|
- help
|
|
|
- Enable this option to show malloc heap block and memory crash detect
|
|
|
+ bool "Enable heap memory debug"
|
|
|
+ default n
|
|
|
+ help
|
|
|
+ Enable this option to show malloc heap block and memory crash detect
|
|
|
|
|
|
menuconfig FREERTOS_DEBUG_INTERNALS
|
|
|
- bool "Debug FreeRTOS internals"
|
|
|
- default n
|
|
|
- help
|
|
|
- Enable this option to show the menu with internal FreeRTOS debugging features.
|
|
|
- This option does not change any code by itself, it just shows/hides some options.
|
|
|
+ bool "Debug FreeRTOS internals"
|
|
|
+ default n
|
|
|
+ help
|
|
|
+ Enable this option to show the menu with internal FreeRTOS debugging features.
|
|
|
+ This option does not change any code by itself, it just shows/hides some options.
|
|
|
|
|
|
if FREERTOS_DEBUG_INTERNALS
|
|
|
|
|
|
config FREERTOS_PORTMUX_DEBUG
|
|
|
- bool "Debug portMUX portENTER_CRITICAL/portEXIT_CRITICAL"
|
|
|
- depends on FREERTOS_DEBUG_INTERNALS
|
|
|
- default n
|
|
|
- help
|
|
|
- If enabled, debug information (including integrity checks) will be printed
|
|
|
- to UART for the port-specific MUX implementation.
|
|
|
+ bool "Debug portMUX portENTER_CRITICAL/portEXIT_CRITICAL"
|
|
|
+ depends on FREERTOS_DEBUG_INTERNALS
|
|
|
+ default n
|
|
|
+ help
|
|
|
+ If enabled, debug information (including integrity checks) will be printed
|
|
|
+ to UART for the port-specific MUX implementation.
|
|
|
|
|
|
config FREERTOS_PORTMUX_DEBUG_RECURSIVE
|
|
|
- bool "Debug portMUX Recursion"
|
|
|
- depends on FREERTOS_PORTMUX_DEBUG
|
|
|
- default n
|
|
|
- help
|
|
|
- If enabled, additional debug information will be printed for recursive
|
|
|
- portMUX usage.
|
|
|
+ bool "Debug portMUX Recursion"
|
|
|
+ depends on FREERTOS_PORTMUX_DEBUG
|
|
|
+ default n
|
|
|
+ help
|
|
|
+ If enabled, additional debug information will be printed for recursive
|
|
|
+ portMUX usage.
|
|
|
|
|
|
endif # FREERTOS_DEBUG_INTERNALS
|
|
|
|