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 BLE_LOG_LBM_WAIT_TIMEOUT_MS (1000)
BLE_LOG_STATIC volatile uint32_t lbm_ref_count = 0;
BLE_LOG_STATIC bool lbm_inited = false;
BLE_LOG_STATIC bool lbm_enabled = false;
BLE_LOG_STATIC BLE_LOG_DRAM_ATTR volatile uint32_t lbm_ref_count = 0;
BLE_LOG_STATIC BLE_LOG_DRAM_ATTR bool lbm_inited = false;
BLE_LOG_STATIC BLE_LOG_DRAM_ATTR bool lbm_enabled = 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_stat_mgr_t *stat_mgr_ctx[BLE_LOG_SRC_MAX] = {0};
BLE_LOG_STATIC BLE_LOG_DRAM_ATTR ble_log_lbm_ctx_t *lbm_ctx = NULL;
BLE_LOG_STATIC BLE_LOG_DRAM_ATTR ble_log_stat_mgr_t *stat_mgr_ctx[BLE_LOG_SRC_MAX] = {0};
/* PRIVATE FUNCTION DECLARATION */
BLE_LOG_STATIC
@@ -14,11 +14,11 @@
#include "ble_log_lbm.h"
/* 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 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
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
BLE_LOG_STATIC esp_timer_handle_t rt_ts_timer = NULL;
#endif /* CONFIG_BLE_LOG_TS_TRIGGER_ESP_TIMER */
@@ -11,8 +11,8 @@
#include "ble_log_ts.h"
/* VARIABLE */
BLE_LOG_STATIC bool ts_inited = false;
BLE_LOG_STATIC ble_log_ts_info_t *ts_info = NULL;
BLE_LOG_STATIC BLE_LOG_DRAM_ATTR bool ts_inited = false;
BLE_LOG_STATIC BLE_LOG_DRAM_ATTR ble_log_ts_info_t *ts_info = NULL;
/* INTERFACE */
bool ble_log_ts_init(void)
@@ -13,7 +13,7 @@
/* VARIABLE */
#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 */
/* INTERNAL INTERFACE */
@@ -37,6 +37,7 @@
#define BLE_LOG_INLINE inline
/* Section */
#define BLE_LOG_DRAM_ATTR DRAM_ATTR
#if defined(CONFIG_IDF_TARGET_ESP32C2)
#define BLE_LOG_IRAM_ATTR _SECTION_ATTR_IMPL(".ble_log_iram1", __COUNTER__)
#else
@@ -92,6 +93,7 @@ void ble_log_cas_release(volatile bool *cas_lock)
#define BLE_LOG_INLINE
/* Section */
#define BLE_LOG_DRAM_ATTR
#define BLE_LOG_IRAM_ATTR
/* Memory operation */
@@ -29,7 +29,7 @@
/* VARIABLE */
BLE_LOG_STATIC bool prph_inited = false;
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 */
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 */
/* 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;
#if BLE_LOG_PRPH_UART_DMA_REDIR
BLE_LOG_STATIC bool uart_driver_inited = false;