KDocs 研发资料库
  • 音频技术应用文档入口汇总
  • 杰理WINDOWS环境安装及其他事项
  • LINUX安装和编译
  • Linux环境编译SDK教程(ubuntu18.04)
  • 音频类补丁汇总表
  • 认证资料获取汇总(最新资料后台会更新)
  • 《Hi-Res申请指南v1.0》
  • FreeRTOS 开源协议版本
  • uCOS 开源协议版本信息
  • 各个模块关键资料汇总
  • 软件调试方法
  • Makefile编译
  • 提bug的规范
  • 常规设备使用指导
  • 对外特别发布开发注意点信息汇总
  • AD697X软件问题整理
  • AC700N软件问题整理
  • AC701X耳机软件问题整理
  • 951&961软件问题整理
  • AC104X软件问题整理
  • AC128N问题整理文档
  • 可视化工具调试问题整理
  • 耳机资料汇总
  • AC704N、 AC705N相关应用
  • AC695N&AC696N&AC608N音箱问题整理
  • JL701N音箱问题整理
  • AC692X软件问题整理
  • AC706N音箱问题整理
  • JL701N音箱问题整理(可视化工具SDK)
  • JL703N音箱问题整理
  • JL709N(JL689N)音箱问题整理
  • JL7094系列-入门到进阶开发指导
  • AC210N音箱问题整理
  • 无线麦系列版本支持指南
  • AW32N无线麦问题整理
  • lAD697X&JL701X 无线麦软件共性问题整理
  • AC706N无线麦问题整理
  • AW36N无线麦问题整理
  • AC710X无线麦问题整理
  • 唤醒源获取及唤醒IO设置
  • 电源
  • LVD
  • 长按复位配置方法
  • 低功耗应用
  • TIMER
  • UART
  • SPI
  • 内部FLASH空间添加用户自定义区域
  • IIC
  • GPIO
  • MCPWM
  • SD&U盘
  • 时钟&晶振
  • GPCNT
  • IO口crossbar映射功能
  • 文件系统使用总结
  • 复用应用
  • LINEIN_AUX相关应用
  • IIS音频接口应用
  • SPDIF模式相关(HDMI_ARC、光纤、同轴)
  • PDM LINK
  • 外设相关应用
  • 蓝牙相关
  • 杰理蓝牙距离调试文档
  • TWS耳机配对方式使用及生产把控指南
  • GFP谷歌快连及其认证流程指引
  • 蓝牙发射器(bt_emitter)相关
  • BLE应用
  • 关于提升BLE传输速率说明
  • BLE测试数据
  • MUSIC 模式相关应用
  • MIDI音乐实现
  • PC相关应用
  • FM相关应用
  • AC695N_AC696N FM天线ESD静电防护措施说明V2.0_20250107
  • fm应用详细设计说明书
  • 杰理FM硬件指南-20230315
  • ADC模块
  • AUDIO相关应用
  • 新Tools的音效调试使用
  • 混响应用使用说明
  • 音效调式
  • 音箱耳机低音小音量增强实现方法
  • DAC输出功率调试
  • DAC性能测试指南
  • 针对各类底噪、电流声分析流程
  • 录音相关应用
  • OPUS编解码相关
  • RTC相关应用
  • 升级相关
  • UI相关应用
  • 通话调试流程指南
  • 通话相关应用
  • 省电容mic使用手册
  • 如何测试验证手表通话系统的语音失真 V1.0
  • AC695X_AC696X_AD697X 常见通话问题处理参考资料
  • 通话调试问题确定步骤
  • 内置触摸调试指南
  • 低功耗内置触摸介绍V2.2
  • 触摸相关文档
  • AC697X、AC698X内置触摸调试及整改方法V1.0
  • 产测相关应用
  • AC63X BLE DUT测试介绍
  • 兆华序列使用简易说明
  • JL_1T2蓝牙测试盒音频文件更换说明
  • ENC相关应用入口汇总
  • ANC相关应用入口汇总
  • JL DMS通话调试手册-V3.9.4
  • ANC-ENC结构设计要点-20240407
  • 半入耳式ANC耳机器件选型与结构设计指南V1.0
  • JL 耳道自适应调试指南
  • ANC相关问题处理
  • ANC调试文档
  • 评估蓝牙耳机通话上行降噪性能的方法 V1.0 (2)
  • FCC 或者 BQB 认证相关应用
  • BQB profile 测试中常遇到的问题点汇总
  • 蓝牙参数整理20210811
  • 杰理科技认证问题参考
  • 无线音频产品开发指南
  • 无线麦系列从入门到进阶开发指导
  • 量产烧录相关说明
  • 一拖八烧录器远程过程调用说明
  • 量产相关建议
  • EffectTool(eq)调试工具说明文档
  • AC897AD697系列的EQ调试方法-V3
  • 杰理调音指南-20220622
  • 音效模块总结
  • 简要调音步骤指引(可视化)
  • 耳机充电与通信调试指南
  • 充电仓硬件调试指南
  • 充电仓软件问题整理
  • AC951常用说明
  • AC951_AC961_开发板使用说明V1.0
  • 彩屏仓AC982 入门指导及FAQ
  • 蓝牙音频APP相关应用
  • 手机APP的简介和开发流程
  • 蓝牙音频系列-硬件设计指南
  • 静电测试及整改方法-20220706
  • TWS耳机底噪整改指南V1.2
  • 杰理蓝牙距离调试文档
  • 蓝牙RF硬件设计与调试V1.1-20250219
  • AC695N_AC696N FM天线ESD静电防护措施说明V2.0_20241228
  • 音效调试指南
  • 无线话筒K歌音箱标准开发流程
  • 杰理科技 700N TWS耳机产品标准-202303
  • 杰理科技 701N 广播产品标准-202303
  • JL-HAT ANC高效产测自适应
  • 无线话筒测试板使用介绍
  • 一拖八频偏校准使用说明
  • 领夹麦产测工具使用介绍
  • Dongle量产测试说明
  • Dongle+Tws或头戴式 SDK通过工具绑定配对功能说明文档
  • 双麦ENC产测宏配置验证方法 V1.0
  • JL耳机方案麦克风声学测试指令_V1.0
  • JL耳机方案麦克风声学测试指令_V2.0
  • JL_ENC自动测试命令_V0.0.1
  • JL蓝牙测试盒用例说明
  • LDAC自测环境搭建_ubuntu
  • 延迟小板使用手册
  • 杰理库文件的制作及添加实现过程
  • 关于 AC635N&AC636N系列免晶振兼容性补丁 说明
  • 关于 AC63系列VM兼容性修复补丁_20250224 说明
  • 关于 AC632N &AE632N_ 蓝牙& 低功耗兼容性修复补丁 说明
  • AD698N和AC638N电压优化补丁V3说明
  • 关于 AC635N&AC636N漏电和E&G版兼容联合补丁 说明
  • AD698N和AC638N电压优化补丁V2说明
  • 702相关应用
  • 2024-4-30 发布歌词显示SDK开发注意事项
  • BQB RF & FCC 认证测试固件问题汇总及源码
  • BQB profile 测试中常遇到的问题点汇总
  • 进dut测试模式方法及固件
  • 704-频偏修改bin文件合集
  • 701手表BQB PROFILE认证注意事项
  • 认证的干扰规避整改
  • 海外CRA认证报告生成说明
  • JL700N可视化工具问题处理文档
  • JL701X可视化工具问题处理文档
  • JL701N_earphone_release_v1.6.0_ANC 低功耗问题补丁
  • JL708X可视化工具问题处理文档
  • JL709N可视化工具问题处理文档
  • JLstudio可视化工具使用说明
  • 一拖二-串口_蓝牙_app在线EQ、通话参数及调试方式和内置触摸调试
  • 可视化JL701M_DONGLE_SDK添加MIC为发射源
  • 可视化JL701M_DONGLE_SDK添加按键切换usb audio与MIC发射源
  • JL701M_DONGLE_SDK_1.0.0_dongle输入linein输出dac
  • 701可视化_a2dp_to_le_demo说明
  • 耳机系列demo汇总
  • JL7018F&JL7006F_7003F AUX IIS
  • 一键连接应用
  • 普通SDK动态开关一拖二功能
  • 蓝牙分析仪(EllisysBluetoothAnalyzer)抓包例程
  • TWS配对常见应用
  • APP自定义按键的demo
  • AC700N 播歌双EQ DEMO示例及说明
  • AC698V164 MIC与蓝牙音乐共同输出DAC demo
  • 添加第三方算法以及多算法授权流程
  • 空间音频配置方法
  • 普通高低电平TWS耳机控制通讯
  • 入耳检测状态更新demo解析
  • 资源优化(非可视化的SDK)
  • 资源优化(可视化SDK)
  • 翻译耳机、语音识别应用demo
  • 耳机抗干扰问题排查和优化
  • AC698D2 抗干扰优化
  • AC696X软件问题整理
  • AC695X软件问题整理
  • AC695X软件问题整理_1722249702
  • AC608X软件问题整理
  • JL701N_2T1_DUPLEX 应用软件问题汇总
  • le_audio_1.0.0_patch05 以及之前的版本IRkey 功能异常修改
  • AC706N-le_audio-200SDK有线_无线麦录音demo
  • jl701n_le_audio_v200patch02 IO串口升级修改串口单次发送字节长度的修改办法
  • 703创建IIS 输入dac输出音频流demo
  • 703将媒体流音频同时上传PC_mic录音demo实现
  • 703四路IIS输入输出demo
  • 底噪调试
  • AW328A烧录说明
  • 文档合集
  • AC706N_wireless_mic_release_PATCH_20240712 补丁 说明
  • AC706N_wireless_mic_release_PATCH_20240726 补丁 说明
  • AC706N_wireless_mic_release_V1.0.0、1.0.1、1.0.2 补丁 说明
  • AC706N_wireless_mic_release_V1.1.2 中的2T1应用 RX端不绑定配对,TX端实现绑定配对的修改方法
  • 各系列省晶振实现方法
  • iis tx rx说明文档
  • spdif信号
  • 蓝牙电话本
  • 安卓手机同步时间补丁
  • CDC配置
  • PC模式下增加Teams唤起功能
  • 杰理HDMIARC开发实现过程
  • AC701N patch06之前的版本用第三方算法节点实现新版本的pcm delay节点功能
  • (K歌音箱)各SDK音效配置相关说明
  • 长文件录音
  • 点阵屏歌词字库相关(蓝牙歌词,普通歌词)
  • 字模提取工具说明
  • 音箱可视化彩屏-入门到进阶开发指导
  • 彩屏LVGL UI设计及工具使用
  • 使用内部UI框架进行UI调试的系列步骤
  • AD101C使用强制升级工具spi 烧录不了问题处理(测试版本)
  • AD161扩展灯板说明文档
  • 歌词显示器开发注意项
  • 使用硬件数字增益控制通话下行音量(可视化)
  • 杰理小牛产测资料
  • ENC配置说明
  • 通话调试流程指引
  • ANC相关功能demo
  • 无线麦硬件资料汇总
  • 无线麦相关应用
  • 无线麦复杂功能补丁包汇总
  • 无线话筒形态SDK程序&开发经验&问题点分享
  • 双模式结合应用问题汇总
  • 无线麦距离优化案例
  • 无线麦系列中的双工形态(duplex)演变开发对讲机方案开发资料
  • 音箱入门到进阶指导文档(编写中)
  • 蓝牙耳机品控和生产技巧
  • 982过_欠压标志获取异常
  • 如何获取最新涂鸦SDK及库文件
  • 无线话筒K歌音响-调音标准流程
  • 无线话筒产测流程

