ESP-IDF环境下ESP32开发-SDK配置调整(sdkconfig)
摘要:本文介绍了如何优化ESP32-S3R8N16开发板的资源配置,包括调整16MB外置Flash和8MB PSRAM。首先通过SDK配置编辑器设置系统时钟为240MHz、Flash大小为16MB。接着通过在sdkconfig文件中手动添加PSRAM支持配置项,并修改CMakeLists.txt添加必要的组件依赖。最后在main文件中添加相关代码,实现了开机时显示可用外部存储和主频信息的功能。通过
我的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.txt 在 ESP-IDF(项目中扮演着至关重要的角色,它是 项目构建配置的核心文件,用于告诉构建系统(基于 CMake)如何编译和链接你的代码。)文件,
在PRIV_REQUIRES后面加上 spi_flash esp_psram heap ,从而声明当前这个CMakeLists.txt所在的文件夹下需要使用这3个组件。
增加INCLUDE_DIRS "." ,-为本组件增加头文件搜索路径。这里把当前目录( main/ )加入 include path。 有了这个设置,你可以在代码里用 #include "my_local_header.h" 直接包含本组件下的头文件。如下图:
然后点击小火苗图标,编译 烧录 监视,可以看到修改的配置已经成功
更多推荐


所有评论(0)