JL701N音箱问题整理(可视化工具SDK)
📎 原始文档:https://www.kdocs.cn/l/cslMCM6laHl9 JL701N音箱问题整理(可视化工具SDK)
前言:本文档整理将以各个SDK遇到的共性问题做整理汇总,可直接根据所使用的sdk版本及功能快速索引相关问题点
- 开发注意点
OTA问题处理
分支:bugfix_2.0.0_ota
https://gitlab.zh-jieli.com/JL-Studio/Leaudio/701N/jl701n_le_audio_2.0.0/-/tree/bugfix_2.0.0_ota
- JL701N 可视化工具 版本SDK,控制 RF pa 接口 ,更换控制IO 映射的接口被更换,使用传统SDK接口无法修改PA 控制IO问题处理 701非可视化SDK :void bt_rf_PA_ontrol_io_remap(u16 tx_io, u16 rx_io); 使用的是该接口
701可视化SDK版本:void bt_set_rxtx_status_io(u32 tx_pin, u32 rx_pin);用这个接口,可视化版本SDK函数名换了 - JL701N le audio 中添加Bass Treble节点,其中Cur Gain参数在开机之后不起作用
- 开发时BassTreble节点是给旋钮使用的,并不是给到音频流去固定音效使用的。如果是给音频流固定音效可以使用eq去调音。
- 在每个任务流开始之后更新Cur Gain才能使该参数生效
- 在case STREAM_EVENT_START:中调用接口更新
- 使用该接口void music_bass_treble_eq_udpate(char *name, enum bass_treble_eff index, float gain);更新
- name 为节点名称
eg:
- name 为节点名称
JL701N le audio IIS(主)TX 保持CLK 默认sdk:2.0.0Patch02.14、2.0.0Patch02.15有保持
保持状态的参数配置如下:
JL701N le audio 供电接的VPWR 升级过程中有可能会触发复位
修改方法:替换ota.bin
OTA-BR28-20251030-关闭长按复位.zip共性问题
JL701N 可视化工具 jla_audio_1.1.0(1.0.0)版本SDK,配置立体声高压二挡差分输出声音无法达到最大值问题解决: 解决办法:增加数字增益最大值限制的初始化。

JL701N 可视化工具 jla_audio_1.1.0(1.0.0)版本SDK,按键无法同步问题
添加以下修改:
JL701端:(需要重新编译)

#if (LEA_CIG_CENTRAL_EN || LEA_CIG_PERIPHERAL_EN)
connected_event_sync
connected_data_transmit
connected_key_sync
#endif

enum {
CONNECTED_EVENT_SYNC_TYPE = 0xA1,
CONNECTED_KEY_SYNC_TYPE = 0xA2,
CONNECTED_DATA_TRANSMIT_TYPE = 0xA3,
};
- 修改int app_get_message(int *msg, int max_num, const struct key_remap_table *key_table)

y_printf("%s,%d,\n", __func__, __LINE__);
#if ((LEA_CIG_CENTRAL_EN || LEA_CIG_PERIPHERAL_EN)&LEA_CIG_KEY_EVENT_SYNC)
connected_key_event_sync(key_msg);
#endif
701 TX端
- apps\soundbox\connected\connected_sync_call.c添加
int connected_key_event_synct(int key_msg)
{
#if (CONNECTED_KEY_EVENT_SYNC == 0)
return 0;
#endif
if (!app_cis_is_connected(CONNECTED_DEVICE_IDENTIFICATION_M | CONNECTED_DEVICE_IDENTIFICATION_L | CONNECTED_DEVICE_IDENTIFICATION_R)) {
return 0;
}
int slen = 0;
u8 len = sizeof(int) + 1;
u8 *buffer = zalloc(len);
u8 device_channel = CONNECTED_DEVICE_IDENTIFICATION_M | CONNECTED_DEVICE_IDENTIFICATION_L | CONNECTED_DEVICE_IDENTIFICATION_R;
ASSERT(buffer);
buffer[0] = CONNECTED_KEY_SYNC_TYPE;
memcpy(buffer + 1, &key_msg, sizeof(int));
if (buffer) {
slen = app_connected_send_acl_data(CONNECTED_DEVICE_IDENTIFICATION_M | CONNECTED_DEVICE_IDENTIFICATION_L | CONNECTED_DEVICE_IDENTIFICATION_R,
(void *)buffer, len);
if (!slen) {
free(buffer);
app_task_put_key_msg(key_msg, 0);
}
}
return slen;
}

static int connected_tx_key_events_suss(void *data, int len)
{
u8 *buffer = (u8 *)data;
int key_msg;
y_printf("%s,%d,\n", __func__, __LINE__);
put_buf(data,len);
if (buffer[0] != CONNECTED_KEY_SYNC_TYPE) {
return false;
}
y_printf("%s,%d,\n", __func__, __LINE__);
memcpy(&key_msg, &buffer[1], sizeof(key_msg));
app_task_put_key_msg(key_msg, 0);
free(data);
return true;
}
3.修改static int connected_rx_key_events_suss(u16 acl_hdl, void *data, int len) 这个函数
static int connected_rx_key_events_suss(u16 acl_hdl, void *data, int len)
{
u8 *buffer = (u8 *)data;
int key_msg;
y_printf("%s,%d,\n", __func__, __LINE__);
put_buf(data,len);
if (buffer[0] != CONNECTED_KEY_SYNC_TYPE){
return false;
}
memcpy(&key_msg,&buffer[1],sizeof(key_msg));
app_task_put_key_msg(key_msg,0);
return true;
}
- 修改int app_key_event_remap(struct sys_event *e)

