Merge branch 'fix/ble-log-store-access-fault_v5.5' into 'release/v5.5'

fix: Ensure BLE Log Global Variables in Internal RAM (5.5)

See merge request espressif/esp-idf!51035
This commit is contained in:
Island
2026-07-22 14:02:43 +08:00
7 changed files with 15 additions and 13 deletions
@@ -21,12 +21,12 @@
#define TAG "ble_log" #define TAG "ble_log"
#define BLE_LOG_LBM_WAIT_TIMEOUT_MS (1000) #define BLE_LOG_LBM_WAIT_TIMEOUT_MS (1000)
BLE_LOG_STATIC volatile uint32_t lbm_ref_count = 0; BLE_LOG_STATIC BLE_LOG_DRAM_ATTR volatile uint32_t lbm_ref_count = 0;
BLE_LOG_STATIC bool lbm_inited = false; BLE_LOG_STATIC BLE_LOG_DRAM_ATTR bool lbm_inited = false;
BLE_LOG_STATIC bool lbm_enabled = false; BLE_LOG_STATIC BLE_LOG_DRAM_ATTR bool lbm_enabled = false;
BLE_LOG_STATIC volatile bool flush_in_progress = false; BLE_LOG_STATIC volatile bool flush_in_progress = false;
BLE_LOG_STATIC ble_log_lbm_ctx_t *lbm_ctx = NULL; BLE_LOG_STATIC BLE_LOG_DRAM_ATTR ble_log_lbm_ctx_t *lbm_ctx = NULL;
BLE_LOG_STATIC ble_log_stat_mgr_t *stat_mgr_ctx[BLE_LOG_SRC_MAX] = {0}; BLE_LOG_STATIC BLE_LOG_DRAM_ATTR ble_log_stat_mgr_t *stat_mgr_ctx[BLE_LOG_SRC_MAX] = {0};
/* PRIVATE FUNCTION DECLARATION */ /* PRIVATE FUNCTION DECLARATION */
BLE_LOG_STATIC BLE_LOG_STATIC
@@ -14,11 +14,11 @@
#include "ble_log_lbm.h" #include "ble_log_lbm.h"
/* VARIABLE */ /* VARIABLE */
BLE_LOG_STATIC bool rt_inited = false; BLE_LOG_STATIC BLE_LOG_DRAM_ATTR bool rt_inited = false;
BLE_LOG_STATIC TaskHandle_t rt_task_handle = NULL; BLE_LOG_STATIC TaskHandle_t rt_task_handle = NULL;
BLE_LOG_STATIC QueueHandle_t rt_queue_handle = NULL; BLE_LOG_STATIC BLE_LOG_DRAM_ATTR QueueHandle_t rt_queue_handle = NULL;
#if CONFIG_BLE_LOG_TS_ENABLED #if CONFIG_BLE_LOG_TS_ENABLED
BLE_LOG_STATIC bool rt_ts_enabled = false; BLE_LOG_STATIC BLE_LOG_DRAM_ATTR bool rt_ts_enabled = false;
#if CONFIG_BLE_LOG_TS_TRIGGER_ESP_TIMER #if CONFIG_BLE_LOG_TS_TRIGGER_ESP_TIMER
BLE_LOG_STATIC esp_timer_handle_t rt_ts_timer = NULL; BLE_LOG_STATIC esp_timer_handle_t rt_ts_timer = NULL;
#endif /* CONFIG_BLE_LOG_TS_TRIGGER_ESP_TIMER */ #endif /* CONFIG_BLE_LOG_TS_TRIGGER_ESP_TIMER */
@@ -11,8 +11,8 @@
#include "ble_log_ts.h" #include "ble_log_ts.h"
/* VARIABLE */ /* VARIABLE */
BLE_LOG_STATIC bool ts_inited = false; BLE_LOG_STATIC BLE_LOG_DRAM_ATTR bool ts_inited = false;
BLE_LOG_STATIC ble_log_ts_info_t *ts_info = NULL; BLE_LOG_STATIC BLE_LOG_DRAM_ATTR ble_log_ts_info_t *ts_info = NULL;
/* INTERFACE */ /* INTERFACE */
bool ble_log_ts_init(void) bool ble_log_ts_init(void)
@@ -13,7 +13,7 @@
/* VARIABLE */ /* VARIABLE */
#ifndef UNIT_TEST #ifndef UNIT_TEST
portMUX_TYPE ble_log_spin_lock = portMUX_INITIALIZER_UNLOCKED; BLE_LOG_DRAM_ATTR portMUX_TYPE ble_log_spin_lock = portMUX_INITIALIZER_UNLOCKED;
#endif /* !UNIT_TEST */ #endif /* !UNIT_TEST */
/* INTERNAL INTERFACE */ /* INTERNAL INTERFACE */
@@ -37,6 +37,7 @@
#define BLE_LOG_INLINE inline #define BLE_LOG_INLINE inline
/* Section */ /* Section */
#define BLE_LOG_DRAM_ATTR DRAM_ATTR
#if defined(CONFIG_IDF_TARGET_ESP32C2) #if defined(CONFIG_IDF_TARGET_ESP32C2)
#define BLE_LOG_IRAM_ATTR _SECTION_ATTR_IMPL(".ble_log_iram1", __COUNTER__) #define BLE_LOG_IRAM_ATTR _SECTION_ATTR_IMPL(".ble_log_iram1", __COUNTER__)
#else #else
@@ -92,6 +93,7 @@ void ble_log_cas_release(volatile bool *cas_lock)
#define BLE_LOG_INLINE #define BLE_LOG_INLINE
/* Section */ /* Section */
#define BLE_LOG_DRAM_ATTR
#define BLE_LOG_IRAM_ATTR #define BLE_LOG_IRAM_ATTR
/* Memory operation */ /* Memory operation */
@@ -29,7 +29,7 @@
/* VARIABLE */ /* VARIABLE */
BLE_LOG_STATIC bool prph_inited = false; BLE_LOG_STATIC bool prph_inited = false;
BLE_LOG_STATIC spi_device_handle_t dev_handle = NULL; BLE_LOG_STATIC spi_device_handle_t dev_handle = NULL;
BLE_LOG_STATIC uint32_t last_tx_done_ts = 0; BLE_LOG_STATIC BLE_LOG_DRAM_ATTR uint32_t last_tx_done_ts = 0;
/* PRIVATE FUNCTION DECLARATION */ /* PRIVATE FUNCTION DECLARATION */
BLE_LOG_STATIC void spi_master_dma_tx_done_cb(spi_transaction_t *spi_trans); BLE_LOG_STATIC void spi_master_dma_tx_done_cb(spi_transaction_t *spi_trans);
@@ -31,7 +31,7 @@
#endif /* BLE_LOG_PRPH_UART_DMA_REDIR */ #endif /* BLE_LOG_PRPH_UART_DMA_REDIR */
/* VARIABLE */ /* VARIABLE */
BLE_LOG_STATIC bool prph_inited = false; BLE_LOG_STATIC BLE_LOG_DRAM_ATTR bool prph_inited = false;
BLE_LOG_STATIC uhci_controller_handle_t dev_handle = NULL; BLE_LOG_STATIC uhci_controller_handle_t dev_handle = NULL;
#if BLE_LOG_PRPH_UART_DMA_REDIR #if BLE_LOG_PRPH_UART_DMA_REDIR
BLE_LOG_STATIC bool uart_driver_inited = false; BLE_LOG_STATIC bool uart_driver_inited = false;