乐鑫技术交流
直播中

刘高

10年用户 946经验值
擅长:嵌入式技术
私信 关注
[问答]

esp32s2FN4R2启用内置的2M PSRAM后,不断重启怎么解决?

如题,开启外部PSRAM,检测方式不论是auto-detect还是指定EspPsram32,编译后都会不停重启
试过改变其它选项,比如内存分配方式,不管是malloc(),还是heap-caps-malloc(),还是第一个,结果都一样,下载后不停重启
环境是5.1RC

只要不启用外部PSRAM,运行就没有问题

另外,系统例程himem只能使用esp32才能正确编译,设置芯片为esp32s2就会编译出错

是不是说esp32fn4r2没法使用内置的2M内存啊?

回帖(2)

贾熹

2024-6-11 15:19:23
 根据您提供的信息,您在使用ESP32的外部PSRAM时遇到了问题。编译后的固件不断重启,不论是使用自动检测还是指定`EspPsram32`。您还尝试了更改其他选项,如内存分配方式(`malloc()`、`heap-caps-malloc()`等),但结果都是一样的,下载后不断重启。

另外,您提到系统例程`himem`只能在ESP32芯片上正确编译,如果将芯片设置为ESP32S2就会出错。您想确认是否意味着ESP32FN4R2无法使用内置的2MB内存。

首先,关于外部PSRAM的问题,我将提供一些可能的解决方案:

检查外部PSRAM的物理连接,确保它与ESP32正确连接。还要确保电源和信号线连接正常。

确保您使用的是最新版本的ESP-IDF(ESP32开发框架),因为旧版本可能存在已知的问题。更新到最新版本可能会修复一些问题。

尝试调整分配给PSRAM的大小。有时候分配的大小可能超出了可用的PSRAM容量,导致重启问题。您可以尝试减小分配的大小,看看是否能解决问题。

启用调试输出,并检查串口输出的日志,以确定是否有任何错误或警告消息。这可能会提供更多关于问题的线索。

关于系统例程`himem`无法在ESP32S2芯片上正确编译的问题,这可能是由于ESP32S2与ESP32之间的某些硬件或软件差异导致的。ESP32S2芯片具有与ESP32不同的架构和内存配置,因此一些特定的例程可能无法在ESP32S2上正常工作。确保您在开发过程中使用与您所使用的芯片相对应的文档和示例。
举报

江根磊

2024-6-11 17:12:00
从您的描述来看,ESP32-S2 FN4R2 模块在启用内置的 2M PSRAM 后,程序不断重启。这可能是由于以下几个原因导致的:

1. **硬件问题**:首先,确保您的 ESP32-S2 FN4R2 模块是完好无损的,没有硬件故障。

2. **固件问题**:检查您的 ESP32-S2 固件是否是最新版本,或者尝试使用其他版本的固件。

3. **配置问题**:在您的项目配置中,确保正确设置了 PSRAM 的相关配置。例如,在 `sdkconfig` 文件中,确保以下选项被正确设置:
   - `CONFIG_SPIRAM_SUPPORT`:启用 SPI RAM 支持。
   - `CONFIG_SPIRAM_SIZE`:设置 SPI RAM 的大小。

4. **代码问题**:检查您的代码中是否有错误,例如在使用 PSRAM 时,是否有越界访问或其他问题。

5. **电源问题**:确保您的 ESP32-S2 模块电源稳定,电压在正常范围内。

6. **环境问题**:您提到使用的是 ESP-IDF 5.1 RC 版本,可能存在一些尚未修复的 bug。尝试升级到最新版本的 ESP-IDF,或者在 ESP-IDF 的 issue 跟踪器中查找类似问题。

关于系统例程 himem 编译出错的问题,这可能是因为 ESP32-S2 和 ESP32 在某些方面存在差异,导致编译器无法正确识别。您可以尝试在 ESP-IDF 的 GitHub 仓库中查找相关问题,或者在 issue 跟踪器中提交一个新的 issue。

总之,要解决这个问题,您需要从硬件、固件、配置、代码和环境等方面进行排查。希望这些建议能帮助您解决问题。
举报

更多回帖

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