mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
Merge branch 'bugfix/s2_s3_stack_extmem_config' into 'master'
psram: make SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY configurable on S2 and S3 See merge request espressif/esp-idf!18894
This commit is contained in:
commit
9873d4d138
@ -8,10 +8,6 @@ config SPIRAM
|
|||||||
menu "SPI RAM config"
|
menu "SPI RAM config"
|
||||||
depends on SPIRAM
|
depends on SPIRAM
|
||||||
|
|
||||||
config SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY
|
|
||||||
bool
|
|
||||||
default "y"
|
|
||||||
|
|
||||||
config SPIRAM_MODE_QUAD
|
config SPIRAM_MODE_QUAD
|
||||||
bool
|
bool
|
||||||
default "y"
|
default "y"
|
||||||
@ -33,6 +29,17 @@ menu "SPI RAM config"
|
|||||||
bool "ESP-PSRAM64 or LY68L6400"
|
bool "ESP-PSRAM64 or LY68L6400"
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
|
config SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY
|
||||||
|
bool "Allow external memory as an argument to xTaskCreateStatic"
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
Accessing memory in SPIRAM has certain restrictions, so task stacks allocated by xTaskCreate
|
||||||
|
are by default allocated from internal RAM.
|
||||||
|
|
||||||
|
This option allows for passing memory allocated from SPIRAM to be passed to xTaskCreateStatic.
|
||||||
|
This should only be used for tasks where the stack is never accessed while the cache is disabled.
|
||||||
|
Cannot be used together with ESP_COREDUMP_ENABLE_TO_FLASH.
|
||||||
|
|
||||||
menu "PSRAM clock and cs IO for ESP32S2"
|
menu "PSRAM clock and cs IO for ESP32S2"
|
||||||
depends on SPIRAM
|
depends on SPIRAM
|
||||||
config DEFAULT_PSRAM_CLK_IO
|
config DEFAULT_PSRAM_CLK_IO
|
||||||
|
@ -8,10 +8,6 @@ config SPIRAM
|
|||||||
menu "SPI RAM config"
|
menu "SPI RAM config"
|
||||||
depends on SPIRAM
|
depends on SPIRAM
|
||||||
|
|
||||||
config SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY
|
|
||||||
bool
|
|
||||||
default "y"
|
|
||||||
|
|
||||||
choice SPIRAM_MODE
|
choice SPIRAM_MODE
|
||||||
prompt "Mode (QUAD/OCT) of SPI RAM chip in use"
|
prompt "Mode (QUAD/OCT) of SPI RAM chip in use"
|
||||||
default SPIRAM_MODE_QUAD
|
default SPIRAM_MODE_QUAD
|
||||||
@ -42,6 +38,17 @@ menu "SPI RAM config"
|
|||||||
bool "ESP-PSRAM64 , LY68L6400 or APS6408"
|
bool "ESP-PSRAM64 , LY68L6400 or APS6408"
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
|
config SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY
|
||||||
|
bool "Allow external memory as an argument to xTaskCreateStatic"
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
Accessing memory in SPIRAM has certain restrictions, so task stacks allocated by xTaskCreate
|
||||||
|
are by default allocated from internal RAM.
|
||||||
|
|
||||||
|
This option allows for passing memory allocated from SPIRAM to be passed to xTaskCreateStatic.
|
||||||
|
This should only be used for tasks where the stack is never accessed while the cache is disabled.
|
||||||
|
Cannot be used together with ESP_COREDUMP_ENABLE_TO_FLASH.
|
||||||
|
|
||||||
menu "PSRAM Clock and CS IO for ESP32S3"
|
menu "PSRAM Clock and CS IO for ESP32S3"
|
||||||
depends on SPIRAM
|
depends on SPIRAM
|
||||||
config DEFAULT_PSRAM_CLK_IO
|
config DEFAULT_PSRAM_CLK_IO
|
||||||
|
@ -139,14 +139,7 @@ External RAM use has the following restrictions:
|
|||||||
|
|
||||||
* In general, external RAM will not be used as task stack memory. :cpp:func:`xTaskCreate` and similar functions will always allocate internal memory for stack and task TCBs.
|
* In general, external RAM will not be used as task stack memory. :cpp:func:`xTaskCreate` and similar functions will always allocate internal memory for stack and task TCBs.
|
||||||
|
|
||||||
.. only:: esp32
|
The option :ref:`CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY` can be used to allow placing task stacks into external memory. In these cases :cpp:func:`xTaskCreateStatic` must be used to specify a task stack buffer allocated from external memory, otherwise task stacks will still be allocated from internal memory.
|
||||||
|
|
||||||
The option :ref:`CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY` can be used to place task stacks into external memory. In these cases :cpp:func:`xTaskCreateStatic` must be used to specify a task stack buffer allocated from external memory, otherwise task stacks will still be allocated from internal memory.
|
|
||||||
|
|
||||||
|
|
||||||
.. only:: not esp32
|
|
||||||
|
|
||||||
:cpp:func:`xTaskCreateStatic` can be used to explicitly place task stacks into external memory.
|
|
||||||
|
|
||||||
|
|
||||||
Failure to initialize
|
Failure to initialize
|
||||||
|
@ -139,15 +139,8 @@ ESP-IDF 启动过程中,片外 RAM 被映射到以 {IDF_TARGET_PSRAM_ADDR_STAR
|
|||||||
|
|
||||||
* 一般来说,片外 RAM 不会用作任务堆栈存储器。:cpp:func:`xTaskCreate` 及类似函数始终会为堆栈和任务 TCB 分配片上储存器。
|
* 一般来说,片外 RAM 不会用作任务堆栈存储器。:cpp:func:`xTaskCreate` 及类似函数始终会为堆栈和任务 TCB 分配片上储存器。
|
||||||
|
|
||||||
.. only:: esp32
|
|
||||||
|
|
||||||
可以使用 :ref:`CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY` 选项将任务堆栈放入片外存储器。这时,必须使用 :cpp:func:`xTaskCreateStatic` 指定从片外存储器分配的任务堆栈缓冲区,否则任务堆栈将会从片上存储器分配。
|
|
||||||
|
|
||||||
|
|
||||||
.. only:: not esp32
|
|
||||||
|
|
||||||
可以使用 :cpp:func:`xTaskCreateStatic` 显式地将任务堆栈放入片外存储器。
|
|
||||||
|
|
||||||
|
可以使用 :ref:`CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY` 选项将任务堆栈放入片外存储器。这时,必须使用 :cpp:func:`xTaskCreateStatic` 指定从片外存储器分配的任务堆栈缓冲区,否则任务堆栈将会从片上存储器分配。
|
||||||
|
|
||||||
初始化失败
|
初始化失败
|
||||||
=====================
|
=====================
|
||||||
|
Loading…
Reference in New Issue
Block a user