升级相关说明

📎 原始文档:https://www.kdocs.cn/l/ctMba66bMc2z 简介
JL升级结构介绍
主动升级
单备份
双备份
流程图
测试盒升级
APP升级
杰理自带协议升级
固件端
单备份配置
双备份配置
APP端
用户接入第三方协议
设备升级
用户串口升级
升级问题调试

简介

image 杰理升级分为测试盒升级、设备升级、 APP升级三类。测试盒升级一般用于产线(需要向JL购买测试盒),设备升级、 APP升级主要用于用户端。每种升级均支持单双备份,需要主要用户自定义升级仅支持双备份。

JL升级结构介绍

主动升级

使用ufw文件进行升级,分为单备份和双备份两种

单备份

单备份升级,需要使用到ota. bin(包含各种升级方式的loader,如串口,测试盒EDR、 BLE、 RCSP等),升级首先需要先将loader( ota. bin里对应当前升级方式的loader)加载到VM区域(需要需要保留VM数据需要在lib_update_config.c 进行配置)。加载完成之后,会在flash里写入update_record,接下来跳转到loader进行升级流程。
需要注意的点:

  1. VM的大小决定了单备份是否能将loader写入,如果VM空间不足以写入loader,则升级会提示loader大小错误,具体需要的大小可以通过编译最后的提示信息来得知:
    image 2.升级过程被中断,如遭遇断电,测试盒通信失败等,若当前升级流程处于loader加载的过程,则固件不会丢失。若已经加载完loader,那固件会在loader里等待继续升级(此时原有的固件已经被擦除),测试蓝牙升级可以重新搜索xxx_update或者xxx_LE_UPDATE进行升级。测试盒串口可以继续点击开始升级来升级。

