完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
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:cwqcodelightbuild/../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 导致第二次申请失败 从而引发死机 请教一下有没有大佬遇到过这种情况 需要怎么解决 |
|
相关推荐
1个回答
|
|
在使用Mesh网络和手机BLE与ESP32进行通信时,遇到死机问题可能是由多种原因引起的。以下是一些建议和解决方案,帮助您解决这个问题:
1. **检查硬件连接**:确保ESP32模块与手机之间的BLE连接正常。检查硬件连接是否稳定,包括天线、电源等。 2. **更新固件和软件**:确保您使用的ESP32固件和手机应用程序都是最新版本。有时候,固件或软件的旧版本可能会导致兼容性问题或已知的错误。 3. **降低通信速率**:如果数据传输速率过高,可能会导致ESP32无法处理所有数据,从而引发死机。尝试降低数据传输速率,看看是否能解决问题。 4. **优化代码**:检查您的代码,确保没有死循环、内存泄漏或其他可能导致系统崩溃的问题。优化代码逻辑,确保程序运行稳定。 5. **内存管理**:ESP32的内存有限,如果应用程序占用了大量内存,可能会导致系统崩溃。检查您的代码,确保没有内存泄漏,并合理分配内存资源。 6. **使用任务调度**:如果ESP32在处理多个任务时出现死机,可以尝试使用任务调度器来优化任务执行顺序,避免任务之间的竞争和冲突。 7. **调试和日志记录**:使用调试工具和日志记录功能,以便在出现问题时快速定位问题所在。这可以帮助您更好地了解系统在死机前的状态,从而找到解决问题的方法。 8. **查看错误代码**:您提供的错误信息中包含了一些函数调用和文件路径。检查这些函数的实现,看看是否有可能存在问题。同时,查看ESP-IDF的文档和社区,看看是否有其他人遇到过类似的问题,并找到解决方案。 9. **硬件故障**:如果以上方法都无法解决问题,可能是ESP32模块本身存在硬件故障。尝试更换一个新的ESP32模块,看看问题是否得到解决。 |
|
|
|
只有小组成员才能发言,加入小组>>
180个成员聚集在这个小组
加入小组453 浏览 1 评论
1450 浏览 1 评论
618浏览 6评论
515浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
494浏览 5评论
496浏览 4评论
486浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-2 23:52 , Processed in 0.731740 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号