#if CONNECTED_KEY_EVENT_SYNC
extern int connected_key_event_synct(int key_msg);
connected_key_event_synct(msg);
#endif
- JL701N jla_audio 版本SDK,在线调eq增益设定好合并升级开机后声音大小不一致 程序在下图位置切模式过程中会去读取音量大小,并记录到vm区。在蓝牙模式和idle模式下的音量等级并不一致,idle音量等级小。抓log发现关机过程中会切到idle模式去再读取一次音量等级设置并记录于vm区后才关机,导致出现客户在调好eqmic增益合并升级开机后再关机重启出现音量大小不一致。
可根据项目实际应用进行修改,例如:修改如下,增加一个判断ilde模式下不去重新初始化音量大小。
- JL701N 可视化工具 jla_audio_1.1.0(1.0.0)版本SDK,做广播音箱,从箱无法实现音量同步问题修改 JL701N 可视化工具 jla_audio_1.1.0(1.0.0)版本SDK,做广播音箱,从箱无法实现音量同步多个问题点修改.otl
- JL701N 可视化工具 jla_audio_1.1.0(1.0.0)版本SDK,TF卡升级 无法维持IO翻转问题 问题点:在工具中配置 升级维持IO使能后,实际不生效
解决办法:增加ini文件 中IO口维持设置
#ifdef CONFIG_UPDATE_JUMP_TO_MASK
SD_LATCH_IO = CONFIG_SD_LATCH_IO //SD卡升级需要锁住的io,最大限制6个io
#endif
6. JL701N 可视化SDK关闭内置充电后,将VPWR口拉高,会导致开机2S后P33_PPINR1_RST复位。 原因:默认打开了VPWR长按复位。
解决方案:P3_PINR_CON1=0;
- jl701n_le_audio_v200p02/p0201/p0202 切换模式回 BT 时,不会回连手机. 原因:切换模式进入 BT 时 page list 未初始化
解决:
静态 dual_conn_page_devices_init() 改为外部
page_mode_active 退出时清 0

- jl701n_le_audio_v200p0201/p0202 SD 卡快速插拔进入蓝牙模式死机(1T3 开启后,蓝牙模式进入退出导致的死机) 原因:内存对齐错误,一般出现内存释放后还访问内存导致,死机日志:
解决:
替换 btstatck.a 库
https://www.kdocs.cn/l/cqEGKI5m5JXc - jl701n_le_audio_v200patch02 RCSP 单备份升级失败问题 原因:VM大小固定为8K了,需要加大VM

- jl701n_le_audio_v200patch02 RCSP 双备份升级失败问题 原因:VM 区大小需要增大,并且升级过程中能正常校验成功,跳转升级后,回连BLE失败,需要根据br28_update 的设备名手动连接上后才能继续升级完成,原因是BLE 的 升级回连需要跑地址加1流程,但是由于流程打开exif 文件失败,所以没有跑地址加1流程。
解决办法:VM 区大小需要增大 同时修改.ini 文件,让能正常跑打开exif 文件后跑BLE回连地址加1流程
11. jl701n_le_audio_v200patch02 RCSP 双备份升级获取固件校验码失败的问题处理 问题点:双备份升级后,用u8 *sdfile_get_burn_code(u8 *len); 接口获取固件校验码失败,结果全为0xff
修改办法:替换下列库文件
update_701_音箱可视化leaudio_JL701N_2.0.0(patch_02)_20250701_支持双备份升级校验码.rar
12. jl701n_le_audio_v200patch02.02 开启彩屏UI后部分IO口(PB4 PB5 PB9)变得不可控制,所有701可视化用到彩屏的都需要打补丁 le_audio-JL701N-2.0.0-JL701N-demo-patch_02.02_修改彩屏UI库里面动到了不该动的IO问题.7z
13. PDM数字麦采样率达不到16K以上 
修改截止频率随着采样率变化。
14. 开启蓝牙一拖二功能后,关机重启回连没有回连两个手机 修改:
15. jl701n_le_audio_v200patch02 打开IO串口升级编译报错和IO串口升级失败问题
编译报错修改:
修改如下截图:

处理完编译报错后,主机给从机升级无法成功,需要替换下面cpu.a库文件,更新适配IO串口升级的串口驱动 cpu_leaudio_JL701N_2.0.0(patch_02)_IO串口升级失败问题.rar
特殊案例:默认IO串口通信升级时候,单次发送的数据长度为512byte ,需要修改的可以参考一下办法实现。涉及库文件和ota.bin 的修改,暂时仅以jl701n_le_audio_v200patch02 版本为例。
jl701n_le_audio_v200patch02 IO串口升级修改串口单次发送字节长度的修改办法.otljl701n_le_audio_v200(patch_02.02) 与AC706N_wireless_3In1_TX 做三合一功能,话筒连接距离短距离短问题。 修改办法:jl701n_le_audio_v200(patch_02.02) sdk 替换下列的库文件
btctrler(JL701n_le_audio_2.0.0_patch02.02)_话筒连接距离短.rarjl701n_le_audio_v200(patch_02.08) 版本sdk 需要在PC mic 增加回音消除算法功能死机问题 死机报错出发断言:
修改办法:需要将全局采样率修改为48K,因为44.1K的回采数据不符合AEC 算法运行的需求。
同时需要将数据流切换成上行回音消除选项卡

jl701n_le_audio_v200p0209 蓝牙测试盒升级一直显示 PC 超时失败 堆栈溢出死机:
修改:
jl701n_le_audio_v200p0209/p0208 IIS 主机输出停止后存在杂音 方法一:iis 停止后关闭 iis 主机的时钟

