我的ESP32-S3R8N16开发板是叠封了8M的PSRAM,以及16MB的外置FLASH,在新建的工程的基础上此篇记录如何把他利用起来!


一.调整芯片flash和CPU主频

根据自己的开发板的资源,例如调整FLASH和RAM的大小,来配置SDK,从而最大限度利用好开发板的资源!

点击左侧工具栏下的ESP-IDF图标,然后在命令工具下找到  SDK配置编辑器  ,点击进去配置。

来到该界面下,现在我查找我的开发板的资源,根据实际资源来修改SDK。目前我这款 微雪电子1.69寸触摸屏LCD的内存资源是:内置512KB的SRAM和384KB的ROM,叠封了8MB的PSRAM并外接了16MB的Flash,主频240MHZ。

左侧找到:ESP-MM: Memory Management Configurations,进行配置。

将系统时钟改为240MHZ,SPIflash大小改为16MB


二.调整芯片PSRAM

对于PSRAM,我第一次打开这个SDK编辑器的时候,在上面搜索PSRAM并没有找到任何的修改项!问了Trae内置AI以后,需要在sdkconfig文件中收到添加PSRAM功能,如果没有sdkconfig这个文件夹,那么你可能要先点击下方的 “扳手” 按钮编译一次。
在sdkconfig中,增加如下配置
CONFIG_ESP_SLEEP_PSRAM_LEAKAGE_WORKAROUND=y
 


#
# ESP PSRAM
#
CONFIG_SPIRAM=y

#
# SPI RAM config
#
# CONFIG_SPIRAM_MODE_QUAD is not set
CONFIG_SPIRAM_MODE_OCT=y
CONFIG_SPIRAM_TYPE_AUTO=y
# CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set
CONFIG_SPIRAM_CLK_IO=30
CONFIG_SPIRAM_CS_IO=26
# CONFIG_SPIRAM_XIP_FROM_PSRAM is not set
# CONFIG_SPIRAM_FETCH_INSTRUCTIONS is not set
# CONFIG_SPIRAM_RODATA is not set
# CONFIG_SPIRAM_SPEED_80M is not set
CONFIG_SPIRAM_SPEED_40M=y
CONFIG_SPIRAM_SPEED=40
# CONFIG_SPIRAM_ECC_ENABLE is not set
CONFIG_SPIRAM_BOOT_HW_INIT=y
CONFIG_SPIRAM_BOOT_INIT=y
CONFIG_SPIRAM_PRE_CONFIGURE_MEMORY_PROTECTION=y
# CONFIG_SPIRAM_IGNORE_NOTFOUND is not set
# CONFIG_SPIRAM_USE_MEMMAP is not set
# CONFIG_SPIRAM_USE_CAPS_ALLOC is not set
CONFIG_SPIRAM_USE_MALLOC=y
CONFIG_SPIRAM_MEMTEST=y
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=16384
# CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP is not set
CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=32768
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
# CONFIG_SPIRAM_ALLOW_NOINIT_SEG_EXTERNAL_MEMORY is not set
# end of SPI RAM config
# end of ESP PSRAM

CONFIG_STDATOMIC_S32C1I_SPIRAM_WORKAROUND=y

CONFIG_ESP32S3_SPIRAM_SUPPORT=y
CONFIG_DEFAULT_PSRAM_CLK_IO=30
CONFIG_DEFAULT_PSRAM_CS_IO=26

CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY=y
添加完这些选项以后,再打开sdkconfig,我发现在上方搜索框中搜索PSRAM,能够搜索到PSRAM相关更改项了,说明这个sdkconfig文件和sdk编辑器是直接相关联的!
此外,我还想在开机时打印出当前芯片可以使用的外部flash和PSRAM,以及主频所以
我们在main文件夹下的c文件增加如下改动。

此外刚刚增加的两个头文件还需要修改main文件夹下的CMakeLists.txt(CMakeLists.txtESP-IDF(项目中扮演着至关重要的角色,它是 项目构建配置的核心文件,用于告诉构建系统(基于 CMake)如何编译和链接你的代码。)文件,
在PRIV_REQUIRES后面加上 spi_flash esp_psram heap   ,从而声明当前这个CMakeLists.txt所在的文件夹下需要使用这3个组件。
增加INCLUDE_DIRS "."  ,-为本组件增加头文件搜索路径。这里把当前目录( main/ )加入 include path。 有了这个设置,你可以在代码里用 #include "my_local_header.h" 直接包含本组件下的头文件。如下图:

然后点击小火苗图标,编译 烧录 监视,可以看到修改的配置已经成功

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