esp-idf/docs/zh_CN/api-guides/inc/external-ram-esp32-notes.rst

29 lines
1.7 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

* PSRAM 中的栈:对于不以任何直接或间接方式调用 ROM 中代码的任务,选项 :ref:`CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY` 会取消 :cpp:func:`xTaskCreateStatic` 中的检查,允许任务栈存放在外部 RAM 中。但 **不建议** 使用此选项。
* 在以 80 MHz 时钟速度运行时,外部 RAM 还必须占用 HSPI 或 VSPI 总线。设置 :ref:`CONFIG_SPIRAM_OCCUPY_SPI_HOST` 选项可以选择使用的 SPI 主机。
芯片版本
==============
某些 ESP32 版本存在与外部 RAM 使用相关的问题,这些问题记录在 `ESP32 系列芯⽚勘误表`_ 文档中。ESP-IDF 会以下列特定方式处理上述错误:
ESP32 rev v0.0
--------------
ESP-IDF 并未针对该版芯片的错误提供解决方案,也不能将外部 PSRAM 映射到 ESP32 的主存储器映射中。
ESP32 rev v1.0
--------------
某些机器指令序列对外部内存进行操作时,该版芯片的错误会引发问题,详情请参阅 `ESP32 系列芯⽚勘误表`_ 第 3.2 节。为此ESP32 GCC 编译器增加了标志 ``-mfix-esp32-psram-cache-issue``,用于过滤这些序列,只输出可以安全执行的代码。请启用 :ref:`CONFIG_SPIRAM_CACHE_WORKAROUND` 选项以使用此方法。
启用此选项后ESP-IDF 会链接到重新编译且带有额外标志的 Newlib此外还会执行以下操作
- 避免使用某些 ROM 函数
- 为 Wi-Fi 栈分配静态内存
ESP32 rev v3.0
--------------
ESP32 rev v3.0 修复了 rev v1.0 中发现的 PSRAM 缓存问题。当 :ref:`CONFIG_ESP32_REV_MIN` 选项设置为 ``rev v3.0`` 时,会禁用与 PSRAM 相关的编译器解决方案。有关 ESP32 v3.0 的更多详情,请参阅 `ESP32 芯⽚版本 v3.0 使⽤指南`_