jl701n_le_audio_v200p0209/p0208 拿不到U盘T卡的歌词文件 替换以下接口:
LRIF_ADR=AUTO;
LRIF_LEN=0x10000;
LRIF_OPT=1;
lyrics_api.c:
u32 lrc_fseek(FILE *file, int offset, int orig)
{
u32 pos = fseek(file, offset, orig);
return pos;
}
u32 lrc_fread(FILE *file, void *buf, u32 len)
{
u32 rlen = fread(buf, len, 1, file);
return rlen;
}
static LRC_FILE_IO lrc_file_io = {
/* .seek = fseek, */
/* .read = fread, */
.seek = lrc_fseek,
.read = lrc_fread,
};
- jl701n_le_audio_v200(patch_02.09) 版本sdk 连706_3ln1无线麦,在音箱端开启变音音效,切换音效会死机 处理方法:
1、修改copy长度。
2、默认只开PITCHSHIFT模式,需要用到其他模式需自行打开。
3、若只需要PITCHSHIFT模式的音效,可将vc_pitchshift_only置一,步骤1也不需要改。
- jl701n_le_audio_v200(patch_02.09) 版本sdk 通话音频流修改为IIS输出后回音消除算法不生效问题解决 DMA 的 len 需要多乘以4

- jl701n_le_audio_v200(patch_02.09) 版本sdk 不读U盘的问题处理 替换cpu.a库文件解决:
cpu_jl701n_le_audio_v200(patch_02.09)_U盘不读问题处理.rar - jl701n_le_audio_v200(patch_02.09) 版本混合录音导致dac卡顿问题处理 替换media.a库文件解决:
media_jl701n_le_audio_v200(patch_02.09)_混合录音导致卡顿问题.rar - 701-leaudio-2.0.0(patch02)增加频谱获取节点后触发死机断言 问题点描述:增加频谱获取节点后,U盘播歌第一首结束后会触发断言信息 spec255 info unknow

解决办法:更换下面媒体库
media_701_LEAUDIO_PATCH02_加入频谱节点导致死机问题.7z
注:701-leaudio-2.0.0(patch02.02)版本,更换上述库播放音频前后会出现PO声,需替换以下媒体库:
701patch0202频谱死机.zip - jl701n_le_audio_v200(patch_02.09) 使用单端省电容mic会一直复位 原因:可视化701版本的省电容模块功能并没有完善,且没有其他芯片稳定。
处理方法:由于701较少有客户使用该模式,因此目前不打算更新该模块,建议客户改用单端隔直电容模式。 - jl701n_le_audio_v200(patch_02.09) 获取alac、m4a、ape、flac、wav、wma等格式的id3解析信息

- jl701n_le_audio_v200(patch_02.09) AAC格式音频无法播放 需要同时打开TCFG_DEC_M4A_ENABLE的宏
- JL701N_le_audio_2.0.0(Patch02)_release_SDK的DAC差分输出幅值不够,只有1.1V,非可视化SDK正常有1.7V

