[RISC-V MCU 应用开发]

全志RISC-V D1s蓝牙音乐播放失败解决方法

[复制链接]
392|0
手机看帖
扫描二维码
随时随地手机跟帖
神棍地海棠|  楼主 | 2023-1-12 10:29 | 显示全部楼层 |阅读模式
1.主题
T113-S3 蓝牙音乐播放失败问题
2.问题背景
硬件:T113 + XR829
软件:Linux(非Tina)
3.问题描述3.1复现步骤
<font color="rgb(155, 133, 157)">#</font>驱动路径要根据固件实际路径insmod /lib/modules/5.4.61±ab179/xradio_btlpm.ko等驱动安装完再执行后续操作echo 0 > /sys/class/rfkill/rfkill0/statesleep 1echo 1 > /sys/class/rfkill/rfkill0/statesleep 1hciattach -n ttyS1 xradio &hciconfig hci0 uphciconfig hci0 piscan<font color="rgb(155, 133, 157)">#</font>启动蓝牙协议栈bluetoothd -n &<font color="rgb(155, 133, 157)">#</font>设定本机为播放源bluealsa -p a2dp-source &<font color="rgb(155, 133, 157)">#</font>进入蓝牙控制终端bluetoothctl<font color="rgb(155, 133, 157)">#</font>扫描周边蓝牙设备scan on<font color="rgb(155, 133, 157)">#</font>若例表中已找到设备则手动停止扫描scan off<font color="rgb(155, 133, 157)">#</font>连接蓝牙音箱connect <蓝牙音箱MAC>

连接成功提示Device 30:21:23:6F:18:E2 Connected: yes
<font color="rgb(155, 133, 157)">#</font>退出bluetoothctlexit<font color="rgb(155, 133, 157)">#</font>播放音乐aplay -D bluealsa:DEV=音箱mac 音乐文件路径aplay -D bluealsa:DEV=30:21:23:6F:18:E2 /a.wav &

3.2具体表现
蓝牙音乐播放失败,并且出现蓝牙设备断开现象

4.问题分析
1、对比R328等Tina平台,以上的验证方法没有问题,bluez 和 bluealsa版本也一致,因此判断不是操作或者版本本身的问题。
2、由于蓝牙已经断开,查看进程情况,通过PS命令,看出Bluetoothd进程还在,但是bluealsa进程已经退出。
3、加打印分析bluealsa退出点,经过验证是在SBC编码环节。
4、排查SBC编码的代码,发现程序在某个点会崩溃。
5、在网上查找相关案例,疑似与编译配置有关系。

5.根本原因
与SBC编译的配置有关系,在当前的编译工具链环境下,需要打开 --enable-high-precision配置

6.解决办法
如下修改配置:
  • 修改sbc_primitives.h
diff --git a/sbc/sbc_primitives.h b/sbc/sbc_primitives.hindex e01c957..b060484 100644<font color="rgb(188, 148, 88)"><i>--- a/sbc/sbc_primitives.h</i></font><font color="rgb(188, 148, 88)"><i>+++ b/sbc/sbc_primitives.h</i></font><font color="rgb(155, 133, 157)">@@ -27,6 +27,10 @@</font> #ifndef __SBC_PRIMITIVES_H #define __SBC_PRIMITIVES_H<font style="background-color:rgb(20, 66, 18)">+#ifdef HAVE_CONFIG_H</font><font style="background-color:rgb(20, 66, 18)">+#include <config.h></font><font style="background-color:rgb(20, 66, 18)">+#endif</font><font style="background-color:rgb(20, 66, 18)">+</font> #define SCALE_OUT_BITS 15 #define SBC_X_BUFFER_SIZE 328

  • 在sbc.mk中增加
<font color="rgb(109, 156, 190)">SBC_CONF_OPTS</font> = --enable-high-precision


使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

175

主题

183

帖子

0

粉丝