乐鑫技术交流
直播中

陈光琦

7年用户 879经验值
私信 关注
[问答]

请问esp32S3定义的变量是在那个区域的sram还是psram ?

esp32S3 定义的变量 是在那个区域的 sram 还是 psram ?

回帖(1)

郭中

2024-6-12 16:34:17
在ESP32-S3中,定义的变量默认存储在内部SRAM中。但是,ESP32-S3也支持外部PSRAM(如果可用)。您可以根据需要将变量分配到PSRAM中。

在ESP32-S3中,有两种类型的内存:

1. SRAM(静态随机存取存储器):这是ESP32-S3的内部内存,用于存储代码和数据。默认情况下,定义的变量(如全局变量、静态变量和堆栈)存储在SRAM中。

2. PSRAM(伪静态随机存取存储器):这是一种外部内存,可以扩展ESP32-S3的存储容量。如果ESP32-S3板子配备了PSRAM,您可以使用它来存储数据。但是,将数据存储在PSRAM中需要额外的配置和编程。

要将变量分配到PSRAM中,您可以使用以下方法:

1. 使用`esp_psram_enable()`函数启用PSRAM。这需要在程序开始时调用。

2. 使用`esp_ptr_external_ram()`宏将指针转换为指向PSRAM的指针。

3. 使用`heap_caps_malloc()`函数分配PSRAM内存。这个函数允许您指定所需的内存类型(如MALLOC_CAP_SPIRAM)。

请注意,并非所有的ESP32-S3开发板都配备了PSRAM。在某些情况下,您可能需要购买具有PSRAM的特定型号。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分