- JL701N_le_audio_2.0.0(Patch02、02.09) SDK 播歌时进行TWS配对连接并播放打断提示音,主从机会出现播歌不同步,从机延迟一句话左右 处理方法:替换压缩包的四个文件。
701_TWS不同步问题修改.zip
Gitlab地址:Files · bugfix_修复TWS连接时播放打断提示音会出现主从不同步的问题 · 自由品牌 / 客户支持 / 可视化SDK / le_audio / JL701Nle_audio_2.0.0 · GitLab - JL701N_le_audio_2.0.0(Patch02.02) SDK SD卡升级异常卡住 处理方法:
- 替换ota.bin文件 701_le_audio_200_02.02_修复SD卡升级异常问题.rar
- 在isd_config_rule.c文件增加下面这段代码
#ifdef CONFIG_UPDATE_JUMP_TO_MASK
SD_LATCH_IO = CONFIG_SD_LATCH_IO //SD卡升级需要锁住的io,最大限制6个io
#endif
Gitlab地址:Files · bugfix_修复SD卡升级异常的问题
32. JL701N_soundbox_1.0.0(Patch02) SDK 关闭HFP和蓝牙后台功能后,在回连手机的途中切换模式导致死机。 死机函数为:l2cap_disconnect_all_channel
处理办法:btstack_JL701N_soundbox_1.0.0(Patch02)关闭HFP回连切模式死机.7z
33. JL701N_le_audio_2.0.0(Patch02.09) SDK 外挂FM开启扫频会异常死机 原因:缺乏设置扫频状态的接口,导致访问异常。
处理方法:按截图增加扫频接口。
34. JL701N_le_audio_2.0.0(Patch02.09) SDK 外挂FM无法配置双声道输入 处理方法:
替换板级配置文件到可视化工具下载路径,重新创建SDK,或直接替换到当前文件的板级配置文件。即可在可视化工具上勾选双声道。
替换压缩包的其他文件。 【金山文档 | WPS云文档】 外挂FM双声道
https://kdocs.cn/l/chCwtbZ1iTzB
Gitlab地址:Files · bugfix_外挂FM双声道输入 · 自由品牌 / 客户支持 / 可视化SDK / le_audio / JL701Nle_audio_2.0.0 · GitLabJL701N_le_audio_2.0.0(Patch02.12) SDK OTA升级(卡U,无线,UART)后蓝牙配对记录被擦除 处理方法:
使能支持升级之后保留vm数据。
JL701N_le_audio_2.0.0(Patch02.11) 打开升级维持IO使能后,SD卡升级失败,报错[APP-UPDATE]!!!!!!!!!!!!!!!updata waring !!!!!!!!!!!=0x5a04 处理方法:
增加下面的代码:
#ifdef CONFIG_UPDATE_JUMP_TO_MASK
LATCH_IO = CONFIG_SD_LATCH_IO
#endif
37. JL701N_le_audio_2.0.0(Patch02.09) RTC跑内置LRC时钟补丁 gitlab:http://192.168.1.245/freebrand/support/visualization/le_audio/JL701N_le_audio_2.0.0/-/tree/feature_701_leaudio_RTC_LRC
补丁:
可视化701_LEAUDIO_patch02.09_跑内部RTC补丁.7z
- JL701N_le_audio_2.0.0(Patch02.14) RTC跑内置LRC时钟补丁 gitlab:http://192.168.1.245/freebrand/support/visualization/le_audio/JL701N_le_audio_2.0.0/-/tree/bugfix_701_P02.14_%E6%97%B6%E9%92%9F%E8%A1%A5%E4%B8%81
demo:feature_701_leaudio_P0214_RTC.zip - JL701N_le_audio_2.0.0(Patch02.11-02.14) 播放打断提示音或断开TWS后,混响流出现卡顿
处理方法:
更新media.a库,目前仅提供02.12、02.14版本的,其他版本需要请联系我们提供。
修复打断重播或断开TWS后混响卡顿问题.rar
20260326 media.a库迭代:
在原有修改media.a 基础上 修复 JL701N_le_audio_2.0.0(Patch02.11-02.14) 关闭AAC解码使能后,蓝牙sbc播歌在临近超距时出现杂音问题
media_JL710N_leaudio_2.0.0(patch02.14)_修复打断重播混响声音异常问题 与 修复 蓝牙sbc播放在临近超距时出现杂音问题.rar
gitlab:Files · bugfix_修复打断重播混响声音异常问题 · 自由品牌 / 客户支持 / 可视化SDK / le_audio / JL701Nle_audio_2.0.0 · GitLab
20260616 增加02.15版本对应的media.a库:
media--701_le_audio_2.0.0_P02.15.rar
- JL701N_le_audio_2.0.0Patch02.14 MAC上看不到刚录的音频文件 MAC系统版本:macOS Tahoe 26.0.1
T卡/U盘文件系统:exfat
操作步骤:T卡/U盘插MAC强制拔出之后再在样机上录音,录音完了之后插入MAC没发现刚才录的音频文件
补丁下地址:fs-MAC上看不到刚录的音频文件.a
测试demo:
插设备上电开机进录音模式,按键为PB1,双击为录音/播放录音 长按关机
demo下载地址:JL701N_le_audio_2.0.0_2025102721.7z - JL701N_le_audio_2.0.0Patch02.14 开启仅保留电量显示进行通话时蓝牙会断连重连 tag: USB
处理方法:
更新btctrler.a库
JL701N_le_audio_2.0.0_patch_02.14-开仅保留电量显示功能通话断连重连问题.zip
20260807 库更新:
主要是在上面库基础上,增加处理三合一功能连接上话筒后话筒音频无法传送到RX的问题。
btctrler_20260505_海华改_701_le_audio_200p214-修改esco应答-Va.zip - JL701N_le_audio_2.0.0Patch02.14 PCMIC跑上行回音消除软回采会卡顿 处理方法:
1、主频固定最高时钟
2、采样率固定为48000Hz
3、播放同步节点延时改为30

- JL701N_le_audio_2.0.0Patch02.14 音乐模式拔出U盘后不会退出音乐模式 处理方法:
添加无有效可播放设备后的处理。
- JL701N_le_audio_2.0.0Patch02.14 DAC设置成单声道差分输出,出现异常问题 分支:bugfix_2.0.0_patch_02.14_通话死机问题_f43f6944
处理方法:替换media.a 库
bugfix_2.0.0_patch_02.14_通话死机问题_2025年11月27日.7z - JL701N_le_audio_2.0.0Patch02.14 场景切换后播打断提示音恢复默认场景 1、使能TCFG_SCENE_UPDATE_ENABLE这个宏,可以直接一步更新全部节点。(部分旧版本,如02.02版本,可参考移植)
2、关闭重启音频流后,会在get_eff_default_param这个接口重新获取节点配置,该接口没有链表一次更新全部节点,需自行添加对应节点(不同场景有参数修改的都需添加,无参数变化则不需要)。其中媒体流和混响流节点都在该接口添加,添加时需注意这两种音频流获取mode_index的接口不是同一个接口,需注意区分。
//EQ节点按如下代码添加,也是修改对应节点名称
if (!effect_strcmp(name->name, "EQ1")) {
struct eq_default_parm *get_eq_parm = (struct eq_default_parm *)arg;
if (!effect_strcmp(name->name, "EQ1")) {
get_eq_parm->cfg_index = get_music_eq_preset_index();
} else {
get_eq_parm->cfg_index = 0;
}
y_printf("EQ1 ---------------------------------");
get_eq_parm->mode_index = get_current_scene(); //媒体流调用该接口获取场景
//get_eq_parm->mode_index = get_mic_current_scene(); //混响流调用该接口获取场景
ret = 1;
}
//大部分节点参考此节点添加,修改对应节点名称即可
if (!effect_strcmp(name->name, "Drc*Media")) {
struct eff_default_parm *get_parm = (struct eff_default_parm *)arg;
get_parm->cfg_index = 0;
get_parm->mode_index = get_current_scene(); //媒体流调用该接口获取场景
//get_parm->mode_index = get_mic_current_scene(); //混响流调用该接口获取场景
ret = 1;
}
46. JL701N_le_audio_2.0.0Patch02.14 广播主机模式下打断播放提示音异常 异常打印:
替换文件:
bugfix_lea_big_mode_2.0.0_p02.14.zip
47. JL701N_le_audio_2.0.0Patch02.14 三合一问题修复 【金山文档 | WPS云文档】 btctrler_修复连上两个mic后断开第一个mic卡顿和三合一+tws卡顿问题+连两个mic打断提示音卡顿
https://www.kdocs.cn/l/cfF3Y86ahIWD
48. JL701N_le_audio_2.0.0Patch02.14 广播固定发送端先开广播后播蓝牙音乐,播放两分钟会卡顿 修改方法:
增加如下代码:
params.conn = broadcast_hdl->bis_hdl_info[i].bis_hdl;
49. JL701N_le_audio_2.0.0Patch02.14 鸿蒙6.0系统无法通过MAP获取手机时间,且先连电脑后连手机无法触发MAP弹窗 修改方法:替换如下补丁。
701_le_200_02.14_修复鸿蒙6.0无法通过MAP获取时间和先连电脑后再连手机无法触发MAP弹窗的问题.rar
50. le_audio-JL701N-2.0.0-patch_02.14 多文件叠加播放新增流结束播放不主动释放,导致重复触发多文件叠加播放死机 处理方法:更换库,index固定传0,不需要在工具创建那么多数据流了,可以重复创建
多文件叠加播放.rar media.a库文件
51. le_audio-JL701N-2.0.0-JL701N-demo-patch_02.14 使能叠加MIC广播,先进入广播再手机播放音乐会导致无声 使用broadcast_audio_recorder_reset,重新打开广播录音器
52. le_audio-JL701N-2.0.0-JL701N-demo-patch_02.15 蓝牙PA功放添加 //BR28 可视化用下面api代替
void bt_set_rxtx_status_io(u32 tx_pin, u32 rx_pin);
53. le_audio-JL701N-2.0.0-JL701N-demo-patch_02.12 之后版本 3in1 连接AC706N 无线麦无声问题。(包括连之前SDK广播声音解码异常) 修改方法:变量写1 兼容之前的SDK版本
const int JLA_V2_CODEC_WITH_FRAME_HEADER = 1;//jla_v2编解码是否带2个byte的头信息,注意这2个byte 的头信息没有算到编解码的码率里面
- le_audio-JL701N-2.0.0-patch_02.15 苹果手机的最左侧页面显示的耳机电量会 问题原因:ble edr同地址问题
问题处理:关闭同地址配置
- le_audio-JL701N-2.0.0-patch_02.14 不开后台从其他模式切回蓝牙模式后,RCSP没有回连且搜索不到 问题原因:退出 RCSP,没有把ble通道数量清零
问题处理:在rcsp_interface.c增加如下接口,并在截图位置调用。
void bt_rcsp_reset_conn_num(void)
{
rcsp_lib_printf("bt_rcsp_reset_conn_num\n");
g_rcsp_adt_conn_num = 0;
g_rcsp_ble_conn_num = 0;
g_rcsp_spp_conn_num = 0;
}

56. le_audio-JL701N-2.0.0-patch_02.14 RCSP先连ble再连edr第一次会连接失败 问题原因:ble edr同地址问题
问题处理:关闭同地址配置
57. le_audio-JL701N-2.0.0-patch_02.15 sd 卡维持IOPE05脚为高电平升级后 ,PE5 脚仍旧是 高电平的 原因:PE05 脚同时是 sdpg ,所以需要做关闭sdpg 处理
解决办法:软关机时候加多 sdpg_config(0);
58. le_audio-JL701N-2.0.0-patch_02.15 开启AAC使能,插卡播放AAC音频失败 处理方法:
在app_config.h文件使能TCFG_DEC_M4A_ENABLE即可。
- le_audio-JL701N-2.0.0-patch_02.15 配置仅IIS输出,PC从机模式,添加单MIC通话节点后,USB MIC上行无声。打印MMMMM卡顿,写卡通话算法的参考数据通道1为空,导致无法消除回声问题——20260410-CJD 以下修改:
- 确保TCFG_AUDIO_CVP_OUTPUT_WAY_IIS_ENABLE的宏为使能状态

- IIS输出,PC通话,使能回音消除,全局采样率需要设置为48000。避免报断言死机
- USB-Audio,PC MIC的播放同步节点需要调整到30或者50ms。避免出现打印MMMMM,导致的卡顿或者上行无声、算法参考数据为0问题

- 增加以下修改,修复USB MIC上行通话无声(远端无声)问题
- 如果是24bit位宽,则需要在单MIC通话节点的前面,插入BitWidthConvert节点
- 如果配置24bit,加了位宽转换,pc-mic音频流协商失败无声(单mic通话与播放同步节点协商失败),那么在播放同步前再加一个位宽转换节点,或者通过加一个bypass-EQ节点即可



