fix(ipc): fixed IPC task ending up in PSRAM

With CONFIG_FREERTOS_PLACE_TASK_STACKS_IN_EXT_RAM enabled IPC
task would end up in PSRAM, causing issues with disabling cache
This commit is contained in:
Marius Vikhammer
2026-08-10 10:02:48 +02:00
committed by luaijun
parent a3a20a7a27
commit c41541b83b
2 changed files with 7 additions and 5 deletions

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2026 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -18,6 +18,7 @@
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/semphr.h"
#include "freertos/idf_additions.h"
#define IPC_MAX_PRIORITY (configMAX_PRIORITIES - 1)
@@ -111,8 +112,9 @@ static void esp_ipc_init(void)
task_name[3] = i + (char)'0';
s_ipc_mutex[i] = xSemaphoreCreateMutexStatic(&s_ipc_mutex_buffer[i]);
s_ipc_ack[i] = xSemaphoreCreateBinaryStatic(&s_ipc_ack_buffer[i]);
BaseType_t res = xTaskCreatePinnedToCore(ipc_task, task_name, IPC_STACK_SIZE, (void*) i,
IPC_MAX_PRIORITY, &s_ipc_task_handle[i], i);
BaseType_t res = xTaskCreatePinnedToCoreWithCaps(ipc_task, task_name, IPC_STACK_SIZE, (void*) i,
IPC_MAX_PRIORITY, &s_ipc_task_handle[i], i,
MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT);
assert(res == pdTRUE);
(void)res;
}

View File

@@ -1,2 +1,2 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H21 | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 | ESP32-S31 | Linux |
| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | --------- | -------- | -------- | -------- | -------- | --------- | ----- |
| Supported Targets | ESP32 | ESP32-C5 | ESP32-C61 | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 | ESP32-S31 |
| ----------------- | ----- | -------- | --------- | -------- | -------- | -------- | -------- | --------- |