本文适用范围
ADK21.3~
问题/功能描述
如何在运行状态下更改蓝牙地址
实现方案
蓝牙地址默认只在烧录过程或者借助外部工具在debug状态修改。总会遇到某些原因需要在运行时不借助调试接口去更新蓝牙地址。在更新后的DTS模块提供接口实现实时更新地址能力。
以下就是对修改过程的介绍
- 使能打开DTS服务
参看博文https://www.wpgdadatong.com/blog/detail/45675
QCC51xx系列开发之Device Test Service(DTS)使用介绍
- 代码配置
工程配置中添加下面宏定义
INCLUDE_DEVICE_TEST_SERVICE_DEV_CFG_FS
配置中使能读写只读系统
StreamFilesystemEnable=1
- 升级bin文件的制作
制作方式一种是利用读取原机配置文件解码修改再编码回去,另外一种是直接使用xuv文件制作成bin,通常建议使用读取回来的修改指定参数,这样修改影响小,或者熟悉配置确认不会影响其他参数。
- 相关指令说明
AT+DEVCFGREAD? 读取分区大小
AT+DEVCFGREADPART=<fs_part_size> 读取指定大小分区数据
AT+DEVCFGUPD=<fs_size> 写更新文件大小
AT+DEVCFGUPDPART=<fs_upd_data> 写更新文件内容
- 升级完成后重启生效
常见问题FAQ
修改只是针对dev_cfg分区,可支持升级更新蓝牙名称、蓝牙地址、FeatureLicenseKey、频偏等参数
2.如何制作更新文件
升级文件制作使用工具按照文档介绍直接使用packfile.exe, unpackfile.exe,configcmd.exe操作会有问题,附加会提供一个简单脚本专门用于自动完成替换生成功能。具体获取可以发送邮件获取
3.方法适用与哪些场景
借助DTS只是上层人机交互的手段,方便应用更适合将此功能集成到手机或者其它测试工具。不大适合大批量的修改。但是在小批次或者不便于引线出来时是能够胜任的
4.修改对产品稳定性有影响吗?
更改有风险谨慎使用
5.是否有官方指导资料
参考文档80-14839-1 Rev. AE
评论