From f848f668e3453f9407e2f02776c7c60ce5dcc86e Mon Sep 17 00:00:00 2001 From: Gunar Schorcht Date: Thu, 18 Aug 2022 12:48:29 +0200 Subject: [PATCH] cpu/esp32: add some debugging info in esp_ble_nimble --- cpu/esp32/esp-ble-nimble/esp_ble_nimble.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/cpu/esp32/esp-ble-nimble/esp_ble_nimble.c b/cpu/esp32/esp-ble-nimble/esp_ble_nimble.c index 3b0ed29089..2373477cb0 100644 --- a/cpu/esp32/esp-ble-nimble/esp_ble_nimble.c +++ b/cpu/esp32/esp-ble-nimble/esp_ble_nimble.c @@ -22,6 +22,7 @@ #include "log.h" #include "esp_bt.h" #include "mutex.h" +#include "od.h" #include "host/ble_hs.h" #include "nimble/hci_common.h" @@ -29,6 +30,9 @@ #include "nimble/transport/hci_h4.h" #include "sysinit/sysinit.h" +#define ENABLE_DEBUG 0 +#include "debug.h" + /* The size of an HCI command packet is defined as POOL_CMD_SIZE * in `./nimble/transport/src/transport.c.`. Since there is no defined * symbol in the header files, we have to define it here. According to @@ -109,6 +113,11 @@ int ble_transport_to_ll_cmd_impl(void *buf) packet[0] = BLE_HCI_UART_H4_CMD; /* first byte is the packet indicator */ memcpy(packet + 1, cmd, len - 1); + if (ENABLE_DEBUG && IS_USED(MODULE_OD)) { + printf("CMD host to ctrl:\n"); + od_hex_dump(packet + 1, len - 1, OD_WIDTH_DEFAULT); + } + /* send the packet */ rc = _ble_transport_to_ll(packet, len); @@ -138,6 +147,12 @@ int ble_transport_to_ll_acl_impl(struct os_mbuf *om) packet[0] = BLE_HCI_UART_H4_ACL; len++; + if (ENABLE_DEBUG && IS_USED(MODULE_OD)) { + printf("ACL host to ctrl:\n"); + od_hex_dump(packet + 1, + (om->om_len < 32) ? om->om_len : 32, OD_WIDTH_DEFAULT); + } + os_mbuf_copydata(om, 0, OS_MBUF_PKTLEN(om), &packet[1]); len += OS_MBUF_PKTLEN(om); @@ -156,9 +171,17 @@ static int _esp_hci_h4_frame_cb(uint8_t pkt_type, void *data) switch (pkt_type) { case HCI_H4_ACL: + if (ENABLE_DEBUG && IS_USED(MODULE_OD)) { + printf("ACL ctrl to host:\n"); + od_hex_dump((uint8_t *)data, 4, OD_WIDTH_DEFAULT); + } rc = ble_transport_to_hs_acl(data); break; case HCI_H4_EVT: + if (ENABLE_DEBUG && IS_USED(MODULE_OD)) { + printf("EVT ctrl to host:\n"); + od_hex_dump((uint8_t *)data, ((uint8_t *)data)[1] + 2, OD_WIDTH_DEFAULT); + } rc = ble_transport_to_hs_evt(data); break; default: