【泰凌微TLSR8258 zigbee】OTA升级操作方法

程序启动模式

在介绍OTA升级操作方法前,我们先介绍一下程序的启动模式,以及不同启动模式的优缺点。

多地址启动模式

优点:启动速度快;OTA 结束后⽆需再次搬运 image,校验正确后可以快速启动。
缺点:image 只能位于地址 0x0 或 0x40000,会造成 flash 空间分配的不连续性;另外 image 的⼤⼩ (如果⽀持 OTA 的话) 只能⼩于 208KB。

Bootloader 启动模式

优点:通常 bootloader 位于地址 0x0,image ⽂件可以灵活选择地址,便于⽤⼾⾃⾏定义地址空间。
缺点:启动速度较多地址启动模式慢;会额外增加 flash 消耗⽤以放置 bootloader 代码;另外在 OTA 时,需要增加搬运 image 的⼯作。

多地址启动模式 Flash 分布

512k flash

Bootloader 启动模式Flash分布模式

在这里插入图片描述

以上是512k flash的分布图,下面我们根据这个分布,介绍OTA升级操作方法。

OTA升级

TLSR8 和 TLSR9 系列芯⽚⽀持 Flash 多地址启动:除了 Flash 地址 0x00000,还⽀持从 0x40000 读取固件运⾏。Telink Zigbee SDK 使⽤了该特性来实现 OTA 的功能。
从上可知,我们分配了两块固件区域 Firmware 和 OTA-Image,固件⼤⼩应不⼤于 208K。
假设当前正在运⾏ Firmware 的固件,当设备执⾏ OTA 升级时,新的固件数据将被存储到 OTA-Image,在 OTA结束并且验证通过后,将重启并运⾏ OTA-Image 的固件。后续 OTA,将交替执⾏。

OTA初始化

typedef enum{
OTA_TYPE_CLIENT,
OTA_TYPE_SERVER
}ota_type_e;
void ota_init( ota_type_e type, af_simple_descriptor_t *simpleDesc,
ota_preamble_t *otaPreamble, //current running fw info
ota_callBack_t *cb );

OTA 设备分为服务设备(Server)和终端设备(Client)。因此,在 OTA 初始化时需要注意 OTA 初始化的服务类型。
⼀般地,被升级设备为终端设备(Client),为被升级设备提供新固件的设备为服务设备(Server)。

OTA Server

OTA 服务端需要将被升级设备所需要的新固件写⼊ OTA-Image 区域供 OTA 使⽤。
例如:服务端⾃⼰运⾏的固件在 Firmware 区,那么可以将⽬标设备的 OTA image(包含 OTA Header 的新固件,参考 Zigbee Cluster Library Specification)暂存到 OTA-Image 区域。
当 OTA 服务端在调⽤ ota_init 函数后,会⾃动装载 OTA image 的信息。

OTA Client

设置 OTA 终端设备的 OTA 查询周期,单位:秒。

void ota_queryStart(u16 seconds);

OTA 终端设备在调⽤ ota_init 函数后,将会⾃动重载上⼀次的 OTA 进度信息,如果⼊⽹成功,将在设置的seconds 秒后开始 OTA 请求。

OTA升级固件生成

OTA Image 是⼀个包含 OTA Header 供 OTA Client 端实现空中升级的 zigbee ⽂件。⽤⼾可以使⽤ Telink 提供的 zigbee_ota_tool ⼯具,将 Client 端的固件加上头信息转换成升级⽂件。SDK 中要求待升级固件的⽂件版本必须⼤于当前的⽂件版本,否则,当 Client 端发起 OTA 查询时,Server 端将回复NO_IMAGE_AVAILABLE。
OTA Image ⽂件⽣成,以 sampleLight_8258 为例:
(1)将 sampleLight_8258.bin 拷⻉到“zigbee_ota_tool_v2.2.exe”所在⽂件夹;
(2)双击“zigbee_ota_tool_v2.2.exe”按提⽰操作;
(3)或使⽤命令⾏“./ zigbee_ota_tool_v2.2.exe [arg1] [arg2]”。
[arg1]:⽂件名,需要转译的⽂件名,输⼊参数如:sampleLight_8258.bin。
[arg2]:如果不存在该参数,代表不加密。如果存在,代表使⽤AES-128加密,输⼊参数如:
00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Justice_Gao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值