avatar

松果工作室

欢迎光临

  • 首页
  • ESP
  • LVGL
  • CubeMX
  • freeRTOS
  • 快速笔记
  • 个人收藏
  • 我的服务
  • 考察日志
Home ESP32c3 内存占用测试报告
文章

ESP32c3 内存占用测试报告

Posted 2026-06-7 Updated 2026-06- 14
By YCP
22~28 min read

SDK CONFIG DEFAULT

# CPU
CONFIG_PM_ENABLE=y
CONFIG_PM_DFS_INIT_AUTO=y
CONFIG_FREERTOS_USE_TICKLESS_IDLE=y
CONFIG_ESPNOW_LIGHT_SLEEP=y

# ESP
#CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
#CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
#CONFIG_COMPILER_OPTIMIZATION_PERF=y
CONFIG_FREERTOS_HZ=1000

# CSV
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions_4mb_ota.csv"

# USER CONFIG
CONFIG_PRODUCT_NAME="jlcboard"
CONFIG_WLS_LVGL=n
CONFIG_WLS_ESP_NOW=n

# other
CONFIG_CAPTIVE_PORTAL_ENABLE_DHCP_OPTION_114=n
CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=10

CONFIG_BT_ENABLED=y
CONFIG_BT_NIMBLE_ENABLED=y
CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y
CONFIG_BT_BLE_50_FEATURES_SUPPORTED=n

APSTA WITHOUT BT

任务计算占用(B)占用(KiB)
wls_evt_task266420 − 25562010800 B10.55 KiB
wls_poll_task255620 − 2511804440 B4.34 KiB
ap_sta_netif_init_without_ap251180 − 20364447536 B46.42 KiB
littlefs203644 − 2018881756 B1.71 KiB
start_sta201888 − 1966205268 B5.14 KiB
webserver196620 − 1928763744 B3.66 KiB
tcp192876 − 1877245152 B5.03 KiB

APSTA WITH BT

阶段free_size(B)变化(B)占用(KiB)说明
初始启动235088——GPIO/init 后
WiFi STA init 前224288-1080010.55 KiBwls_evt_task
WiFi init 中219848-44404.34 KiBwls_poll_task
esp_wifi_start()171852-4799646.87 KiBap_sta_netif_init + WiFi driver
littlefs mount170024-18281.79 KiBlittlefs
AP + DHCP163528-64966.34 KiBstart_sta
HTTP Server154804-87248.52 KiBwebserver
TCP socket(502)149876-49284.81 KiBtcp
BLE/NimBLE init90696-5918057.79 KiBBLE controller + host + GATT
稳定后95396+4700+4.59 KiB回收部分临时内存

APSTA WITH BT(优化BT占用)

阶段free(B)变化(B)KiB
初始256340——
wls_evt_task245540-1080010.55
wls_poll_task241100-44404.34
WiFi STA193104-4799646.87
littlefs191276-18281.79
AP + DHCP184780-64966.34
webserver176056-87248.52
tcp socket171128-49284.81
BLE init + NimBLE126016-4511244.05

APSTA WITH BT(优化BT WIFI 占用)

阶段free(B)差值(B)KiB
初始257844——
wls_evt_task247044-1080010.55
wls_poll_task242604-44404.34
WiFi STA start201480-4112440.16
littlefs199652-18281.79
AP + DHCP193196-64566.30
webserver184620-85768.38
tcp socket179732-48884.77
BLE + NimBLE134628-4510444.05

优化 TLS

优化 TLS 前

I (111119) wls_memory: get_free_size = 87292
I (111120) wls_memory: get_minimum_free_size = 38080
I (111124) wls_memory: get_largest_free_block = 36864
I (111129) wls_memory: ------------------------------
I (111135) mem_task: top 8 free blocks:
I (111140) mem_task:   #1: 37036 B
I (111144) mem_task:   #2: 25172 B
I (111148) mem_task:   #3: 10148 B
I (111152) mem_task:   #4: 7776 B
I (111156) mem_task:   #5: 2216 B
I (111160) mem_task:   #6: 1764 B
I (111164) mem_task:   #7: 1092 B
I (111168) mem_task:   #8: 688 B

TLS 动态分配 不常驻

I (136212) wls_memory: get_free_size = 92528
I (136212) wls_memory: get_minimum_free_size = 81360
I (136216) wls_memory: get_largest_free_block = 65536
I (136222) wls_memory: ------------------------------
I (136228) mem_task: top 8 free blocks:
I (136232) mem_task:   #1: 69100 B
I (136237) mem_task:   #2: 10148 B
I (136242) mem_task:   #3: 7776 B
I (136246) mem_task:   #4: 2864 B
I (136249) mem_task:   #5: 1700 B
I (136254) mem_task:   #6: 732 B
I (136256) mem_task:   #7: 36 B
I (136260) mem_task:   #8: 32 B

