参考:esp 获取psram剩余大小 esp-psram_mob6454cc690811的技术博客_51CTO博客
一、目的
在学习ESP32-S3R8芯片时候,默认内存只有320KB。但其实内置了PSRAM 8M,如何使用它呢
二、问题
如下代码输出PSRAM内存情况。
#include <Arduino.h>
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.println( " PSRAM: " );
Serial.print( " Total: " );
Serial.println( ESP.getPsramSize() );
Serial.print( " Used: " );
Serial.println( ESP.getPsramSize() - ESP.getFreePsram() );
Serial.print( " Free: " );
Serial.println( ESP.getFreePsram() );
delay(1000);
}
我使用platformio配置platformio.ini文件也不生效,如下图。
build_flags =
-DBOARD_HAS_PSRAM
但是在arduino下是可以成功的,将“PSRAM”改为“OPI PSRAM”就可以成功。
三、解决方案
将platformio.ini配置中增加"board_build.arduino.memory_type=qio_opi"就可以了。
board_build.arduino.memory_type=qio_opi
build_flags =
-DBOARD_HAS_PSRAM
-mfix-esp32-psram-cache-issue
-DCONFIG_SPIRAM_CACHE_WORKAROUND