Merge branch 'feat/ram_optimization_v5.4' into 'release/v5.4'

fix(nimble): Add support to minimize ram consumption (v5.4)

See merge request espressif/esp-idf!39619
This commit is contained in:
Rahul Tank
2025-06-26 16:35:03 +05:30
25 changed files with 1159 additions and 0 deletions
@@ -92,6 +92,35 @@ Notification sent successfully
## Note
* NVS support is not yet integrated to bonding. So, for now, bonding is not persistent across reboot.
The following configuration flags can be adjusted to significantly reduce RAM usage in your ESP-IDF project while retaining basic BLE functionality.
----------------------------------------------------------------------------------------------
| Config Option || Old → New Value || RAM Saved (Bytes) |
|--------------------------------------------------||------------------||--------------------|
| CONFIG_BT_NIMBLE_SM_SC || y → n || 2016 |
| CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION || y → n || 32 |
| CONFIG_BT_NIMBLE_GATT_MAX_PROCS || 4 → 2 || 112 |
| CONFIG_BT_NIMBLE_MAX_CONNECTIONS || 3 → 1 || 480 |
| CONFIG_BT_NIMBLE_MAX_BONDS || 3 → 1 || 448 |
| CONFIG_BT_NIMBLE_MAX_CCCDS || 8 → 1 || 112 |
| CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT || y → n || 256 |
| CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT || 30 → 15 || 240 |
| CONFIG_BT_NIMBLE_SECURITY_ENABLE || y → n || 2048 |
| CONFIG_SPI_FLASH_ROM_IMPL || n → y || 9804 |
| CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP || y → n || 8 |
| CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP || y → n || 132 |
| CONFIG_SPI_FLASH_SUPPORT_GD_CHIP || y → n || 640 |
| CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP || y → n || 0 |
| CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP || y → n || 132 |
| CONFIG_SPI_FLASH_SUPPORT_TH_CHIP || y → n || 128 |
| CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE || y → n || 696 |
| CONFIG_VFS_SUPPORT_TERMIOS || y → n || 424 |
| CONFIG_VFS_SUPPORT_IO || y → n || 3000 |
| CONFIG_COMPILER_OPTIMIZATION_SIZE || n → y || 8912 |
| CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE || n → y || 8456 |
| CONFIG_ESP_COEX_SW_COEXIST_ENABLE || y → n || 896 |
| CONFIG_LOG_DEFAULT_LEVEL_NONE || n → y || 2568 |
----------------------------------------------------------------------------------------------
## Troubleshooting
For any technical queries, please open an [issue](https://github.com/espressif/esp-idf/issues) on GitHub. We will get back to you soon.
@@ -0,0 +1,45 @@
# Override some defaults so BT stack is enabled
# in this example
#
# BT config
#
CONFIG_BT_ENABLED=y
CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y
CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n
CONFIG_BTDM_CTRL_MODE_BTDM=n
CONFIG_BT_BLUEDROID_ENABLED=n
CONFIG_BT_NIMBLE_ENABLED=y
CONFIG_BT_NIMBLE_SM_SC=n
CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n
CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2
CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1
CONFIG_BT_NIMBLE_MAX_BONDS=1
CONFIG_BT_NIMBLE_MAX_CCCDS=1
CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n
CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15
#Uncomment below, if security needs to be disabled
#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n
CONFIG_SPI_FLASH_ROM_IMPL=y
CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n
CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n
CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n
CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n
CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n
CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n
CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n
CONFIG_VFS_SUPPORT_TERMIOS=n
CONFIG_VFS_SUPPORT_IO=n
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y
CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n
#Uncomment below, if logging needs to be disabled
#CONFIG_LOG_DEFAULT_LEVEL_NONE=y
#CONFIG_LOG_DEFAULT_LEVEL=0