mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-31 19:24:33 +02:00
Merge branch 'bugfix/fix_some_ble_issue_v5.2' into 'release/v5.2'
Bugfix/fix some ble issue v5.2(backport v5.2) See merge request espressif/esp-idf!28617
This commit is contained in:
@@ -356,7 +356,7 @@ config BTDM_SCAN_DUPL_CACHE_SIZE
|
||||
default 100
|
||||
help
|
||||
Maximum number of devices which can be recorded in scan duplicate filter.
|
||||
When the maximum amount of device in the filter is reached, the cache will be refreshed.
|
||||
When the maximum amount of device in the filter is reached, the oldest device will be refreshed.
|
||||
|
||||
config BTDM_SCAN_DUPL_CACHE_REFRESH_PERIOD
|
||||
int "Duplicate scan list refresh period (seconds)"
|
||||
|
@@ -467,3 +467,11 @@ config BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX
|
||||
Disable active scan backoff. The bluetooth spec requires that scanners should run a backoff procedure to
|
||||
minimize collision of scan request PDUs from nultiple scanners. If scan backoff is disabled, in active
|
||||
scanning, scan request PDU will be sent every time when HW receives scannable ADV PDU.
|
||||
|
||||
config BT_BLE_ADV_DATA_LENGTH_ZERO_AUX
|
||||
bool "Enable aux packet when ext adv data length is zero"
|
||||
default n
|
||||
help
|
||||
When this option is enabled, auxiliary packets will be present in the events of
|
||||
'Non-Connectable and Non-Scannable' regardless of whether the advertising length is 0.
|
||||
If this option is not enabled, auxiliary packets will only be present when the advertising length is not 0.
|
||||
|
@@ -652,7 +652,7 @@ static bool IRAM_ATTR is_in_isr_wrapper(void)
|
||||
|
||||
static void *malloc_internal_wrapper(size_t size)
|
||||
{
|
||||
void *p = heap_caps_malloc(size, MALLOC_CAP_DEFAULT|MALLOC_CAP_INTERNAL|MALLOC_CAP_DMA);
|
||||
void *p = heap_caps_malloc(size, MALLOC_CAP_INTERNAL|MALLOC_CAP_DMA);
|
||||
if(p == NULL) {
|
||||
ESP_LOGE(BT_LOG_TAG, "Malloc failed");
|
||||
}
|
||||
|
Submodule components/bt/controller/lib_esp32c3_family updated: 393ac4c33b...e5c0f7256e
@@ -22,6 +22,11 @@ esp_err_t esp_ble_gap_register_callback(esp_gap_ble_cb_t callback)
|
||||
return (btc_profile_cb_set(BTC_PID_GAP_BLE, callback) == 0 ? ESP_OK : ESP_FAIL);
|
||||
}
|
||||
|
||||
esp_gap_ble_cb_t esp_ble_gap_get_callback(void)
|
||||
{
|
||||
return (esp_gap_ble_cb_t) btc_profile_cb_get(BTC_PID_GAP_BLE);
|
||||
}
|
||||
|
||||
#if (BLE_42_FEATURE_SUPPORT == TRUE)
|
||||
esp_err_t esp_ble_gap_config_adv_data(esp_ble_adv_data_t *adv_data)
|
||||
{
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
@@ -29,6 +29,11 @@ esp_err_t esp_ble_gattc_register_callback(esp_gattc_cb_t callback)
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
esp_gattc_cb_t esp_ble_gattc_get_callback(void)
|
||||
{
|
||||
return (esp_gattc_cb_t) btc_profile_cb_get(BTC_PID_GATTC);
|
||||
}
|
||||
|
||||
esp_err_t esp_ble_gattc_app_register(uint16_t app_id)
|
||||
{
|
||||
btc_msg_t msg = {0};
|
||||
|
@@ -29,6 +29,11 @@ esp_err_t esp_ble_gatts_register_callback(esp_gatts_cb_t callback)
|
||||
return (btc_profile_cb_set(BTC_PID_GATTS, callback) == 0 ? ESP_OK : ESP_FAIL);
|
||||
}
|
||||
|
||||
esp_gatts_cb_t esp_ble_gatts_get_callback(void)
|
||||
{
|
||||
return (esp_gatts_cb_t) btc_profile_cb_get(BTC_PID_GATTS);
|
||||
}
|
||||
|
||||
esp_err_t esp_ble_gatts_app_register(uint16_t app_id)
|
||||
{
|
||||
btc_msg_t msg = {0};
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
@@ -459,7 +459,10 @@ typedef enum {
|
||||
typedef enum {
|
||||
BLE_SCAN_DUPLICATE_DISABLE = 0x0, /*!< the Link Layer should generate advertising reports to the host for each packet received */
|
||||
BLE_SCAN_DUPLICATE_ENABLE = 0x1, /*!< the Link Layer should filter out duplicate advertising reports to the Host */
|
||||
BLE_SCAN_DUPLICATE_MAX = 0x2, /*!< 0x02 – 0xFF, Reserved for future use */
|
||||
#if (BLE_50_FEATURE_SUPPORT == TRUE)
|
||||
BLE_SCAN_DUPLICATE_ENABLE_RESET, /*!< Duplicate filtering enabled, reset for each scan period, only supported in BLE 5.0. */
|
||||
#endif
|
||||
BLE_SCAN_DUPLICATE_MAX /*!< Reserved for future use. */
|
||||
} esp_ble_scan_duplicate_t;
|
||||
#if (BLE_42_FEATURE_SUPPORT == TRUE)
|
||||
/// Ble scan parameters
|
||||
@@ -1489,6 +1492,15 @@ typedef void (* esp_gap_ble_cb_t)(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_p
|
||||
*/
|
||||
esp_err_t esp_ble_gap_register_callback(esp_gap_ble_cb_t callback);
|
||||
|
||||
/**
|
||||
* @brief This function is called to get the current gap callback
|
||||
*
|
||||
* @return
|
||||
* - esp_gap_ble_cb_t : callback function
|
||||
*
|
||||
*/
|
||||
esp_gap_ble_cb_t esp_ble_gap_get_callback(void);
|
||||
|
||||
#if (BLE_42_FEATURE_SUPPORT == TRUE)
|
||||
/**
|
||||
* @brief This function is called to override the BTA default ADV parameters.
|
||||
@@ -2288,8 +2300,9 @@ esp_err_t esp_ble_gap_set_ext_scan_params(const esp_ble_ext_scan_params_t *param
|
||||
/**
|
||||
* @brief This function is used to enable scanning.
|
||||
*
|
||||
* @param[in] duration : Scan duration
|
||||
* @param[in] period : Time interval from when the Controller started its last Scan Duration until it begins the subsequent Scan Duration.
|
||||
* @param[in] duration Scan duration time, where Time = N * 10 ms. Range: 0x0001 to 0xFFFF.
|
||||
* @param[in] period Time interval from when the Controller started its last Scan Duration until it begins the subsequent Scan Duration.
|
||||
* Time = N * 1.28 sec. Range: 0x0001 to 0xFFFF.
|
||||
*
|
||||
* @return - ESP_OK : success
|
||||
* - other : failed
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
@@ -273,6 +273,15 @@ typedef void (* esp_gattc_cb_t)(esp_gattc_cb_event_t event, esp_gatt_if_t gattc_
|
||||
*/
|
||||
esp_err_t esp_ble_gattc_register_callback(esp_gattc_cb_t callback);
|
||||
|
||||
/**
|
||||
* @brief This function is called to get the current application callbacks
|
||||
* with BTA GATTC module.
|
||||
*
|
||||
* @return
|
||||
* - esp_gattC_cb_t : current callback
|
||||
*
|
||||
*/
|
||||
esp_gattc_cb_t esp_ble_gattc_get_callback(void);
|
||||
|
||||
/**
|
||||
* @brief This function is called to register application callbacks
|
||||
|
@@ -295,6 +295,16 @@ typedef void (* esp_gatts_cb_t)(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_
|
||||
*/
|
||||
esp_err_t esp_ble_gatts_register_callback(esp_gatts_cb_t callback);
|
||||
|
||||
/**
|
||||
* @brief This function is called to get the current application callbacks
|
||||
* with BTA GATTS module.
|
||||
*
|
||||
* @return
|
||||
* - esp_gatts_cb_t : current callback
|
||||
*
|
||||
*/
|
||||
esp_gatts_cb_t esp_ble_gatts_get_callback(void);
|
||||
|
||||
/**
|
||||
* @brief This function is called to register application identifier
|
||||
*
|
||||
|
@@ -679,7 +679,7 @@ BOOLEAN bta_gattc_mark_bg_conn (tBTA_GATTC_IF client_if, BD_ADDR_PTR remote_bda
|
||||
#if (!CONFIG_BT_STACK_NO_LOG)
|
||||
char bdstr[18] = {0};
|
||||
#endif
|
||||
APPL_TRACE_ERROR("%s unable to find the bg connection mask for: %s", __func__,
|
||||
APPL_TRACE_WARNING("%s unable to find the bg connection mask for: %s", __func__,
|
||||
bdaddr_to_string((bt_bdaddr_t *)remote_bda_ptr, bdstr, sizeof(bdstr)));
|
||||
}
|
||||
return FALSE;
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
@@ -72,8 +72,10 @@ static void _btc_storage_save(void)
|
||||
BTA_DmRemoveDevice(bd_addr.address, BT_TRANSPORT_LE);
|
||||
BTA_DmRemoveDevice(bd_addr.address, BT_TRANSPORT_BR_EDR);
|
||||
//delete config info
|
||||
if(btc_config_remove_section(need_remove_section)) {
|
||||
BTIF_TRACE_WARNING("exceeded the maximum nubmer of bonded devices, delete the last device info : %s", need_remove_section);
|
||||
if (btc_config_remove_section(need_remove_section)) {
|
||||
// The need_remove_section has been freed
|
||||
BTIF_TRACE_WARNING("Exceeded the maximum number of bonded devices. Deleting the last device info: %02x:%02x:%02x:%02x:%02x:%02x",
|
||||
bd_addr.address[0], bd_addr.address[1], bd_addr.address[2], bd_addr.address[3], bd_addr.address[4], bd_addr.address[5]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
@@ -19,7 +19,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#define ESP_BT_CTRL_CONFIG_MAGIC_VAL 0x5A5AA5A5
|
||||
#define ESP_BT_CTRL_CONFIG_VERSION 0x02307120
|
||||
#define ESP_BT_CTRL_CONFIG_VERSION 0x02401120
|
||||
|
||||
#define ESP_BT_HCI_TL_MAGIC_VALUE 0xfadebead
|
||||
#define ESP_BT_HCI_TL_VERSION 0x00010000
|
||||
@@ -188,6 +188,12 @@ typedef void (* esp_bt_hci_tl_callback_t) (void *arg, uint8_t status);
|
||||
#define BT_BLE_CCA_MODE (0)
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_BT_BLE_ADV_DATA_LENGTH_ZERO_AUX)
|
||||
#define BT_BLE_ADV_DATA_LENGTH_ZERO_AUX (CONFIG_BT_BLE_ADV_DATA_LENGTH_ZERO_AUX)
|
||||
#else
|
||||
#define BT_BLE_ADV_DATA_LENGTH_ZERO_AUX (0)
|
||||
#endif
|
||||
|
||||
#define AGC_RECORRECT_EN ((BT_CTRL_AGC_RECORRECT_EN << 0) | (BT_CTRL_CODED_AGC_RECORRECT <<1) | (BT_CTRL_AGC_RECORRECT_NEW << 2))
|
||||
|
||||
#define CFG_MASK_BIT_SCAN_DUPLICATE_OPTION (1<<0)
|
||||
@@ -234,6 +240,7 @@ typedef void (* esp_bt_hci_tl_callback_t) (void *arg, uint8_t status);
|
||||
.dup_list_refresh_period = DUPL_SCAN_CACHE_REFRESH_PERIOD, \
|
||||
.ble_50_feat_supp = BT_CTRL_50_FEATURE_SUPPORT, \
|
||||
.ble_cca_mode = BT_BLE_CCA_MODE, \
|
||||
.ble_data_lenth_zero_aux = BT_BLE_ADV_DATA_LENGTH_ZERO_AUX, \
|
||||
}
|
||||
|
||||
#else
|
||||
@@ -305,6 +312,7 @@ typedef struct {
|
||||
uint16_t dup_list_refresh_period; /*!< duplicate scan list refresh time */
|
||||
bool ble_50_feat_supp; /*!< BLE 5.0 feature support */
|
||||
uint8_t ble_cca_mode; /*!< BLE CCA mode */
|
||||
uint8_t ble_data_lenth_zero_aux; /*!< Config ext adv aux option*/
|
||||
} esp_bt_controller_config_t;
|
||||
|
||||
/**
|
||||
|
@@ -59,7 +59,7 @@ r_lld_adv_ext_chain_connectable_construct = 0x40001b54;
|
||||
r_lld_adv_pkt_rx_connect_post = 0x40001b5c;
|
||||
r_lld_adv_start_init_evt_param = 0x40001b60;
|
||||
r_lld_adv_start_set_cs = 0x40001b64;
|
||||
r_lld_adv_start_update_filter_policy = 0x40001b68;
|
||||
/* r_lld_adv_start_update_filter_policy = 0x40001b68; */
|
||||
r_lld_adv_start_schedule_asap = 0x40001b6c;
|
||||
r_lld_con_tx_prog_new_packet_coex = 0x40001b70;
|
||||
r_lld_per_adv_dynamic_pti_get = 0x40001b78;
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
@@ -107,7 +107,6 @@ r_lld_con_terminate_max_evt_update = 0x40001c5c;
|
||||
r_llc_pref_param_compute_eco = 0x40001ce8;
|
||||
r_llc_hci_con_upd_info_send_eco = 0x40001cec;
|
||||
r_llc_rem_encrypt_proc_continue_eco = 0x40001cf0;
|
||||
r_llc_llcp_send_eco = 0x40001cf4;
|
||||
r_llc_start_eco = 0x40001cf8;
|
||||
r_lld_ext_adv_dynamic_aux_pti_process_eco = 0x40001cfc;
|
||||
r_lld_adv_start_eco = 0x40001d04;
|
||||
@@ -134,7 +133,6 @@ r_llc_hci_command_handler_search = 0x40001d58;
|
||||
r_llc_llcp_pdu_handler_get_overwrite = 0x40001d5c;
|
||||
r_llc_llcp_pdu_handler_pre = 0x40001d60;
|
||||
r_llc_llcp_pdu_handler_end = 0x40001d64;
|
||||
r_llc_llcp_channel_map_ind_ack = 0x40001d68;
|
||||
r_llc_con_conflict_check = 0x40001d6c;
|
||||
r_sch_prog_hw_reset_try = 0x40001d70;
|
||||
r_sch_prog_et_state_reset = 0x40001d74;
|
||||
@@ -199,7 +197,6 @@ r_lld_scan_process_pkt_rx_adv_rep = 0x40001284;
|
||||
r_register_esp_vendor_cmd_handler = 0x40001400;
|
||||
r_rf_txpwr_cs_get = 0x40001428;
|
||||
r_rf_txpwr_dbm_get = 0x4000142c;
|
||||
r_rwble_isr = 0x40001464;
|
||||
r_sch_arb_event_start_isr = 0x400014f8;
|
||||
r_sch_plan_set = 0x40001534;
|
||||
r_sch_prog_end_isr = 0x40001538;
|
||||
@@ -207,7 +204,6 @@ r_lld_adv_ext_chain_scannable_construct = 0x40001b58;
|
||||
|
||||
r_lld_scan_process_pkt_rx = 0x40001280;
|
||||
r_llm_le_features_get = 0x400013b0;
|
||||
r_lld_adv_ext_chain_none_construct = 0x40001b50;
|
||||
|
||||
/* ble functions rename */
|
||||
r_lld_init_start_hack = 0x400011a4;
|
||||
@@ -220,6 +216,10 @@ r_lld_res_list_rem = 0x40004680;
|
||||
r_lld_adv_start_hook = 0x40001c80;
|
||||
r_lld_con_evt_start_cbk_eco = 0x40001d1c;
|
||||
r_lld_con_tx_prog_new_packet = 0x40001b74;
|
||||
r_lld_adv_ext_chain_none_construct = 0x40001b50;
|
||||
r_llc_llcp_send_eco = 0x40001cf4;
|
||||
r_llc_llcp_channel_map_ind_ack = 0x40001d68;
|
||||
r_rwble_isr = 0x40001464;
|
||||
*/
|
||||
|
||||
|
||||
|
@@ -1169,7 +1169,7 @@ r_lld_test_init = 0x40001324;
|
||||
r_lld_test_rx_isr = 0x40001328;
|
||||
r_lld_test_set_tx_power = 0x4000132c;
|
||||
r_lld_test_start = 0x40001330;
|
||||
r_lld_test_stop = 0x40001334;
|
||||
/* r_lld_test_stop = 0x40001334; */
|
||||
r_lld_update_rxbuf = 0x40001338;
|
||||
r_lld_update_rxbuf_isr = 0x4000133c;
|
||||
r_lld_white_list_add = 0x40001340;
|
||||
@@ -1268,7 +1268,7 @@ r_rwip_timer_hs_set = 0x400014c4;
|
||||
r_rwip_timer_hus_handler = 0x400014c8;
|
||||
r_rwip_timer_hus_set = 0x400014cc;
|
||||
r_rwip_wakeup = 0x400014d0;
|
||||
r_rwip_wakeup_end = 0x400014d4;
|
||||
/* r_rwip_wakeup_end = 0x400014d4; */
|
||||
r_rwip_wlcoex_set = 0x400014d8;
|
||||
r_sch_alarm_clear = 0x400014dc;
|
||||
r_sch_alarm_init = 0x400014e0;
|
||||
|
@@ -1442,7 +1442,7 @@ r_lld_test_init = 0x40004950;
|
||||
r_lld_test_rx_isr = 0x4000495c;
|
||||
r_lld_test_set_tx_power = 0x40004968;
|
||||
r_lld_test_start = 0x40004974;
|
||||
r_lld_test_stop = 0x40004980;
|
||||
/* r_lld_test_stop = 0x40004980;*/
|
||||
r_lld_update_rxbuf = 0x4000498c;
|
||||
r_lld_update_rxbuf_isr = 0x40004998;
|
||||
r_lld_white_list_add = 0x400049a4;
|
||||
@@ -1541,7 +1541,7 @@ r_rwip_timer_hs_set = 0x40004e30;
|
||||
r_rwip_timer_hus_handler = 0x40004e3c;
|
||||
r_rwip_timer_hus_set = 0x40004e48;
|
||||
r_rwip_wakeup = 0x40004e54;
|
||||
r_rwip_wakeup_end = 0x40004e60;
|
||||
/* r_rwip_wakeup_end = 0x40004e60; */
|
||||
r_rwip_wlcoex_set = 0x40004e6c;
|
||||
r_sch_alarm_clear = 0x40004e78;
|
||||
r_sch_alarm_init = 0x40004e84;
|
||||
@@ -1603,7 +1603,7 @@ r_lld_adv_ext_chain_connectable_construct = 0x40005148;
|
||||
r_lld_adv_pkt_rx_connect_post = 0x40005160;
|
||||
r_lld_adv_start_init_evt_param = 0x4000516c;
|
||||
r_lld_adv_start_set_cs = 0x40005178;
|
||||
r_lld_adv_start_update_filter_policy = 0x40005184;
|
||||
/* r_lld_adv_start_update_filter_policy = 0x40005184; */
|
||||
r_lld_adv_start_schedule_asap = 0x40005190;
|
||||
r_lld_con_tx_prog_new_packet_coex = 0x4000519c;
|
||||
r_lld_per_adv_dynamic_pti_get = 0x400051b4;
|
||||
|
Reference in New Issue
Block a user