内存优化
ESP32 内部 SRAM 有 520KB,但是系统启动后可用内存约为 300KB(以 Hello World
工程为例),很多物联网应用都会使用 Wi-Fi 连接云端/ Bluetooth 和手机通信/ OTA 升级等功能,可能会面临内存不足问题。尽管 ESP32 可以外挂 PSRAM,为了节省成本,可以不使用 PSRAM 当然最佳。
优化措施
1 修改 SPI RAM config
2 修改 BLE 的配置
如果有打开蓝牙功能,可以关闭没有使用到的蓝牙部分功能。如图:
3 检查是否有较大的全局变量
使用 make size-components
查看生成的固件内存使用情况, 查看你的模块中是否存在较大的全局变量
total sizes:
DRAM .data size: 13272 bytes
DRAM .bss size: 34024 bytes
Used static DRAM: 47296 bytes ( 77284 available, 38.0% used)
Used static IRAM: 96352 bytes ( 34720 available, 73.5% used)
Flash code: 1101719 bytes
Flash rodata: 2677