AliOS Things 3.0 开发:OTA之差分升级快速上手

简介: OTA之差分升级,用AliOS Things如何实现?

关联文章:
AliOS Things 3.0 开发:OTA之整包升级使用手册查看详情
AliOS Things 3.0 开发:OTA之压缩升级快速上手查看详情


概要

前面已经介绍了AliOS Things 3.0 OTA的整包升级压缩升级,本文将介绍AliOS Things 3.0版本的OTA差分升级;首先介绍一下差分升级的概念,差分升级是将新老固件差异部分剥离出来, 生成差分包,再通过云端将差分包推送到设备端,设备端接收完成后,通过差分恢复算法,将差分包和老固件进行融合,恢复差分前的新固件,进而完成升级;
优点:升级固件更小,下载速度快,更节省存储空间;
缺点:差分固件恢复成新固件的时间相对长,需要的内存相对大;
下图为AliOS Things 差分升级示意图:


TB1vF2RiHj1gK0jSZFOXXc7GpXa-710-496.png


图1 AliOS Things 差分升级示意图

环境准备

获取代码:https://github.com/alibaba/AliOS-Things 分支:rel_3.0.0
选定APP:选择AliOS-Things/app/example/中linkkitapp;
选定board: 选择AliOS-Things/board/中mk3080;
选定云端平台:物联网平台

使用流程

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

  • 选择app和board

输入命令:

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

编译完成后,生成的固件在out/linkkitapp@mk3080/binary目录下,如下图:


TB1vvvNiHr1gK0jSZR0XXbP8XXa-533-288.png


图2 编译生成固件图

linkkitapp@mk3080_ota.bin烧录到板子上,同时也是差分的基础固件,接下来还需要编译生成一个高版本的固件;mk3080烧录的方法,如下图:


TB16JzMiND1gK0jSZFsXXbldVXa-899-679.png


图3 mk3080烧录方法图
  • 固件版本号更改

更改build/build_rules/aos_target_config.mk文件中的app-1.0.0-为app-2.0.0-编译,如下图:


TB15rTMiUz1gK0jSZLeXXb9kVXa-874-543.png


图4 固件版本号获取图
  • 制作差分升级包

将低版本的linkkitapp@mk3080_ota.bin改名为old.bin, 高版本的linkkitapp@mk3080_ota.bin改名为new.bin, 在终端中输入命令:aos ota diff old.bin new.bin 执行完毕后,会在当前文件夹中得到差分升级包diff.bin

  • 云端添加固件

复制如上图标记的版本号,登录物联网平台平台,按如下图顺序操作


TB1q6fNiQL0gK0jSZFAXXcA9pXa-1881-835.png


图5 添加固件操作步骤图

点击新增固件,如下图,填入相关信息并上传差分升级包:


TB1fOjLiKT2gK0jSZFvXXXnFXXa-755-856.png


图6 固件添加图

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

  • 设备端信息

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


TB1UtvMiUY1gK0jSZFMXXaWcVXa-1634-864.png


图7 设备端压缩升级信息
  • 升级结果云端查看

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


TB10BHQiHH1gK0jSZFwXXc7aXXa-1282-373.png


图8 云端升级结果图

以上就是AliOS Things 3.0版本的OTA差分升级整个流程。
注:在做OTA之前确保设备端已连接云端


image.png

给AliOS Things一颗STAR(前往GitHub关注我们)

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
物联网
《AliOS Things集成开发环境 降低开发门槛》电子版地址
AliOS Things集成开发环境 降低开发门槛
75 0
《AliOS Things集成开发环境 降低开发门槛》电子版地址
|
开发框架 安全 AliOS-Things
AliOS-Things 构建系统的介绍|学习笔记
快速学习 AliOS-Things 构建系统的介绍。
361 0
AliOS-Things 构建系统的介绍|学习笔记
|
监控 物联网 Linux
端侧系统 AliOS Things 介绍|学习笔记
快速学习端侧系统 AliOS Things 介绍
121 0
|
安全 物联网
AliOS Things全链路优化-CoAP FOTA
FOTA(Firmware Over-The-Air)即空中固件升级功能;CoAP(Constrained Application Protocol),字面意思为受限的应用协议,基于UDP,专为资源有限的物联网设备量身定制;所以AliOS Things的纯CoAP FOTA就是专为资源有限的物联网设备(如基于NB-IoT,LoRa)提供的远程固件升级功能。
5527 0
|
物联网 API 开发工具
如何用SystemView分析AliOS Things
SystemView 是一个用于分析嵌入式系统性能的工具。SystemView可以分析系统中有哪些中断、任务执行了,以及它们的先后关系。 可以完整的深入观察一个应用程序运行时的行为,它揭示了在任务运行中发生了什么,哪个中断触发了任务切换,中断和任务调用了哪个底层系统的API函数。
如何用SystemView分析AliOS Things
|
物联网 Shell Linux
一文轻松入门HaaS100诊断调试系统_AliOS Things 3.3
AliOS Things 自带了调试诊断功能,提供了常见的CLI调试命令(可输入help查看)。
一文轻松入门HaaS100诊断调试系统_AliOS Things 3.3
|
IDE AliOS-Things 物联网
AliOS Things 3.3.0:HaaS100 快速上手
AliOS Things 3.3.0:HaaS100 快速上手
AliOS Things 3.3.0:HaaS100 快速上手
|
移动开发 运维 监控
AliOS Things3.3.0基于LinkSDK上云的示例
本用例简单介绍了如何使用AliOS Things及HaaS开发板进行端云一体开发。
AliOS Things3.3.0基于LinkSDK上云的示例
|
监控 安全 网络协议
AliOS Things 3.3新功能介绍
AliOS Things发布于2017年杭州云栖大会, 是 AliOS 家族旗下的、面向IoT领域的、高可伸缩的物联网操作系统,于2017年10月20号宣布在github上开源,当前最新的版本是 AliOS Things 3.3。
AliOS Things 3.3新功能介绍
|
传感器 存储 移动开发
使用AliOS Things快速构建温度计应用 |《AliOS Things快速开发指南》
本文是基于AliOS Things 3.1快速构建温度计的应用场景。涉及AliOS Things组件开发,构建AliOS Things用户项目,AliOS Things HAL API使用,向AliOS Things中添加并使用组件。用到的硬件设备有半导体开发板、温度传感器、数码管显示器。
使用AliOS Things快速构建温度计应用 |《AliOS Things快速开发指南》