乐鑫技术交流
直播中

莫循虎

8年用户 1032经验值
私信 关注
[问答]

求助,关于ESP32-S3-WROOM-2 Flash和PSRAM的问题求解

我用的模块是ESP32-S3-WROOM-2 N32R8V,Flash是32M的,PSRAM是8M的
问题:
1. 我用IDF4.4编译的时候,Flash设置最大支持到16M,压根没有32M的选项,在不改变IDF环境的前提下,如何设置成32M?
2. menuconfig打开 Support for external, SPI-connected RAM 选项后,通过gc.mem_free()得到的数值是3663856,也就是只有3M多点,哪里的问题?
                                                                                                                                                              

回帖(1)

小香干

2024-6-14 16:50:34
1. 关于Flash设置问题:

ESP32-S3-WROOM-2模块的Flash容量为32M,但是ESP-IDF 4.4版本可能没有直接支持32M的选项。在不改变IDF环境的前提下,您可以尝试以下方法:

- 检查您的ESP-IDF版本是否为最新版本。如果不是,请升级到最新版本,因为新版本可能已经支持32M Flash。
- 如果已经是最新版本,您可以尝试修改`esp32s3/ld/esp32s3.project.ld`文件中的Flash分区表。在该文件中,您可以找到类似以下内容的Flash分区表:

```
flash_partitions:
    partitions:
        - { name: "storage", size: 0x100000, type: spif }
        - { name: "app1", size: 0x1B0000, type: app }
        - { name: "app2", size: 0x1B0000, type: app }
```

将`size`参数调整为32M(0x2000000)或更接近32M的值。例如:

```
flash_partitions:
    partitions:
        - { name: "storage", size: 0x2000000, type: spif }
        - { name: "app1", size: 0x2000000, type: app }
        - { name: "app2", size: 0x2000000, type: app }
```

请注意,这可能会影响分区的可用空间和布局。在修改后,请确保重新编译和烧录您的应用程序。

2. 关于PSRAM问题:

当您启用了外部SPI连接的RAM支持后,gc.mem_free()返回的数值可能不是实际可用的PSRAM容量。这可能是由于以下原因:

- 确保您已经正确配置了PSRAM。在`menuconfig`中,选择`Component config` > `ESP32-S3-specific` > `SPI RAM`,然后设置`SPI RAM mode`和`SPI RAM size`。
- 检查您的代码是否正确地使用了PSRAM。在ESP-IDF中,您可以使用`esp_psram.h`头文件中的函数来操作PSRAM。例如,使用`esp_psram_enable()`函数启用PSRAM,然后使用`malloc()`或`calloc()`等函数分配PSRAM内存。

如果问题仍然存在,您可以尝试以下方法:

- 检查您的应用程序是否占用了大量内存。这可能导致gc.mem_free()返回的可用内存小于预期。
- 检查您的应用程序是否正确地使用了PSRAM。确保您分配的内存来自PSRAM而不是内部RAM。

希望这些建议能帮助您解决问题。如果问题仍然存在,请随时提供更多详细信息,以便我们能够更好地帮助您。
举报

更多回帖

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