双备份

1.双备份主动升级区别于单备份升级,不需要ota. bin,也就是没有加载loader的流程,即使升级中途失败,原有的代码也不会丢失。

流程图

image

测试盒升级

测试盒相关升级请查看随测试盒自带的文档
1.测试盒EDR升级
2.测试盒BLE升级
3.测试盒串口升级

APP升级

杰理自带协议RCSP升级

固件端

单备份配置

1.对于数传SDK V2xx版本,只需要打开*CONFIG_APP_OTA_ENABLE即可升级,不需要修改isd_config .ini。
2.对于其他SDK,耳机需要打开宏RCSP_MATE_EN或者RCSP_ADV_EN ,并将RCSP_UPDATE_EN置1;音箱需要打开宏SMART_BOX_EN并将RCSP_UPDATE_EN置1,还需要修改isd_config .ini (这里需不需要修改取发布 SDK tools目录结构是否有isd_config_rule .c ) .
如果tools目录没有 isd_config_rule .c则需要在工程对于的isd_config .ini 中添加已经配置如下参数:
EXIF_ADR = AUTO;
EXIF_LEN = 0x1000;
EXIF_OPT = 1 ;

双备份配置

1.对于数传SDK V2xx版本,只需要打开CONFIG_APP_OTA_ENABLE和CONFIG_DOUBLE_BANK_ENABLE*即可升级,不需要修改isd_config .ini。
2.对于其他SDK,耳机需要打开宏RCSP_MATE_EN或者RCSP_ADV_EN ,并将RCSP_UPDATE_EN置1;音箱需要打开宏SMART_BOX_EN并将RCSP_UPDATE_EN置1,还需要修改isd_config .ini (这里需不需要修改取发布 SDK tools目录结构是否有isd_config_rule .c ) .
如果tools目录没有 isd_config_rule .c则需要在工程对于的isd_config .ini 中添加已经配置如下参数:
[ EXTRA_CFG_PARAM]
BR22_TWS_DB = YES; //dual bank flash framework enable
FLASH_SIZE = CONFIG_FLASH_SIZE; //flash_size cfg
BR22_TWS_VERSION = 0 ; //default fw version
DB_UPDATE_DATA = YES; //generate db_update_data .bin
#NEW_FLASH_FS = YES; //enable single bank flash framework
注:双备份和单备份之间不能互相升级,配置双备份升级成功后使用强制升级工具去升级,会提示正常擦除 CODE2 ...,说明当前flash结构已经为双备份
3. db_update_data. bin只存在一份代码(4K对齐或256Byte对齐),故用双备份被动升级时需要配置强制4K对齐,否则可能会导致vm信息丢失
FORCE_ 4K_ALIGN = YES; // force aligin with 4 k bytes