u8 pc_mic_is_open(void)
{
return (g_pc_mic_state == PC_MIC_STA_OPEN);
}
#if TCFG_AUDIO_CVP_OUTPUT_WAY_IIS_ENABLE && (defined TCFG_IIS_NODE_ENABLE)
extern u8 pc_mic_is_open(void);
int iis_sample_rate = audio_iis_get_sample_rate(audio_cvp_ref_iis_hdl_get());
if (pc_mic_is_open()) {
printf("%s %d\n", __func__, __LINE__);
audio_cvp_ref_src_open(STREAM_SCENE_PC_SPK, TCFG_AUDIO_GLOBAL_SAMPLE_RATE, fmt->sample_rate, 2);
} else {
printf("%s %d\n", __func__, __LINE__);
audio_cvp_ref_src_open(hdl->scene, iis_sample_rate, fmt->sample_rate, 2);
}
printf("%s, hdl->scene %d, fmt->sample_rate %d, iis_sample_rate %d", __func__, hdl->scene, fmt->sample_rate, iis_sample_rate);
#endif
5、以下重启reboot_aec代码处增加忽略参考数据。避免aec_reboot内部状态一直卡住,get_audio_aec_rebooting()不返回重启成功状态,导致无法对齐IIS外部参考数据。(非必要的,如果碰到了触发aec_reboot后无声的问题,可以增加此修改)
audio_cvp_ioctl(CVP_OUTWAY_REF_IGNORE, 1, NULL);
60. le_audio-JL701N-2.0.0-patch_02.15 开启FLAC使能,无法播放24bit96k采样率的flac本地音乐文件 处理方法:
修改解码支持的最大采样率为96K即可。
61. le_audio-JL701N-2.0.0-patch_02.15 开TWS,测试盒升级后第一次开机不会打开可发现可连接 根本原因:
蓝牙模式提示音回调触发的比BT_STATUS_INIT_OK事件早导致的,回调接口会调用bt_tws_poweron接口,此时蓝牙协议栈还未初始化完成,就会导致后续的蓝牙状态不对。
处理方法:
在提示音回调事件中,增加蓝牙初始化状态判断条件,如下。
if (g_bt_hdl.init_ok == 0) { //蓝牙未初始化
return 0;
}
62. le_audio-JL701N-2.0.0-patch_02.14 RCSP开启后,获取不到蓝牙歌词。 蓝牙歌词的回调和杰理之家歌词的回调合并了,不在之前的处理函数中。
le_audio-JL701N-2.0.0-patch_02.14 - 阻塞获取AD值,调用adc_get_value_blocking函数低概率出现看门狗死机问题 看门狗死机,死机位置:位于gpadc.c: 388 -390
原因:adc驱动阻塞式采样存在临界问题,导致卡住
解决方案:替换以下cpu.a库
cpu-20260603-1529-优化ADC驱动阻塞式读取临界问题-看门狗死机-baseon-git20250913(02.14)--by-jiabao.ale_audio-JL701N-2.0.0-patch_02.14 配置双备份升级,但没有生成db_update_data.bin文件 原因:SDK的下载目录工具没有更新
处理方案:获取更新替换SDK里面的这几个exe
https://doc.zh-jieli.com/Tools/zh-cn/other_info/index.html

le_audio-JL701N-2.0.0外挂FM单声道输入,dac单声道输出声音变调 le_audio-JL701N-2.0.0-patch_02.14、le_audio-JL701N-2.0.0-patch_02.15

if (hdl->ch_num > 1) {
fmt->channel_mode = AUDIO_CH_LR;
} else {
fmt->channel_mode = AUDIO_CH_L;
}
le_audio-JL701N-2.0.0(patch_02.14)版本sdk ,打开TWS + 通话下行固定16K + 关闭手机铃声(开启本地铃声) 后远端打电话接听的时候触发死机问题 复现问题:反汇编信息的死机错误都是访问空白内存导致的死机
解决办法:将config_audio_dac_dma_buf_realloc_enable 修改为0。
问题处理
jl701n_le_audio_v100 与706无线麦之间的通信说明
需要增加解析命令回调
static void identification_cmd_handler(u16 acl_hdl, u8 arg_num, int *argv)
{
u8 i, j;
int trans_role = argv[0];
u8 *data = (u8 *)argv[1];
int len = argv[2];
if (trans_role == CONNECTED_SYNC_CALL_RX) {
for (i = 0; i < CIG_MAX_NUMS; i++) {
for (j = 0; j < CIG_MAX_CIS_NUMS; j++) {
if (app_cig_conn_info[i].cis_conn_info[j].acl_hdl == acl_hdl) {
put_buf(data, len);
break;
}
}
}
}
/* 由于转发流程中申请了内存,因此执行完毕后必须释放 */
if (data) {
free(data);
}
}
CONN_DATA_TRANS_STUB_REGISTER(identification_cmd) = {
.uuid = CONNECTED_UCMD_SYNC_FUNC_ID,
.task_name = "app_core",
.func = identification_cmd_handler,
};

#define CONNECTED_UCMD_SYNC_FUNC_ID CIG_FUNC_ID('U', 'C', 'M', 'D')
2. 发送命令demo,自行根据主从机角色调用不同接口去收发命令
case KEY_MASTER_SEND_TO_SLAVE :
u_data++;
printf(" KEY_MASTER_SEND_TO_SLAVE u_data is %d \n", u_data);
connected_send_data_to_sibling(CONNECTED_UCMD_SYNC_FUNC_ID, &u_data, sizeof(u_data), CONNECTED_DEVICE_IDENTIFICATION_L);
break;
case KEY_SLAVE_SEND_TO_MASTER :
u_data++;
printf(" KEY_SLAVE_SEND_TO_MASTER u_data is %d \n", u_data);
connected_send_data_to_sibling(CONNECTED_UCMD_SYNC_FUNC_ID, &u_data, sizeof(u_data), CONNECTED_DEVICE_IDENTIFICATION_M);
break;
3. 由于默认le_audio 1.0.0 版本sdk 注册同步结构体 没有成功,需要加上以下修改,一定要rebuild 
enum {
CONNECTED_EVENT_SYNC_TYPE = 0xA1,
CONNECTED_KEY_SYNC_TYPE = 0xA2,
CONNECTED_DATA_TRANSMIT_TYPE = 0xA3,
};

