天天看点

AliOS Things 3.0 开发:OTA之压缩升级快速上手

关联文章: AliOS Things 3.0 开发:OTA之整包升级使用手册

概要

OTA(over the air)已成为物联网设备的刚需功能, 由于应用场景的需要,OTA又可分为整包升级、压缩升级及差分升级,本文将介绍基于AliOS Things 3.0版本的OTA压缩升级;首先介绍一下何为压缩升级?

从命名可以看出和压缩有关,具体做法是,先将待升级的固件用工具压缩,然后将压缩后的升级文件由云端推送到待升级设备端,待升级设备通过解压缩算法解压,最后完成升级过程;

优点:压缩过的固件较小,下载快,占地小节省存储空间;

缺点:设备端解压缩需要些时间,一般是几十秒,时间的长短与固件大小和mcu性能等有关;

如下图所示为AliOS Things 3.0 OTA压缩升级的流程示意图,3.0版本AliOS Things的编译体系支持将生成的bin文件自动压缩的功能,具体细节后面会介绍;

AliOS Things 3.0 开发:OTA之压缩升级快速上手

图1 AliOS Things 压缩升级示意图

环境准备

获取代码:

https://github.com/alibaba/AliOS-Things

 分支:rel_3.0.0

选定APP:选择AliOS-Things/app/example/中linkkitapp;

选定board: 选择AliOS-Things/board/中developerkit;

选定云端平台:

物联网平台

使用流程

AliOS Things 同时支持Windows、Linux、MacOS编译环境,本文以Linux编译环境为例;

  • 选择app和board

输入命令:

# 清除之前配置
$ aos make distclean
# 配置app为linkkitapp,board为developerkit
$ aos make linkkitapp@developerkit -c config
# 编译
$ aos make            

编译完成后,生成的固件在

out/linkkitapp@developerkit/binary

目录下,如下图:

AliOS Things 3.0 开发:OTA之压缩升级快速上手

图2 编译生成固件图

[email protected]烧录到板子上,linkkitapp@developerkit_ota.bin.xz是压缩过的ota固件,用于上传云端,但上传云端固件的版本号要求高于烧录在板子上的固件版本号,因此需要生成一个高版本的固件;

  • 固件版本号更改及云端操作

更改

build/build_rules/aos_target_config.mk

文件中的app-1.0.0-为app-2.0.0-编译,如下图:

AliOS Things 3.0 开发:OTA之压缩升级快速上手

图3 固件版本号获取图

复制如上图标记的版本号,登录

平台,按如下图顺序操作

AliOS Things 3.0 开发:OTA之压缩升级快速上手

图4 添加固件操作步骤图

点击新增固件后,如下图:

AliOS Things 3.0 开发:OTA之压缩升级快速上手

图5 固件添加图

点击“确定”后,选择“验证固件”即可开始固件升级;升级结果可以点击“查看”获取详细结果;

  • 设备端信息

设备端升级过程中部分log如下图:

AliOS Things 3.0 开发:OTA之压缩升级快速上手

图6 设备端压缩升级信息

  • 升级结果云端查看

通过点击“验证固件”下的“查看”可以查看OTA的升级结果,如下图

AliOS Things 3.0 开发:OTA之压缩升级快速上手

图7 云端升级结果图

以上就是AliOS Things 3.0版本的OTA压缩升级整个流程。

注:在做OTA之前确保设备端已连接云端
AliOS Things 3.0 开发:OTA之压缩升级快速上手
给AliOS Things一颗STAR (前往GitHub关注我们)

继续阅读