mirror of
https://github.com/esphome/esphome.git
synced 2026-05-30 15:28:34 +08:00
[esp32] Use static stack memory for loop task instead of heap (#15659)
Co-authored-by: J. Nick Koston <nick@koston.org>
This commit is contained in:
@@ -61,6 +61,9 @@ uint32_t arch_get_cpu_freq_hz() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TaskHandle_t loop_task_handle = nullptr; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
TaskHandle_t loop_task_handle = nullptr; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
||||||
|
static StaticTask_t loop_task_tcb; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
||||||
|
static StackType_t
|
||||||
|
loop_task_stack[ESPHOME_LOOP_TASK_STACK_SIZE]; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
||||||
|
|
||||||
void loop_task(void *pv_params) {
|
void loop_task(void *pv_params) {
|
||||||
setup();
|
setup();
|
||||||
@@ -73,9 +76,11 @@ extern "C" void app_main() {
|
|||||||
initArduino();
|
initArduino();
|
||||||
esp32::setup_preferences();
|
esp32::setup_preferences();
|
||||||
#if CONFIG_FREERTOS_UNICORE
|
#if CONFIG_FREERTOS_UNICORE
|
||||||
xTaskCreate(loop_task, "loopTask", ESPHOME_LOOP_TASK_STACK_SIZE, nullptr, 1, &loop_task_handle);
|
loop_task_handle = xTaskCreateStatic(loop_task, "loopTask", ESPHOME_LOOP_TASK_STACK_SIZE, nullptr, 1, loop_task_stack,
|
||||||
|
&loop_task_tcb);
|
||||||
#else
|
#else
|
||||||
xTaskCreatePinnedToCore(loop_task, "loopTask", ESPHOME_LOOP_TASK_STACK_SIZE, nullptr, 1, &loop_task_handle, 1);
|
loop_task_handle = xTaskCreateStaticPinnedToCore(loop_task, "loopTask", ESPHOME_LOOP_TASK_STACK_SIZE, nullptr, 1,
|
||||||
|
loop_task_stack, &loop_task_tcb, 1);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user