mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
8babb3bca6
The previous SMP freertos round robin would skip over tasks when time slicing. This commit implements a Best Effort Round Robin where selected tasks are put to the back of the list, thus makes the time slicing more fair. - Documentation has been updated accordingly. - Tidy up vTaskSwitchContext() to match v10.4.3 more - Increased esp_ipc task stack size to avoid overflow Closes https://github.com/espressif/esp-idf/issues/7256
40 lines
1.7 KiB
Plaintext
40 lines
1.7 KiB
Plaintext
menu "IPC (Inter-Processor Call)"
|
|
|
|
config ESP_IPC_TASK_STACK_SIZE
|
|
int "Inter-Processor Call (IPC) task stack size"
|
|
range 512 65536 if !APPTRACE_ENABLE
|
|
range 2048 65536 if APPTRACE_ENABLE
|
|
default 2048 if APPTRACE_ENABLE
|
|
default 1536
|
|
help
|
|
Configure the IPC tasks stack size. One IPC task runs on each core
|
|
(in dual core mode), and allows for cross-core function calls.
|
|
|
|
See IPC documentation for more details.
|
|
|
|
The default stack size should be enough for most common use cases.
|
|
It can be shrunk if you are sure that you do not use any custom
|
|
IPC functionality.
|
|
|
|
config ESP_IPC_USES_CALLERS_PRIORITY
|
|
bool "IPC runs at caller's priority"
|
|
default y
|
|
depends on !FREERTOS_UNICORE
|
|
help
|
|
If this option is not enabled then the IPC task will keep behavior
|
|
same as prior to that of ESP-IDF v4.0, and hence IPC task will run
|
|
at (configMAX_PRIORITIES - 1) priority.
|
|
|
|
config ESP_IPC_ISR_ENABLE
|
|
bool
|
|
default y if !FREERTOS_UNICORE
|
|
help
|
|
This feature servers a similar purpose to the IPC except that the callback function is run
|
|
in the context of a level 4 interrupt (i.e., high priority/level interrupt). The IPC ISR
|
|
feature is intended for low latency execution of simple functions written in assembly on
|
|
another CPU. Due to being run in higher level interrupt context, the assembly functions
|
|
should be written in a particular way (see esp_test_ipc_isr_asm() and the "High-Level Interrupts"
|
|
chapter in hlinterrupts.rst for more details).
|
|
|
|
endmenu # "IPC (Inter-Processor Call)
|