mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-29 18:27:20 +02:00
Merge branch 'bugfix/fix_some_esp32c3_s3_ble_bugs_230422_4.4' into 'release/v4.4'
Fixed some ESP32C3/S3 BLE bugs 23-04-22(backport v4.4) See merge request espressif/esp-idf!23354
This commit is contained in:
Submodule components/bt/controller/lib_esp32c3_family updated: d83f7d618a...d7513ebe88
@ -112,12 +112,13 @@ static void bas_gatts_callback(esp_gatts_evt_t event, tBTA_GATTS *p_data)
|
||||
p_data->add_result.char_uuid.uu.uuid16);
|
||||
UINT16 char_uuid = p_data->add_result.char_uuid.uu.uuid16;
|
||||
UINT16 service_id = p_data->add_result.service_id;
|
||||
if (char_uuid == GATT_UUID_BATTERY_LEVEL) {
|
||||
bas_AddCharDescr(service_id, p_data->add_result.attr_id);
|
||||
}
|
||||
if (char_uuid == GATT_UUID_SYSTEM_ID | GATT_UUID_MODEL_NUMBER_STR | GATT_UUID_PNP_ID |
|
||||
GATT_UUID_SERIAL_NUMBER_STR | GATT_UUID_FW_VERSION_STR | GATT_UUID_HW_VERSION_STR |
|
||||
GATT_UUID_SW_VERSION_STR | GATT_UUID_MANU_NAME | GATT_UUID_IEEE_DATA) {
|
||||
UINT16 uuid_len = p_data->add_result.char_uuid.len;
|
||||
|
||||
if (uuid_len == ESP_UUID_LEN_16) {
|
||||
if (char_uuid == GATT_UUID_BATTERY_LEVEL) {
|
||||
bas_AddCharDescr(service_id, p_data->add_result.attr_id);
|
||||
}
|
||||
|
||||
switch (char_uuid) {
|
||||
case GATT_UUID_SYSTEM_ID:
|
||||
dis_cb.dis_attr[0].handle = service_id; break;
|
||||
@ -138,6 +139,8 @@ static void bas_gatts_callback(esp_gatts_evt_t event, tBTA_GATTS *p_data)
|
||||
case GATT_UUID_PNP_ID:
|
||||
dis_cb.dis_attr[8].handle = service_id; break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -1068,7 +1068,18 @@ uint32_t BTM_BleUpdateOwnType(uint8_t *own_bda_type, tBTM_START_ADV_CMPL_CBACK *
|
||||
#else
|
||||
uint32_t BTM_BleUpdateOwnType(uint8_t *own_bda_type, tBTM_START_ADV_CMPL_CBACK *cb)
|
||||
{
|
||||
if((*own_bda_type == BLE_ADDR_RANDOM) || (*own_bda_type == BLE_ADDR_RANDOM_ID)) {
|
||||
if((btm_cb.ble_ctr_cb.addr_mgnt_cb.exist_addr_bit & BTM_BLE_GAP_ADDR_BIT_RANDOM) != BTM_BLE_GAP_ADDR_BIT_RANDOM) {
|
||||
BTM_TRACE_ERROR("No random address yet, please set random address and try\n");
|
||||
if(cb) {
|
||||
(* cb)(HCI_ERR_ESP_VENDOR_FAIL);
|
||||
}
|
||||
return BTM_ILLEGAL_VALUE;
|
||||
}
|
||||
}
|
||||
|
||||
btm_cb.ble_ctr_cb.addr_mgnt_cb.own_addr_type = *own_bda_type;
|
||||
|
||||
return BTM_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
@ -157,13 +157,17 @@ typedef void (* esp_bt_hci_tl_callback_t) (void *arg, uint8_t status);
|
||||
#if defined (CONFIG_BT_BLE_50_FEATURES_SUPPORTED) || defined (CONFIG_BT_NIMBLE_50_FEATURE_SUPPORT)
|
||||
#ifdef CONFIG_BT_BLE_50_FEATURES_SUPPORTED
|
||||
#define BT_CTRL_50_FEATURE_SUPPORT (CONFIG_BT_BLE_50_FEATURES_SUPPORTED)
|
||||
#endif
|
||||
#endif // CONFIG_BT_BLE_50_FEATURES_SUPPORTED
|
||||
#ifdef CONFIG_BT_NIMBLE_50_FEATURE_SUPPORT
|
||||
#define BT_CTRL_50_FEATURE_SUPPORT (CONFIG_BT_NIMBLE_50_FEATURE_SUPPORT)
|
||||
#endif
|
||||
#endif // CONFIG_BT_NIMBLE_50_FEATURE_SUPPORT
|
||||
#else
|
||||
#if defined (CONFIG_BT_BLUEDROID_ENABLED) || defined (CONFIG_BT_NIMBLE_ENABLED)
|
||||
#define BT_CTRL_50_FEATURE_SUPPORT (0)
|
||||
#else
|
||||
#define BT_CTRL_50_FEATURE_SUPPORT (1)
|
||||
#endif
|
||||
#endif // (CONFIG_BT_BLUEDROID_ENABLED) || (CONFIG_BT_NIMBLE_ENABLED)
|
||||
#endif // (CONFIG_BT_BLE_50_FEATURES_SUPPORTED) || (CONFIG_BT_NIMBLE_50_FEATURE_SUPPORT)
|
||||
|
||||
#define AGC_RECORRECT_EN ((BT_CTRL_AGC_RECORRECT_EN << 0) | (BT_CTRL_CODED_AGC_RECORRECT <<1))
|
||||
|
||||
|
@ -55,7 +55,9 @@ r_lld_ext_adv_dynamic_pti_get = 0x40001b40;
|
||||
r_lld_ext_adv_dynamic_aux_pti_process = 0x40001b44;
|
||||
r_lld_ext_adv_dynamic_pti_process = 0x40001b48;
|
||||
r_lld_adv_ext_pkt_prepare_set = 0x40001b4c;
|
||||
/*
|
||||
r_lld_adv_ext_chain_none_construct = 0x40001b50;
|
||||
*/
|
||||
r_lld_adv_ext_chain_connectable_construct = 0x40001b54;
|
||||
/*
|
||||
r_lld_adv_ext_chain_scannable_construct = 0x40001b58;
|
||||
|
@ -1667,7 +1667,9 @@ r_lld_ext_adv_dynamic_pti_get = 0x4000510c;
|
||||
r_lld_ext_adv_dynamic_aux_pti_process = 0x40005118;
|
||||
r_lld_ext_adv_dynamic_pti_process = 0x40005124;
|
||||
r_lld_adv_ext_pkt_prepare_set = 0x40005130;
|
||||
/*
|
||||
r_lld_adv_ext_chain_none_construct = 0x4000513c;
|
||||
*/
|
||||
r_lld_adv_ext_chain_connectable_construct = 0x40005148;
|
||||
/*
|
||||
r_lld_adv_ext_chain_scannable_construct = 0x40005154;
|
||||
|
@ -61,8 +61,8 @@ The Flow Chart of BluFi
|
||||
|
||||
Phone <- {IDF_TARGET_NAME} [label="Advertising"];
|
||||
Phone -> {IDF_TARGET_NAME} [label="Create GATT connection"];
|
||||
Phone <- {IDF_TARGET_NAME} [label="Negotiate key procedure"];
|
||||
Phone -> {IDF_TARGET_NAME} [label="Negotiate key procedure"];
|
||||
Phone <- {IDF_TARGET_NAME} [label="Negotiate key procedure"];
|
||||
Phone -> {IDF_TARGET_NAME} [label="CTRL: Set {IDF_TARGET_NAME} to Phone Security mode"];
|
||||
Phone -> {IDF_TARGET_NAME} [label="DATA: SSID"];
|
||||
Phone -> {IDF_TARGET_NAME} [label="DATA: Password"];
|
||||
|
@ -61,8 +61,8 @@ BluFi 流程图
|
||||
|
||||
Phone <- {IDF_TARGET_NAME} [label="广播"];
|
||||
Phone -> {IDF_TARGET_NAME} [label="建立 GATT 链接"];
|
||||
Phone <- {IDF_TARGET_NAME} [label="协商密钥"];
|
||||
Phone -> {IDF_TARGET_NAME} [label="协商密钥"];
|
||||
Phone <- {IDF_TARGET_NAME} [label="协商密钥"];
|
||||
Phone -> {IDF_TARGET_NAME} [label="CTRL: 设置 {IDF_TARGET_NAME} 为手机安全模式"];
|
||||
Phone -> {IDF_TARGET_NAME} [label="DATA: SSID"];
|
||||
Phone -> {IDF_TARGET_NAME} [label="DATA: Password"];
|
||||
|
Reference in New Issue
Block a user