#if (LEA_CIG_CENTRAL_EN || LEA_CIG_PERIPHERAL_EN)
connected_event_sync
connected_data_transmit
connected_key_sync
#endif
- le_audio-JL701N-2.0.0-JL701N-demo-patch_02.03处理gpadc不能设置转换通道数量的问题。 问题原因:新版本将gpadc.c放到了库里面,无法直接改最大转换通道数。
解决办法: 新增接口由客户自己去设置。
cpu_le_audio-JL701N-2.0.0-JL701N-demo-patch_02.03_修改cpu库解决gpadc不能设置数量的问题.7z - JL701N_le_audio_2.0.0(Patch02.02) SDK SD CMD和linein检测脚复用方法 处理方法:
- 增加以下两个宏定义
#define TCFG_LINEIN_MULTIPLEX_WITH_SD 1
#define TCFG_LINEIN_SD_PORT 0// 0:sd0 1:sd1 //选择复用的sd
Gitlab地址:Files · feature_2.0.0(02.02)_SD_CMD和linein检测脚复用 · 自由品牌 / 客户支持 / 可视化SDK / le_audio / JL701Nle_audio_2.0.0 · GitLab
4. JL701N_le_audio_2.0.0(Patch02.14)设置录音文件时间 
FILE *file_recorder_open_file(struct file_recorder *recorder, const char *fname)
{
//文件系统时间必须在open文件之前
fat_set_datetime_info(2025,10,30,9,50,34);
recorder->file = fopen(fname, "w+");
if (!recorder->file) {
printf("open file %s faild\n", fname);
return NULL;
}
jlstream_set_enc_file(recorder->stream, recorder, &recorder_fops);
printf("open file %s suss\n", fname);
struct vfs_attr attr;
struct sys_time time;
//获取文件属性
fget_attrs(recorder->file,&attr);
time=attr.crt_time;
r_printf("crt_time attr :%d %d %d %d %d %d",time.year,time.month,time.day,
time.hour,time.min,time.sec
);
time=attr.wrt_time;
g_printf("wrt_time attr :%d %d %d %d %d %d",time.year,time.month,time.day,
time.hour,time.min,time.sec
);
time=attr.acc_time;//fat文件系统没有acc属性 数据错误可以忽略
y_printf("acc_time attr :%d %d %d %d %d %d",time.year,time.month,time.day,
time.hour,time.min,time.sec
);
return (FILE *)recorder->file;
}
- JL701N_le_audio_2.0.0(Patch02.14)录音格式修改参考 问题:录音音频流中的编码那节点可设置的码率参数最大到128K,若是需要更高码率的录音文件格式,则可以在代码修改。
修改办法:
struct stream_enc_fmt fmt = {
.channel = 2,
.bit_rate = 192000,
.sample_rate = 48000,
.frame_dms = 100,
.coding_type = AUDIO_CODING_MP3,
};
int err = jlstream_node_ioctl(stream, NODE_UUID_ENCODER, NODE_IOC_SET_ENC_FMT, (int)(&fmt));
- 演示案例分享:
- 小度APP 外网、内网
demo程序(le_audio-2.0.0-02.09以后版本支持小度功能,如果没有权限联系方案商或者杰理技术支持获取权限)
JL701N_le_audio_2.0.0_02.14_xiaodu_20260327.rar
修复问题
- jl701n_le_audio_v200p0209 小度APP连接失败 a.设备的edr和ble地址不能一致,否则苹果手机无法连接。

b.三元组跟蓝牙地址和序列号都是绑定的,如果之前的三元组连接不上,可在小度APP查看该三元组绑定的序列号,重新配置序列号。(截图是142版本常用三元组的序列号,142版本的序列号是取蓝牙地址的后四位)
- jl701n_le_audio_v200p0209 小度APP无法关闭电量显示 修改方法:改库,应用层配置如截图。


- jl701n_le_audio_v200p0209 小度关闭蓝牙后台,从其他模式切回蓝牙模式后,小度无法回连
- 在dma_spp_port.c添加 dma_spp_exit(void) 接口。
void dma_spp_exit(void)
{
log_info("***** dma spp_exit******\n");
if (dma_app_spp_hdl != NULL) {
app_spp_disconnect(dma_app_spp_hdl);
app_spp_hdl_free(dma_app_spp_hdl);
dma_app_spp_hdl = NULL;
}
spp_state = 0;
}
- 在dma_le_port.c修改 dma_le_exit(void) 接口。
void dma_ble_exit(void)
{
log_info("***** dma ble_exit******\n");
u16 con_handle;
con_handle = app_ble_get_hdl_con_handle(dma_app_ble_hdl);
if (con_handle == 0) {
printf("some error disconnect,ignore\n");
return;
}
set_ble_work_state(BLE_ST_DISCONN);
if (!dma_get_ble_update_ready_jump_flag()) {
if (dma_check_tws_is_master()) {
dma_bt_ble_adv_enable(1);
}
}
connection_update_cnt = 0;
server_register_dueros_ota_send_callbak(NULL);
server_register_dueros_send_callbak(NULL);
dma_message(APP_PROTOCOL_DISCONNECT, NULL, 0);
dma_set_module(0);
dma_ble_module_enable(0);
if (app_ble_get_hdl_con_handle(dma_app_ble_hdl)) {
app_ble_disconnect(dma_app_ble_hdl);
}
app_ble_hdl_free(dma_app_ble_hdl);
dma_app_ble_hdl = NULL;
}
- 在 dma_all_exit(void) 接口中调用以上两个接口。
extern void dma_spp_exit(void);
extern void dma_ble_exit(void);
int dma_all_exit(void)
{
dma_spp_exit();
dma_ble_exit();
return 0;
}
jl701n_le_audio_v200p0209 修复小度无法用按键进行语音唤醒的问题 1、换最新的libdma-protocol.a
2、使能智能语音模块
3、修改下面两个接口,并用按键调用。
le_audio 701添加有线mic le_audio_701_添加有线mic_20240724.rar
le_audio_701_添加两路有线mic_20241114.rarsoundbox 701pcmic 支持pc跑后台将混响、bt、music、linein等音频通过pcmic上传远端
feature_701_P0211_USBMIC_media.ziple audio 2.0.0P02.09 music下通过流暂停播放的方式来暂停与播放 需求:
进music不能立马播放音乐
需要拿到音频文件的信息
不能改变music_file_get_player_status获取播放的状态 JL701N_le_audio_2.0.0-添加music下流的暂停播放接口.7z

