feat(ble): Support BLE critical logs

(cherry picked from commit 0af57d731c)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
This commit is contained in:
Zhang Hai Peng
2026-05-14 14:23:51 +08:00
parent 96021a60f8
commit e0eac2de6b
5 changed files with 58 additions and 25 deletions
+4 -4
View File
@@ -54,6 +54,10 @@ menu "Bluetooth"
endchoice endchoice
menu "Common Options"
source "$IDF_PATH/components/bt/common/Kconfig.in"
endmenu
menu "Bluedroid Options" menu "Bluedroid Options"
depends on BT_BLUEDROID_ENABLED depends on BT_BLUEDROID_ENABLED
source "$IDF_PATH/components/bt/host/bluedroid/Kconfig.in" source "$IDF_PATH/components/bt/host/bluedroid/Kconfig.in"
@@ -80,10 +84,6 @@ menu "Bluetooth"
We cannot split the memory into 3 different regions (IRAM, BLE-IRAM, DRAM). We cannot split the memory into 3 different regions (IRAM, BLE-IRAM, DRAM).
So this option will disable the memory protection scheme (ESP_SYSTEM_MEMPROT) So this option will disable the memory protection scheme (ESP_SYSTEM_MEMPROT)
menu "Common Options"
source "$IDF_PATH/components/bt/common/Kconfig.in"
endmenu
config BT_HCI_LOG_DEBUG_EN config BT_HCI_LOG_DEBUG_EN
depends on BT_BLUEDROID_ENABLED || BT_NIMBLE_ENABLED depends on BT_BLUEDROID_ENABLED || BT_NIMBLE_ENABLED
bool "Enable Bluetooth HCI debug mode" bool "Enable Bluetooth HCI debug mode"
+2 -4
View File
@@ -157,7 +157,6 @@ menu "BT Logs"
default n default n
depends on !BT_STACK_NO_LOG depends on !BT_STACK_NO_LOG
select BLE_LOG_ENABLED select BLE_LOG_ENABLED
select BLE_COMPRESSED_LOG_ENABLE
help help
Enable bandwidth-optimized logging for the BLE Log Async Output Enable bandwidth-optimized logging for the BLE Log Async Output
system. When enabled, only high-severity logs are captured and system. When enabled, only high-severity logs are captured and
@@ -170,9 +169,9 @@ menu "BT Logs"
if BT_LOG_CRITICAL_ONLY if BT_LOG_CRITICAL_ONLY
config BT_LOG_CRITICAL_ONLY_CTRL config BT_LOG_CRITICAL_ONLY_CTRL
bool "Controller: bandwidth-optimized logging" bool "Controller: bandwidth-optimized logging"
depends on SOC_ESP_NIMBLE_CONTROLLER || BT_CTRL_RUN_IN_FLASH_ONLY depends on SOC_ESP_NIMBLE_CONTROLLER || BLE_LOG_IS_ESP_LEGACY_CONTROLLER
select BT_LE_CONTROLLER_LOG_ENABLED if SOC_ESP_NIMBLE_CONTROLLER select BT_LE_CONTROLLER_LOG_ENABLED if SOC_ESP_NIMBLE_CONTROLLER
select BT_CTRL_LE_LOG_EN if !SOC_ESP_NIMBLE_CONTROLLER select BT_CTRL_LE_LOG_EN if BLE_LOG_IS_ESP_LEGACY_CONTROLLER
default y default y
help help
Enable controller log output via the async transport with Enable controller log output via the async transport with
@@ -181,7 +180,6 @@ menu "BT Logs"
config BT_LOG_CRITICAL_ONLY_HOST config BT_LOG_CRITICAL_ONLY_HOST
bool "Host: bandwidth-optimized logging" bool "Host: bandwidth-optimized logging"
select BLE_HOST_COMPRESSED_LOG_ENABLE if BT_BLUEDROID_ENABLED
default y default y
help help
Enable host stack log encoding via the async transport. Enable host stack log encoding via the async transport.
+20 -6
View File
@@ -1,5 +1,7 @@
config BLE_LOG_ENABLED config BLE_LOG_ENABLED
bool "Enable BT Log Async Output (Dev Only)" bool "Enable BT Log Async Output (Dev Only)"
select BLE_COMPRESSED_LOG_ENABLE
select BLE_HOST_COMPRESSED_LOG_ENABLE if BT_BLUEDROID_ENABLED
default n default n
help help
Enable BT Log Async Output Enable BT Log Async Output
@@ -63,16 +65,14 @@ if BLE_LOG_ENABLED
bool "Current BLE Controller is ESP BLE Legacy Controller" bool "Current BLE Controller is ESP BLE Legacy Controller"
depends on BT_CONTROLLER_ENABLED depends on BT_CONTROLLER_ENABLED
depends on !SOC_ESP_NIMBLE_CONTROLLER depends on !SOC_ESP_NIMBLE_CONTROLLER
depends on BT_CTRL_RUN_IN_FLASH_ONLY
default y default y
select BT_CTRL_LE_LOG_EN
select BLE_LOG_LL_ENABLED
help help
Current BLE Controller is ESP BLE Legacy Controller Current BLE Controller is ESP BLE Legacy Controller
config BLE_LOG_LL_ENABLED config BLE_LOG_LL_ENABLED
bool "Enable BLE Log for Link Layer" bool "Enable BLE Log for Link Layer"
depends on BT_CONTROLLER_ENABLED depends on BT_CONTROLLER_ENABLED
default y if BLE_LOG_IS_ESP_LEGACY_CONTROLLER
default n default n
help help
Enable BLE Log for Link Layer Enable BLE Log for Link Layer
@@ -112,11 +112,25 @@ if BLE_LOG_ENABLED
it will be truncated. it will be truncated.
endif endif
config BLE_LOG_HOST_SIDE_HCI_LOG_ENABLED config BLE_LOG_HOST_LOG
bool "Enable BLE Host side HCI Logging" bool "Enable BLE Log for Host"
depends on BT_BLUEDROID_ENABLED
default y default y
help help
Enable BLE Host side HCI Logging Enable BLE Log for the Host stack (Bluedroid or NimBLE).
When enabled, host-side log statements are routed through the
BLE Log async output transport instead of (or in addition to)
the standard UART logging path. Disable this option to keep
BLE Log enabled for the controller/link layer only.
config BLE_LOG_HOST_SIDE_HCI_LOG_ENABLED
bool "Enable BLE Host side HCI Logging"
default y if BLE_LOG_IS_ESP_LEGACY_CONTROLLER
help
Enable HCI packet logging captured on the Host side
(Bluedroid / NimBLE HCI HAL). Useful for correlating
host events with controller-side HCI traces.
config BLE_LOG_TS_ENABLED config BLE_LOG_TS_ENABLED
bool "Enable BLE Log Timestamp Synchronization (TS)" bool "Enable BLE Log Timestamp Synchronization (TS)"
+2 -1
View File
@@ -590,8 +590,9 @@ config BT_CTRL_BLE_MIN_CONN_INTERVAL_ENABLE
menu "Controller debug log Options (Experimental)" menu "Controller debug log Options (Experimental)"
config BT_CTRL_LE_LOG_EN config BT_CTRL_LE_LOG_EN
depends on BT_CTRL_RUN_IN_FLASH_ONLY
bool "Enable BLE debug log" bool "Enable BLE debug log"
select BT_CTRL_RUN_IN_FLASH_ONLY
default y if BLE_LOG_LL_ENABLED
default n default n
config BT_CTRL_LE_LOG_MODE_BLE_LOG_V2 config BT_CTRL_LE_LOG_MODE_BLE_LOG_V2
+30 -10
View File
@@ -545,7 +545,9 @@ menu "BT DEBUG LOG LEVEL"
choice BT_LOG_HCI_TRACE_LEVEL choice BT_LOG_HCI_TRACE_LEVEL
prompt "HCI layer" prompt "HCI layer"
default BT_LOG_HCI_TRACE_LEVEL_WARNING default BT_LOG_HCI_TRACE_LEVEL_EVENT if BT_LOG_CRITICAL_ONLY_HOST
default BT_LOG_HCI_TRACE_LEVEL_VERBOSE if BLE_LOG_HOST_LOG && !BT_LOG_CRITICAL_ONLY_HOST
default BT_LOG_HCI_TRACE_LEVEL_WARNING if !BLE_LOG_ENABLED
depends on BT_BLUEDROID_ENABLED && !BT_STACK_NO_LOG depends on BT_BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help help
Define BT trace level for HCI layer Define BT trace level for HCI layer
@@ -580,7 +582,9 @@ menu "BT DEBUG LOG LEVEL"
choice BT_LOG_BTM_TRACE_LEVEL choice BT_LOG_BTM_TRACE_LEVEL
prompt "BTM layer" prompt "BTM layer"
default BT_LOG_BTM_TRACE_LEVEL_WARNING default BT_LOG_BTM_TRACE_LEVEL_EVENT if BT_LOG_CRITICAL_ONLY_HOST
default BT_LOG_BTM_TRACE_LEVEL_VERBOSE if BLE_LOG_HOST_LOG && !BT_LOG_CRITICAL_ONLY_HOST
default BT_LOG_BTM_TRACE_LEVEL_WARNING if !BLE_LOG_ENABLED
depends on BT_BLUEDROID_ENABLED && !BT_STACK_NO_LOG depends on BT_BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help help
Define BT trace level for BTM layer Define BT trace level for BTM layer
@@ -615,7 +619,9 @@ menu "BT DEBUG LOG LEVEL"
choice BT_LOG_L2CAP_TRACE_LEVEL choice BT_LOG_L2CAP_TRACE_LEVEL
prompt "L2CAP layer" prompt "L2CAP layer"
default BT_LOG_L2CAP_TRACE_LEVEL_WARNING default BT_LOG_L2CAP_TRACE_LEVEL_EVENT if BT_LOG_CRITICAL_ONLY_HOST
default BT_LOG_L2CAP_TRACE_LEVEL_VERBOSE if BLE_LOG_HOST_LOG && !BT_LOG_CRITICAL_ONLY_HOST
default BT_LOG_L2CAP_TRACE_LEVEL_WARNING if !BLE_LOG_ENABLED
depends on BT_BLUEDROID_ENABLED && !BT_STACK_NO_LOG depends on BT_BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help help
Define BT trace level for L2CAP layer Define BT trace level for L2CAP layer
@@ -720,7 +726,9 @@ menu "BT DEBUG LOG LEVEL"
choice BT_LOG_GAP_TRACE_LEVEL choice BT_LOG_GAP_TRACE_LEVEL
prompt "GAP layer" prompt "GAP layer"
default BT_LOG_GAP_TRACE_LEVEL_WARNING default BT_LOG_GAP_TRACE_LEVEL_EVENT if BT_LOG_CRITICAL_ONLY_HOST
default BT_LOG_GAP_TRACE_LEVEL_VERBOSE if BLE_LOG_HOST_LOG && !BT_LOG_CRITICAL_ONLY_HOST
default BT_LOG_GAP_TRACE_LEVEL_WARNING if !BLE_LOG_ENABLED
depends on BT_BLUEDROID_ENABLED && !BT_STACK_NO_LOG depends on BT_BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help help
Define BT trace level for GAP layer Define BT trace level for GAP layer
@@ -1035,7 +1043,9 @@ menu "BT DEBUG LOG LEVEL"
choice BT_LOG_APPL_TRACE_LEVEL choice BT_LOG_APPL_TRACE_LEVEL
prompt "APPL layer" prompt "APPL layer"
default BT_LOG_APPL_TRACE_LEVEL_WARNING default BT_LOG_APPL_TRACE_LEVEL_EVENT if BT_LOG_CRITICAL_ONLY_HOST
default BT_LOG_APPL_TRACE_LEVEL_VERBOSE if BLE_LOG_HOST_LOG && !BT_LOG_CRITICAL_ONLY_HOST
default BT_LOG_APPL_TRACE_LEVEL_WARNING if !BLE_LOG_ENABLED
depends on BT_BLUEDROID_ENABLED && !BT_STACK_NO_LOG depends on BT_BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help help
Define BT trace level for APPL layer Define BT trace level for APPL layer
@@ -1070,7 +1080,9 @@ menu "BT DEBUG LOG LEVEL"
choice BT_LOG_GATT_TRACE_LEVEL choice BT_LOG_GATT_TRACE_LEVEL
prompt "GATT layer" prompt "GATT layer"
default BT_LOG_GATT_TRACE_LEVEL_WARNING default BT_LOG_GATT_TRACE_LEVEL_EVENT if BT_LOG_CRITICAL_ONLY_HOST
default BT_LOG_GATT_TRACE_LEVEL_VERBOSE if BLE_LOG_HOST_LOG && !BT_LOG_CRITICAL_ONLY_HOST
default BT_LOG_GATT_TRACE_LEVEL_WARNING if !BLE_LOG_ENABLED
depends on BT_BLUEDROID_ENABLED && !BT_STACK_NO_LOG depends on BT_BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help help
Define BT trace level for GATT layer Define BT trace level for GATT layer
@@ -1105,7 +1117,9 @@ menu "BT DEBUG LOG LEVEL"
choice BT_LOG_SMP_TRACE_LEVEL choice BT_LOG_SMP_TRACE_LEVEL
prompt "SMP layer" prompt "SMP layer"
default BT_LOG_SMP_TRACE_LEVEL_WARNING default BT_LOG_SMP_TRACE_LEVEL_EVENT if BT_LOG_CRITICAL_ONLY_HOST
default BT_LOG_SMP_TRACE_LEVEL_VERBOSE if BLE_LOG_HOST_LOG && !BT_LOG_CRITICAL_ONLY_HOST
default BT_LOG_SMP_TRACE_LEVEL_WARNING if !BLE_LOG_ENABLED
depends on BT_BLUEDROID_ENABLED && !BT_STACK_NO_LOG depends on BT_BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help help
Define BT trace level for SMP layer Define BT trace level for SMP layer
@@ -1140,7 +1154,9 @@ menu "BT DEBUG LOG LEVEL"
choice BT_LOG_BTIF_TRACE_LEVEL choice BT_LOG_BTIF_TRACE_LEVEL
prompt "BTIF layer" prompt "BTIF layer"
default BT_LOG_BTIF_TRACE_LEVEL_WARNING default BT_LOG_BTIF_TRACE_LEVEL_EVENT if BT_LOG_CRITICAL_ONLY_HOST
default BT_LOG_BTIF_TRACE_LEVEL_VERBOSE if BLE_LOG_HOST_LOG && !BT_LOG_CRITICAL_ONLY_HOST
default BT_LOG_BTIF_TRACE_LEVEL_WARNING if !BLE_LOG_ENABLED
depends on BT_BLUEDROID_ENABLED && !BT_STACK_NO_LOG depends on BT_BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help help
Define BT trace level for BTIF layer Define BT trace level for BTIF layer
@@ -1175,7 +1191,9 @@ menu "BT DEBUG LOG LEVEL"
choice BT_LOG_BTC_TRACE_LEVEL choice BT_LOG_BTC_TRACE_LEVEL
prompt "BTC layer" prompt "BTC layer"
default BT_LOG_BTC_TRACE_LEVEL_WARNING default BT_LOG_BTC_TRACE_LEVEL_EVENT if BT_LOG_CRITICAL_ONLY_HOST
default BT_LOG_BTC_TRACE_LEVEL_VERBOSE if BLE_LOG_HOST_LOG && !BT_LOG_CRITICAL_ONLY_HOST
default BT_LOG_BTC_TRACE_LEVEL_WARNING if !BLE_LOG_ENABLED
depends on BT_BLUEDROID_ENABLED && !BT_STACK_NO_LOG depends on BT_BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help help
Define BT trace level for BTC layer Define BT trace level for BTC layer
@@ -1210,7 +1228,9 @@ menu "BT DEBUG LOG LEVEL"
choice BT_LOG_OSI_TRACE_LEVEL choice BT_LOG_OSI_TRACE_LEVEL
prompt "OSI layer" prompt "OSI layer"
default BT_LOG_OSI_TRACE_LEVEL_WARNING default BT_LOG_OSI_TRACE_LEVEL_EVENT if BT_LOG_CRITICAL_ONLY_HOST
default BT_LOG_OSI_TRACE_LEVEL_VERBOSE if BLE_LOG_HOST_LOG && !BT_LOG_CRITICAL_ONLY_HOST
default BT_LOG_OSI_TRACE_LEVEL_WARNING if !BLE_LOG_ENABLED
depends on BT_BLUEDROID_ENABLED && !BT_STACK_NO_LOG depends on BT_BLUEDROID_ENABLED && !BT_STACK_NO_LOG
help help
Define BT trace level for OSI layer Define BT trace level for OSI layer