mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-02 11:10:54 +03:00
Merge branch 'fix/ble_hci_log_direction_v6.0' into 'release/v6.0'
feat(ble_log): encode HCI direction in ble_log pipeline (v6.0) See merge request espressif/esp-idf!46303
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2025-2026 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -38,6 +38,20 @@ typedef enum {
|
|||||||
BLE_LOG_SRC_MAX,
|
BLE_LOG_SRC_MAX,
|
||||||
} ble_log_src_t;
|
} ble_log_src_t;
|
||||||
|
|
||||||
|
/* HCI Log Direction */
|
||||||
|
#define BLE_LOG_HCI_DOWNSTREAM 0
|
||||||
|
#define BLE_LOG_HCI_UPSTREAM 1
|
||||||
|
|
||||||
|
/* HCI Log Write Macro
|
||||||
|
* Encodes direction in MSB of data[0] (HCI type byte) before writing.
|
||||||
|
* Safe because ble_log_write_hex -> ble_log_lbm_write_trans does synchronous memcpy.
|
||||||
|
* Parser reads MSB to determine direction; old firmware with MSB=0 defaults to "sent". */
|
||||||
|
#define ble_log_write_hci(direction, data, len) do { \
|
||||||
|
(data)[0] |= ((direction) << 7); \
|
||||||
|
ble_log_write_hex(BLE_LOG_SRC_HCI, (data), (len)); \
|
||||||
|
(data)[0] &= 0x7F; \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
/* INTERFACE */
|
/* INTERFACE */
|
||||||
bool ble_log_init(void);
|
bool ble_log_init(void);
|
||||||
void ble_log_deinit(void);
|
void ble_log_deinit(void);
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ void hci_host_send_packet(uint8_t *data, uint16_t len)
|
|||||||
ble_log_spi_out_hci_write(BLE_LOG_SPI_OUT_SOURCE_HCI_DOWNSTREAM, data, len);
|
ble_log_spi_out_hci_write(BLE_LOG_SPI_OUT_SOURCE_HCI_DOWNSTREAM, data, len);
|
||||||
#endif // CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED
|
#endif // CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED
|
||||||
#if CONFIG_BLE_LOG_HOST_SIDE_HCI_LOG_ENABLED
|
#if CONFIG_BLE_LOG_HOST_SIDE_HCI_LOG_ENABLED
|
||||||
ble_log_write_hex(BLE_LOG_SRC_HCI, data, len);
|
ble_log_write_hci(BLE_LOG_HCI_DOWNSTREAM, data, len);
|
||||||
#endif /* CONFIG_BLE_LOG_HOST_SIDE_HCI_LOG_ENABLED */
|
#endif /* CONFIG_BLE_LOG_HOST_SIDE_HCI_LOG_ENABLED */
|
||||||
#if (BT_CONTROLLER_INCLUDED == TRUE)
|
#if (BT_CONTROLLER_INCLUDED == TRUE)
|
||||||
esp_vhci_host_send_packet(data, len);
|
esp_vhci_host_send_packet(data, len);
|
||||||
|
|||||||
@@ -613,7 +613,7 @@ static int host_recv_pkt_cb(uint8_t *data, uint16_t len)
|
|||||||
ble_log_spi_out_hci_write(BLE_LOG_SPI_OUT_SOURCE_HCI_UPSTREAM, data, len);
|
ble_log_spi_out_hci_write(BLE_LOG_SPI_OUT_SOURCE_HCI_UPSTREAM, data, len);
|
||||||
#endif // CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED
|
#endif // CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED
|
||||||
#if CONFIG_BLE_LOG_HOST_SIDE_HCI_LOG_ENABLED
|
#if CONFIG_BLE_LOG_HOST_SIDE_HCI_LOG_ENABLED
|
||||||
ble_log_write_hex(BLE_LOG_SRC_HCI, data, len);
|
ble_log_write_hci(BLE_LOG_HCI_UPSTREAM, data, len);
|
||||||
#endif /* CONFIG_BLE_LOG_HOST_SIDE_HCI_LOG_ENABLED */
|
#endif /* CONFIG_BLE_LOG_HOST_SIDE_HCI_LOG_ENABLED */
|
||||||
//Target has packet to host, malloc new buffer for packet
|
//Target has packet to host, malloc new buffer for packet
|
||||||
BT_HDR *pkt = NULL;
|
BT_HDR *pkt = NULL;
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ void esp_vhci_host_send_packet_wrapper(uint8_t *data, uint16_t len)
|
|||||||
ble_log_spi_out_hci_write(BLE_LOG_SPI_OUT_SOURCE_HCI_DOWNSTREAM, data, len);
|
ble_log_spi_out_hci_write(BLE_LOG_SPI_OUT_SOURCE_HCI_DOWNSTREAM, data, len);
|
||||||
#endif // CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED
|
#endif // CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED
|
||||||
#if CONFIG_BLE_LOG_HOST_SIDE_HCI_LOG_ENABLED
|
#if CONFIG_BLE_LOG_HOST_SIDE_HCI_LOG_ENABLED
|
||||||
ble_log_write_hex(BLE_LOG_SRC_HCI, data, len);
|
ble_log_write_hci(BLE_LOG_HCI_DOWNSTREAM, data, len);
|
||||||
#endif /* CONFIG_BLE_LOG_HOST_SIDE_HCI_LOG_ENABLED */
|
#endif /* CONFIG_BLE_LOG_HOST_SIDE_HCI_LOG_ENABLED */
|
||||||
esp_vhci_host_send_packet(data, len);
|
esp_vhci_host_send_packet(data, len);
|
||||||
}
|
}
|
||||||
@@ -267,7 +267,7 @@ static int host_rcv_pkt(uint8_t *data, uint16_t len)
|
|||||||
ble_log_spi_out_hci_write(BLE_LOG_SPI_OUT_SOURCE_HCI_UPSTREAM, data, len);
|
ble_log_spi_out_hci_write(BLE_LOG_SPI_OUT_SOURCE_HCI_UPSTREAM, data, len);
|
||||||
#endif // CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED
|
#endif // CONFIG_BT_BLE_LOG_SPI_OUT_HCI_ENABLED
|
||||||
#if CONFIG_BLE_LOG_HOST_SIDE_HCI_LOG_ENABLED
|
#if CONFIG_BLE_LOG_HOST_SIDE_HCI_LOG_ENABLED
|
||||||
ble_log_write_hex(BLE_LOG_SRC_HCI, data, len);
|
ble_log_write_hci(BLE_LOG_HCI_UPSTREAM, data, len);
|
||||||
#endif /* CONFIG_BLE_LOG_HOST_SIDE_HCI_LOG_ENABLED */
|
#endif /* CONFIG_BLE_LOG_HOST_SIDE_HCI_LOG_ENABLED */
|
||||||
|
|
||||||
bt_record_hci_data(data, len);
|
bt_record_hci_data(data, len);
|
||||||
|
|||||||
Reference in New Issue
Block a user