le audio 2.0.0P02.09 录音的同时进行OPUS编码,实现上传APP远端功能 流程图:
feature_701_leaudio_recoder_add_opus_0909.ziple audio 2.0.0P02.14 PC硬回踩没效果 JL701N_le_audio_2.0.0_2025101021-硬件回踩-打印PA5-串口在线调试TX(PC3)RX(PC1).7z
主要配置:非代码配置


代码修改
- audio_cvp.c
#include "aec_uart_debug.h"
/*使用输入立体声参考数据的TDE回音消除算法*/
const u8 CONST_SMS_TDE_STEREO_REF_ENABLE = 1;
/*使能即可跟踪通话过程的内存情况*/
#define CVP_MEM_TRACE_ENABLE 1
int audio_aec_open(struct audio_aec_init_param_t *init_param, s16 enablebit, int (*out_hdl)(s16 *data, u16 len))
{
s16 sample_rate = init_param->sample_rate;
u32 ref_sr = init_param->ref_sr;
if(init_param->ref_en){
ref_sr = sample_rate;
printf("aec_param->ref_sr : %d \r\n",ref_sr);
}
u8 ref_channel = init_param->ref_channel;
....
}
2. audio_cvp.h
struct audio_aec_init_param_t {
s32 sample_rate;
u32 ref_sr;
u8 ref_channel;
u8 mic_num;
u8 ref_en;
};
3. cvp_sms_node.c
/*节点start函数*/
static void cvp_ioc_start(struct cvp_node_hdl *hdl)
{
struct stream_fmt *fmt = &hdl_node(hdl)->oport->fmt;
struct audio_aec_init_param_t init_param;
init_param.sample_rate = fmt->sample_rate;
init_param.ref_sr = hdl->ref_sr;
init_param.ref_channel = hdl->ref_mic_num;
init_param.ref_en = hdl->ref_mic.en;
u8 mic_num; //算法需要使用的MIC个数
....
}
4. adc_file.c
void audio_adc_cfg_init(struct adc_file_common *adc_f) //通话外其他ADC节点读配置
{
...
adc_f->hdl->ch_num = 0;
adc_f->read_flag = 1;
for (i = 0; i < AUDIO_ADC_MAX_NUM; i++) {
if (adc_f->cfg.mic_en_map & BIT(i)) {
audio_adc_add_ch(&adc_hdl, i);
adc_f->hdl->ch_num++;
}
audio_adc_file_set_mic_en_map(adc_f->cfg.mic_en_map);
}
}
#if 0//TCFG_MC_BIAS_AUTO_ADJUST
extern u8 mic_bias_rsel_use_save[AUDIO_ADC_MAX_NUM];
extern u8 save_mic_bias_rsel[AUDIO_ADC_MAX_NUM];
int i = 0;
for (i = 0; i < AUDIO_ADC_MAX_NUM; i++) {
if (mic_bias_rsel_use_save[i]) {
adc_f->platform_cfg[i].mic_bias_rsel = save_mic_bias_rsel[i];
}
}
#endif
}
5.
- le audio 2.0.0P02.14 添加nandflash模块 Files · feature_PC模式挂载nandflash · 自由品牌 / 客户支持 / JLStudio / le_audio / JL701Nle_audio_2.0.0 · GitLab
demo程序
JL701N_le_audio_2.0.0_P02.14_nandflash.rar
功能修改
支持PC模式挂载nandflash,可格式化、拷贝和删除文件。
将nandflash添加进设备管理器,支持音乐模式播放nandflash歌曲
增加nandflash歌曲播放断点记忆功能
le audio 2.0.0P02.15 配置MIC叠加广播 701_le_200_02.15叠加MIC广播配置demo.rar
Files · feature_广播叠加MICdemo · 自由品牌 / 客户支持 / JLStudio / le_audio / JL701Nle_audio_2.0.0 · GitLable audio 2.0.0 P02.15 实现 bt 模式下 a2dp解码 叠加IIS IN 输入音频,同时以 IIS out 输出 demo程序:
说明:自行根据需要调用 iis_start(); 开启或iis_stop(); 关闭IIS 输入流,然后音频流混合输出已有数据流程实现:
外网链接:Files · demo_701_bt_iisin_to_iis_out · JL-Studio / Leaudio / 701N / JL701N_le_audio_2.0.0 · GitLab使用叠加方式模拟打断方式播放提示音 feature_提示音使用叠加模拟打断方式
在媒体音频流中添加总音量控制节点
701 可视化 sdk 用cis 实现对讲机功能demo 目的: 利用可视化平台实现对讲机功能,方便后续维护,该版本已增加回音消除算法节点。
demo链接:feature_701_cis_对讲机demo701 200P0215 本地opus数据解码 Files · opus-200p0215 · JL-Studio / Leaudio / 701N / JL701N_le_audio_2.0.0 · GitLab
相关说明看分支页面文档