ble_hs_hci_cmd_send at D:/ESP-IDF/components/bt/host/nimble/nimble/nimble/host/src/ble_hs_hci_cmd.c:89 (discriminator 15)
ble_hs_hci_cmd_send_buf at D:/ESP-IDF/components/bt/host/nimble/nimble/nimble/host/src/ble_hs_hci_cmd.c:134
ble_hs_flow_tx_num_comp_pkts at D:/ESP-IDF/components/bt/host/nimble/nimble/nimble/host/src/ble_hs_flow.c:95
ble_hs_flow_event_cb at D:/ESP-IDF/components/bt/host/nimble/nimble/nimble/host/src/ble_hs_flow.c:116
ble_npl_event_run at D:/ESP-IDF/components/bt/host/nimble/nimble/porting/npl/freertos/include/nimble/nimble_npl_os.h:125
(inlined by) nimble_port_run at D:/ESP-IDF/components/bt/host/nimble/nimble/porting/nimble/src/nimble_port.c:78
mesh_host_task at d:\cwq\code\light\build/../components/ble_light/src/bt_init.c:160
vPortTaskWrapper at D:/ESP-IDF/components/freertos/port/xtensa/port.c:168
//---------------------------------------------------------------------------------------------------------------------------
ble_hs_hci_cmd_send at D:/ESP-IDF/components/bt/host/nimble/nimble/nimble/host/src/ble_hs_hci_cmd.c:113
ble_hs_hci_cmd_send_buf at D:/ESP-IDF/components/bt/host/nimble/nimble/nimble/host/src/ble_hs_hci_cmd.c:139
ble_hs_hci_cmd_tx at D:/ESP-IDF/components/bt/host/nimble/nimble/nimble/host/src/ble_hs_hci.c:304
ble_gap_adv_set_data at D:/ESP-IDF/components/bt/host/nimble/nimble/nimble/host/src/ble_gap.c:2649
bt_le_adv_start at D:/ESP-IDF/components/bt/esp_ble_mesh/mesh_core/nimble_host/mesh_bearer_adapt.c:777
adv_send at D:/ESP-IDF/components/bt/esp_ble_mesh/mesh_core/adv.c:180
(inlined by) adv_thread at D:/ESP-IDF/components/bt/esp_ble_mesh/mesh_core/adv.c:318
vPortTaskWrapper at D:/ESP-IDF/components/freertos/port/xtensa/port.c:168
//---------------------------------------------------------------------------------------------------------------------------
请教一下大佬 我们使用mesh加手机ble与esp32通信时遇到一个死机问题 手机快速和设备通信的同时如果往mesh网络发送数据大概率会导致死机 经过分析后发现是 ble_hs_hci_cmd_send 函数重入了 (mesh_host_task ,adv_send)此函数调用 ble_hci_trans_buf_alloc(BLE_HCI_TRANS_BUF_CMD) 申请内存 但是此内存池大小被初始化成了 1 导致第二次申请失败 从而引发死机
请教一下有没有大佬遇到过这种情况 需要怎么解决
ble_hs_hci_cmd_send .函数 重入 导致申请内存失败死机问题
-
- Posts: 17
- Joined: Thu Jan 13, 2022 9:37 am
-
- Posts: 17
- Joined: Thu Jan 13, 2022 9:37 am
Re: ble_hs_hci_cmd_send .函数 重入 导致申请内存失败死机问题
有没有大佬知道原因呀 sdk版本是 v4.3.1
Re: ble_hs_hci_cmd_send .函数 重入 导致申请内存失败死机问题
你好,蓝牙 host 使用的是 bluedroid 还是 nimble, 有没有复现代码或者 example 之类的
-
- Posts: 17
- Joined: Thu Jan 13, 2022 9:37 am
Re: ble_hs_hci_cmd_send .函数 重入 导致申请内存失败死机问题
感谢大佬回复 干开始接触蓝牙开发有些知识我还不是很明白
您说的 “蓝牙 host 使用的是 bluedroid 还是 nimble” 我只知道蓝牙初始化调用的 bluetooth_init
example 可以用下面这种配置
1.ble设备准备两台 使用mesh vendor 例程 一台client 一台server 两台配网
2.手机连接client
3.client 设备周期频繁的向server发送数据 同时手机也向client发送数据即可
对了 我们开始手机搜索不到配置成client那台设备 然后我们在mesh 初始化完成后 调用了 esp_ble_mesh_proxy_gatt_enable(); 以后就可以了 不知道这里是否会有影响
您说的 “蓝牙 host 使用的是 bluedroid 还是 nimble” 我只知道蓝牙初始化调用的 bluetooth_init
example 可以用下面这种配置
1.ble设备准备两台 使用mesh vendor 例程 一台client 一台server 两台配网
2.手机连接client
3.client 设备周期频繁的向server发送数据 同时手机也向client发送数据即可
对了 我们开始手机搜索不到配置成client那台设备 然后我们在mesh 初始化完成后 调用了 esp_ble_mesh_proxy_gatt_enable(); 以后就可以了 不知道这里是否会有影响
Who is online
Users browsing this forum: No registered users and 54 guests