A2DP/BLE coex 情况下 连接BLE的时候会造成系统重启
Posted: Thu Jan 11, 2024 6:24 am
我有一个项目使用ESP32-WROVER-E 模块,需要实现BLE/A2DP 共存工作。功能要求是:
1.连接BLE后使用手机的MAC地址(保存在FLASH中)去连接A2DP。
2.关闭BLE后同时也断开A2DP连接。
我遇到的问题是:
使用esp_a2d_sink_disconnect 函数断开A2DP后,再尝试连接BLE,重复功能1的操作。发现会一定概率(没有规律)的出现系统重启的现象。log提示的错误是 Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled.然而紧接的Backtrace 却不是我能修改的内容,如下所示:
0x401391de: r_ea_interval_duration_req at ??:?
0x4013fcaa: hci_le_rem_con_param_req_reply_cmd_handler at llc_hci.c:?
0x40085ffc: ke_task_schedule at ke_task.c:?
0x40137ae7: r_rw_schedule at ??:?
0x40138168: btdm_controller_task at ??:?
我搜索所有的ADF都没办法定位到这几个函数,应该是蓝牙协议栈lib里面的函数。
紧接着我用排除法去分析问题,做了几次尝试后发现:其他代码都不动的条件下只要不使用esp_a2d_sink_disconnect 函数断开连接就基本不会有这个问题。
麻烦各位有过类似经历,或者ADF的大神帮忙分析一下。附件是发生重启的日志。基本都是在BLE建立连接的时候发生的重启。
1.连接BLE后使用手机的MAC地址(保存在FLASH中)去连接A2DP。
2.关闭BLE后同时也断开A2DP连接。
我遇到的问题是:
使用esp_a2d_sink_disconnect 函数断开A2DP后,再尝试连接BLE,重复功能1的操作。发现会一定概率(没有规律)的出现系统重启的现象。log提示的错误是 Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled.然而紧接的Backtrace 却不是我能修改的内容,如下所示:
0x401391de: r_ea_interval_duration_req at ??:?
0x4013fcaa: hci_le_rem_con_param_req_reply_cmd_handler at llc_hci.c:?
0x40085ffc: ke_task_schedule at ke_task.c:?
0x40137ae7: r_rw_schedule at ??:?
0x40138168: btdm_controller_task at ??:?
我搜索所有的ADF都没办法定位到这几个函数,应该是蓝牙协议栈lib里面的函数。
紧接着我用排除法去分析问题,做了几次尝试后发现:其他代码都不动的条件下只要不使用esp_a2d_sink_disconnect 函数断开连接就基本不会有这个问题。
麻烦各位有过类似经历,或者ADF的大神帮忙分析一下。附件是发生重启的日志。基本都是在BLE建立连接的时候发生的重启。