APP端

用户接入第三方协议

对于用户自定义的协议或者第三方协议接入,可使用dual_bank_updata_api.h ,此种升级方式,使用的升级文件为 db_update_data. bin,(需要在ini里配置flash结构为双备份,且生成db_update. bin的配置)。使用该升级方式,用户只需要提供升级的文件信息已经实现升级的数据通路(完成协议),调用提供的接口即可。
ini配置:
[ EXTRA_CFG_PARAM] BR22_TWS_DB = YES;
FLASH_SIZE = CONFIG_FLASH_SIZE;
//dual bank flash framework enable //flash_size cfg
BR22_TWS_VERSION = 0 ; //default fw version
DB_UPDATE_DATA = YES; //generate db_update_data .bin
FORCE_ 4K_ALIGN = YES; // force aligin with 4 k bytes
#NEW_FLASH_FS = YES; //enable single bank flash framework
注意:这里ini需要配置强制4K对齐,否则如果同一批生产的芯片有256Byte和4K对齐的芯片,会导致升级过后VM信息丢失
接口解析:

  1. u32 dual_bank_passive_update_init(u32 fw_crc, u32 fw_size, u16 max_pkt_len, void *priv);
    Note:初始化升级模块,创建升级任务
    param1: db_data_update. bin的crc
    param2: db_data_update. bin的大小
    param3:每次调用模块写入接口写入数据的最大长度
    param4: reverse
    return: 0:succ-2:no_memroy-3:获取不到当前flash的文件接口(检查当前ini是否正确配置)
