關聯文章: 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檔案自動壓縮的功能,具體細節後面會介紹;

圖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
目錄下,如下圖:
圖2 編譯生成固件圖
[email protected]燒錄到闆子上,linkkitapp@developerkit_ota.bin.xz是壓縮過的ota固件,用于上傳雲端,但上傳雲端固件的版本号要求高于燒錄在闆子上的固件版本号,是以需要生成一個高版本的固件;
- 固件版本号更改及雲端操作
更改
build/build_rules/aos_target_config.mk
檔案中的app-1.0.0-為app-2.0.0-編譯,如下圖:
圖3 固件版本号擷取圖
複制如上圖示記的版本号,登入
平台,按如下圖順序操作
圖4 添加強件操作步驟圖
點選新增固件後,如下圖:
圖5 固件添加圖
點選“确定”後,選擇“驗證固件”即可開始固件更新;更新結果可以點選“檢視”擷取詳細結果;
- 裝置端資訊
裝置端更新過程中部分log如下圖:
圖6 裝置端壓縮更新資訊
- 更新結果雲端檢視
通過點選“驗證固件”下的“檢視”可以檢視OTA的更新結果,如下圖
圖7 雲端更新結果圖
以上就是AliOS Things 3.0版本的OTA壓縮更新整個流程。
注:在做OTA之前確定裝置端已連接配接雲端
給AliOS Things一顆STAR (前往GitHub關注我們)