找回密码
 立即注册

微信扫码登录

查看: 1181|回复: 4

[BLE Mesh] 【提问】关于TLSR8258 OTA升级

[复制链接]

3

主题

5

回帖

47

积分

英勇黄铜

积分
47
发表于 2025-2-21 08:53:15 | 显示全部楼层 |阅读模式
TLSR8258是否支持通过串口进行OTA升级,如果可以的话能否给一下相关例程或者提供一下思路

13

主题

82

回帖

633

积分

管理员

积分
633
发表于 2025-2-21 09:36:12 | 显示全部楼层
支持通过串口升级。个人思路:先实现UART的收发功能,在找个成熟的协议或者自定义协议(最好有校验和重传功能)进行交互数据,将待升级的数据分段接收并写入flash内。多个镜像的选择或者跳转根据你自己的需求来定。可参考telink_script中ymodem协议进行文件收发的实现:https://doc.telink-semi.cn/doc/zh/openplatform/telink_script/

3

主题

5

回帖

47

积分

英勇黄铜

积分
47
 楼主| 发表于 2025-2-27 10:22:27 | 显示全部楼层
admin 发表于 2025-2-21 09:36
支持通过串口升级。个人思路:先实现UART的收发功能,在找个成熟的协议或者自定义协议(最好有校验和重传功 ...

假设我固件不大于128K,存放地址是0x20000,现在我的固件已经接收完成,我理解的接下来的步骤:
1、将0x08地址写成0xff;
2、将芯片软复位,复位后芯片读取0x08地址不为0x4b,就去读取0x20008地址,读取到是0x4b,开始跳转到0x20000地址运行,本次OTA完成。
接下来是我的疑问,由于第一次开发泰凌微的芯片,问题比较多,请包涵
疑问:
1、我上面的理解是否有什么错误或者遗漏的地方?
2、如何将芯片软复位?
3、芯片软复位后的操作是芯片自动完成的吗,需不需要我编程实现?
4、我了解到有个变量 ota_program_offset  在哪里使用呢?

13

主题

82

回帖

633

积分

管理员

积分
633
发表于 2025-2-27 11:29:03 | 显示全部楼层
13299279387 发表于 2025-2-27 10:22
假设我固件不大于128K,存放地址是0x20000,现在我的固件已经接收完成,我理解的接下来的步骤:
1、将0x08 ...

你说的这个变量应该是在tc_ble_mesh_V4.1.0.1这个SDK里,这个问题你可以到蓝牙模块去提问。按你的理解你可以实际测试一下,我们的硬件boot好像确实有多地址启动检测功能,不过你也可以尝试下(我没试过)用通用的跳转办法,也就是函数调用的方式最终设置PC,你说的这个软件复位应该是会复位整个SOC,你在SDK中搜下有没有相关函数,应该只需要操作一个寄存器。综上所述,你可以按你的理解去测试一下,应该是可行的。

3

主题

5

回帖

47

积分

英勇黄铜

积分
47
 楼主| 发表于 2025-2-28 10:11:09 | 显示全部楼层
admin 发表于 2025-2-27 11:29
你说的这个变量应该是在tc_ble_mesh_V4.1.0.1这个SDK里,这个问题你可以到蓝牙模块去提问。按你的理解你 ...

蓝牙版块提问没有工程师回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telink forum ( 沪ICP备17008231号-1 )

GMT+8, 2025-4-10 19:37 , Processed in 0.083654 second(s), 19 queries .

Powered by Telink 隐私政策

泰凌微电子版权所有 © 。保留所有权利。 2024

快速回复 返回顶部 返回列表