2. u32 dual_bank_update_allow_check(u32 fw_size);

Note:检查当前的flash空间是否满足升级需求
param1: db_data_update. bin的大小
return: 0:succ-1:升级模块未初始化-2:当前flash空间小于升级文件需要的大小
3. u32 dual_bank_update_write(void *data, u16 len, int (*write_complete_cb)(void *priv))
Note:升级文件数据写入接口,数据并非调用完该接口就已经写入flash,需要等write_complete_cb回调被调用才是成功写入了
param1:写入数据的指针
param2:写入数据的长度
param3:数据写入成功的回调函数,只有该接口被调用,数据才算写入成功,这样设计是为了调用写入之后不用等到flash操作完成,可以在下次写的时候再去查上一次是否写入成功。
return: 0:succ-1:升级模块未初始化-3:写入的数据长度大于初始化的时候传递的参数max_pkt_len
4. u32 dual_bank_update_verify(void (*crc_init_hdl)(void), u32(*crc_calc_hdl)(u32 init_crc, u8 *data, u32 len), int (*verify_result_hdl)(int calc_crc))
Note:数据校验接口,所有数据写入完成调用。
param1: crc计算初始化接口,初始化CRC变量(用户端提供),传递NULL,使用默认的CRC16-CCITT Standard
param2: crc计算接口(用户提供),传递NULL,使用默认的CRC16-CCITT Standard
param2: crc计算成功回调函数,和写入数据的接口一样,需要等待回调函数通知校验结果,回调函数参数传参calc_crc为1时,校验成功,为0则表示校验失败。
5. u32 dual_bank_update_burn_boot_info(int (*burn_boot_info_result_hdl)(int err));
Note: boot_info写入接口,在校验成功之后调用, cpu复位之后则会运行新的代码。
param1: boot_info成功写入回调。 -1表示写入失败, 0表示写入成功。
return: -1:升级模块未初始化
6. u32 dual_bank_passive_update_exit(void *priv);
Note:释放升级模块资源,在失败或者升级结束之后调用。
param1: reverse

7. u8 dual_bank_update_verify_without_crc(void)

Note:对于手机没有传CRC过来的方案,提供该接口来进行crc校验
return: 0:校验成功 1 :校验失败。
双备份被动升级流程图:
image

设备升级
用户串口升级

image 该功能用于用户多MCU之间使用串口进行升级,支持单IO (接收发送复用)和双IPO (接收发送分开两个IO),具体命令格式和流程参考《杰理串口升级规范.pdf》
如何验证:

1.两块开发板分别做主从验证:

SDK提供了uart_update .c和uart_update_master .c ,分别是串口从机和串口主机的demo。验证可以拿两块开发板(主机需要支持SD卡或者U盘)分别下载主机和从机的demo,连接好TX\RX, 主机插入带有ufw文件的U盘即可进行升级。

2.上位机做主机,开发板做从机验证:

注意:
1.用户自己开发PC上位机工具,可能会在切换波特率的流程出错(PC切换波特率需要延迟),可以在代码做如下修改:
image 在loader升级过程主机可以不再变化波特率(只在SDK过程设置一次)。
出错分析:
1.先确定是主机还是从机问题,可通过逻辑分析仪,抓对应的IO,分析串口数据(根据协议规定数据格式分析哪一步出错)。

升级问题调试
1.尝试打开库和loader的打印定位问题:

在跳转loader前失败:打开lib_update_config .c ,把update库的打印打开:
image 如果在loader中失败,可用tools目录下的ota_debug. bin替换ota. bin,并且配置isd_config. ini文件(这里需要注意,如果有isd_config_rule.c需要直接修改isd_config_rule.c,否则编译的时候isd_config. ini会重新生成)添加 UTTX和UTBD,修改完成之后需要用强制升级工具升级一次把固件的ini配置更新。然后拿新的update.ufw升级查看loader打印信息。
UTTX=PA00; #配置打印口
UTBD=1000000; #配置打印波特率

2.如何通过错误码(err_code)信息,分析升级失败原因:

升级失败退出会调用函数update_exit_common_handle。函数的传参ret_code里附带了升级的错误信息 ret_code。
err_code对应的错误信息如下图(err_code或上了BIT(7)):
image