mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-03 03:31:41 +03:00
feat(freertos): added option for automatically placing task stacks in PSRAM
When CONFIG_FREERTOS_PLACE_TASK_STACKS_IN_EXT_RAM is enabled freertos will now automatically allocate task stacks to PSRAM.
This commit is contained in:
@@ -102,6 +102,10 @@ ESP-IDF 包含一系列堆 API,可以在运行时测量空闲堆内存,请
|
||||
- 避免在栈上分配大型变量。在 C 语言声明的默认作用域中,任何分配为自动变量的大型结构体或数组都会占用栈内存。要优化这些变量占用的栈内存大小,可以使用静态分配,或仅在需要时从堆中动态分配。
|
||||
- 避免调用深度递归函数。尽管调用单个递归函数并不一定会占用大量栈内存,但若每个函数都包含大量基于栈的变量,那么调用这些函数的开销将会很高。
|
||||
|
||||
.. only:: SOC_SPIRAM_SUPPORTED
|
||||
|
||||
如果应用程序使用外部 RAM,启用 :ref:`CONFIG_FREERTOS_PLACE_TASK_STACKS_IN_EXT_RAM` 可以将 :cpp:func:`xTaskCreate` 或 :cpp:func:`xTaskCreatePinnedToCore` 创建的任务栈移至 PSRAM,从而减少内部 RAM 使用量。此选项对在 flash cache 禁用期间运行的任务有限制,详情请参阅 :ref:`task-stack-in-external-ram`。
|
||||
|
||||
减少任务数量
|
||||
^^^^^^^^^^^^
|
||||
|
||||
|
||||
Reference in New Issue
Block a user