项目platformio.ini配置:
[env:esp32s3]
platform = espressif32
board = esp32-s3-devkitc-1
framework = arduino
; 指定为16MB的FLASH分区表
board_build.arduino.partitions = default_16MB.csv
; 指定FLASH和PSRAM的运行模式
board_build.arduino.memory_type = qio_opi
; 预定义宏,启用PSRAM
build_flags = -DBOARD_HAS_PSRAM
; 指定FLASH容量为16MB
board_upload.flash_size = 16MB
注:上述代码我添加时platformIO提示编码错误,将中文注释删除后正常运行
测试代码:
#include <Arduino.h>
void setup() {
Serial0.begin(115200);
Serial0.printf("Deafult free size: %d\n", heap_caps_get_free_size(MALLOC_CAP_DEFAULT));
Serial0.printf("PSRAM free size: %d\n", heap_caps_get_free_size(MALLOC_CAP_SPIRAM));
}
void loop() {
vTaskDelay(100);
Serial0.printf("Deafult free size: %d\n", heap_caps_get_free_size(MALLOC_CAP_DEFAULT));
Serial0.printf("PSRAM free size: %d\n", heap_caps_get_free_size(MALLOC_CAP_SPIRAM));
}
编译结果:
显示FLASH设置已成功
串口输出结果:
显示PSRAM已经被正确识别
参考资料:
VS Code+platformio配置ESP32-S3-N16R8(8MB PSRAM + 16MB FLASH)工程