相同代码 ESP32s3 的占用情况,多了 50kb
但奇怪的是,ESP32s3 明明比 c3 多了 112kb sram

I (392276) wls_memory: get_free_size = 151032
I (392276) wls_memory: get_minimum_free_size = 137704
I (392280) wls_memory: get_largest_free_block = 88064
I (392286) wls_memory: ------------------------------
I (392292) mem_task: top 8 free blocks:
I (392296) mem_task:   #1: 89172 B
I (392300) mem_task:   #2: 32024 B
I (392305) mem_task:   #3: 21564 B
I (392309) mem_task:   #4: 7688 B
I (392313) mem_task:   #5: 252 B
I (392317) mem_task:   #6: 224 B
I (392320) mem_task:   #7: 32 B
I (392324) mem_task:   #8: 12 B

最终优化 SDKCONFIG

# CPU
CONFIG_PM_ENABLE=y
CONFIG_PM_DFS_INIT_AUTO=y
CONFIG_FREERTOS_USE_TICKLESS_IDLE=y
CONFIG_ESPNOW_LIGHT_SLEEP=y

# ESP
#CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
#CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
#CONFIG_COMPILER_OPTIMIZATION_PERF=y
CONFIG_FREERTOS_HZ=1000

# CSV
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions_4mb_ota.csv"

# USER CONFIG
CONFIG_PRODUCT_NAME="jlcboard"
CONFIG_WLS_LVGL=n
CONFIG_WLS_ESP_NOW=n

# other
CONFIG_CAPTIVE_PORTAL_ENABLE_DHCP_OPTION_114=n
CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=10

# BT config
CONFIG_BT_ENABLED=y
CONFIG_BT_NIMBLE_ENABLED=y
CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y
CONFIG_BT_BLE_50_FEATURES_SUPPORTED=n
CONFIG_SPI_FLASH_AUTO_SUSPEND=y
CONFIG_BT_CTRL_RUN_IN_FLASH_ONLY=y

CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1
CONFIG_BT_NIMBLE_MAX_BONDS=1
CONFIG_BT_NIMBLE_MAX_CCCDS=1

CONFIG_BT_NIMBLE_ROLE_CENTRAL=n
CONFIG_BT_NIMBLE_ROLE_PERIPHERAL=y
CONFIG_BT_NIMBLE_ROLE_BROADCASTER=y
CONFIG_BT_NIMBLE_ROLE_OBSERVER=n

CONFIG_BT_NIMBLE_SECURITY_ENABLE=n
CONFIG_BT_NIMBLE_SM_LEGACY=n
CONFIG_BT_NIMBLE_SM_SC=n
CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n

CONFIG_BT_NIMBLE_MSYS_1_BLOCK_COUNT=10
CONFIG_BT_NIMBLE_MSYS_1_BLOCK_SIZE=100
CONFIG_BT_NIMBLE_MSYS_2_BLOCK_COUNT=4
CONFIG_BT_NIMBLE_MSYS_2_BLOCK_SIZE=320
CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15

# WIFI
#CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n
CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=6
CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=20
CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=20
CONFIG_ESP_WIFI_MGMT_SBUF_NUM=16
CONFIG_LWIP_MAX_ACTIVE_TCP=6
CONFIG_LWIP_MAX_LISTENING_TCP=4
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=4320
CONFIG_LWIP_TCP_WND_DEFAULT=4320

CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=16
CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=16
CONFIG_ESP_WIFI_MGMT_SBUF_NUM=12
CONFIG_ESP_WIFI_SOFTAP_BEACON_MAX_LEN=384
CONFIG_LWIP_IPV6=n
CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT=n

# TLS
CONFIG_MBEDTLS_DYNAMIC_BUFFER=y
CONFIG_MBEDTLS_DYNAMIC_FREE_CONFIG_DATA=y
CONFIG_MBEDTLS_DYNAMIC_FREE_CA_CERT=y

最终内存占用

AP + STA + NIMBLE + MQTT + HTTPS
ESP32c3

free_size = 92528
minimum_free_size = 81360
largest_free_block = 65536
------------------------------
#1: 69100 B
#2: 10148 B
#3: 7776 B
#4: 2864 B
#5: 1700 B
#6: 732 B

ESP32s3

free_size = 151032
minimum_free_size = 137704
largest_free_block = 88064
------------------------------
#1: 89172 B
#2: 32024 B
#3: 21564 B
#4: 7688 B
#5: 1700 B
#6: 252 B
ESP
License:  CC BY 4.0
Share

Further Reading

OLDER

nimble

NEWER

ESP Event

Recently Updated

  • nimble
  • ESP32c3 内存占用测试报告
  • ESP Event
  • HTTP 快速刷新
  • [adb] 读取屏幕内容与点击,用于测试

Trending Tags

LVGL WCH Linux Elec ThatProject freeRTOS STM ESP Flutter Others

Contents

©2026 松果工作室. Some rights reserved.

Using the Halo theme Chirpy