功耗低、性能好、聯(lián)網(wǎng)快——基于移芯EC618平臺的合宙低功耗4G-Cat.1系列模組,支持標(biāo)準(zhǔn)AT/LuatOS/C-SDK多樣化開發(fā)方式,可滿足用戶不同開發(fā)需求。其中C-SDK倉庫提供給客戶自己編譯,版本自由度較高,F(xiàn)OTA遠(yuǎn)程升級應(yīng)用只需做好版本管理——不僅支持使用自己的服務(wù)器,還支持使用合宙IoT云平臺來升級模組,為不方便搭建服務(wù)器的客戶提供免費(fèi)便捷的服務(wù)。
本文分享基于合宙IoT服務(wù)器的CSDK FULL-OTA全量升級示例。
1
FULL-OTA測試準(zhǔn)備
FULL-OTA遠(yuǎn)程升級是對整包進(jìn)行升級,在下載到的CSDK倉庫內(nèi)找到 “/project/example_full_ota” ,本教程將以此example為例。
注意:CSDK的原始版本必須為V0002及以上。
GITEE倉庫鏈接:
https://gitee.com/openLuat/luatos-soc-2022
1.1 生成1.0.0版本的binpkg文件:
首先需要先將代碼中的 "PROJECT_KEY",更改成自己在合宙IoT云平臺上的PROJECT_KEY。
#define PROJECT_VERSION "1.0.1" //使用合宙iot升級的話此字段必須存在,并且強(qiáng)制固定格式為x.x.x, x可以為任意的數(shù)字
#define PROJECT_KEY"47pzTpR9bxS04TiMJQ72RVg9tbtmQ8vw"//修改為自己iot上面的PRODUCT_KEY,這里是一個錯誤的,使用合宙iot升級的話此字段必須存在
#define PROJECT_NAME "example_full_ota" //使用合宙iot升級的話此字段必須存在,可以任意修改,但和升級包的必須一致
打開用合宙IoT服務(wù)器升級的代碼部分,默認(rèn)沒版本號打印,這里在下面一行加了打印,如下所示:
#if 1
constcharremote_domain[ ]= "iot.openluat.com";
constcharota_file_name[200];
charimei[16] = {0};
luat_mobile_get_imei(0, imei, 15);
snprintf_(ota_file_name, 200, "api/site/firmware_upgrade?project_key=%s&imei=%s&device_key=&firmware_name=%s_LuatOS_CSDK_EC618&version=%s", PROJECT_KEY, imei, PROJECT_NAME, PROJECT_VERSION);
#endif
LUAT_DEBUG_PRINT("file name %s", ota_file_name);
然后保存編譯,生成1.0.0版本的binpkg文件(可以手動修改文件名作為區(qū)分)。

1.2 生成1.0.1版本的binpkg文件:
對代碼進(jìn)行修改,修改完成后build生成1.0.1 binpkg,然后保存編譯,生成1.0.1版本的binpkg文件(可以手動修改文件名作為區(qū)分)。

2
生成升級包
本節(jié)使用合宙LuaTools生成升級包,注意:LuaTools需要2.2.0及以上版本。
2.1 制作升級包:
運(yùn)行LuaTools,進(jìn)入選項及工具->SOC差分/整包升級包制作工具。

在工具窗口的新版固件欄選擇要升級的binpkg,然后設(shè)置輸出路徑并填入用戶標(biāo)識(即:固件新版本號),點擊開始執(zhí)行,即可生成對應(yīng)的升級包。

2.2 更改后綴名:
在本地對應(yīng)路徑中找到生成的.sota升級包文件,將其后綴名更為.bin備用。

3
上傳升級包
升級包生成成功后需要上傳到服務(wù)器中,打開合宙IoT云平臺iot.openluat.com并登錄:
3.1點擊我的項目-固件列表,然后創(chuàng)建固件:

3.2 創(chuàng)建固件相關(guān)設(shè)置:
在創(chuàng)建固件窗口,選擇上文中后綴改為.bin的升級包,點擊上傳;系統(tǒng)會自動生成對應(yīng)固件版本名稱和版本號。

3.3 點擊確定,固件上傳成功:

3.4 添加指定設(shè)備imei:
因為升級全部設(shè)備一欄選擇了【否】,所以接下來需要指定設(shè)備,將待升級設(shè)備的imei添加即可。

3.5 燒錄測試升級:
然后只需要使用燒錄工具燒錄基礎(chǔ)版本(1.0.0)的binpkg:

等待樣例通過URL請求升級包的方式測試FOTA升級,升級成功標(biāo)志除升級接口正確返回外,還可通過升級前后不同的打印內(nèi)容來輔助判斷是否升級成功。
如下顯示說明升級成功:

這里做測試的舊版本所打印的version=1.0.0,更新成功到新版本的打印變成了1.0.1。如在升級成功后再次請求同一升級包,由于不匹配會提示升級包校驗錯誤,不予升級。
后臺升級日志的查詢結(jié)果如下:

FULL-OTA注意事項
文件大小:
生成的ap.bin大小不能超過1984KB,生成的升級包不能超過1472KB。
設(shè)置要點:
LuaTools需要2.2.0及以上版本;進(jìn)入選項及工具—SOC差分/整包升級包制作工具,新版固件選擇要升級的binpkg,用戶標(biāo)識可以填版本號,也可以不填,看自己的代碼對升級版本是否有控制。如果用合宙IOT升級服務(wù),則必須填寫版本號!
選好輸出路徑,點生成,在輸出目錄下生成相應(yīng)的xxx.sota文件為升級包,更新后綴為.bin上傳至服務(wù)器即可升級。
流量消耗:
升級一次流量1MB~1.5MB之間,注意流量消耗。
版本要求:
CSDK的原始版本必須是V0002及以上,V0001升級到V0002也不行,因為涉及到了bootloader修改。
-
服務(wù)器
+關(guān)注
關(guān)注
13文章
10102瀏覽量
90912 -
OTA
+關(guān)注
關(guān)注
7文章
624瀏覽量
37969 -
IOT
+關(guān)注
關(guān)注
189文章
4371瀏覽量
206698
發(fā)布評論請先 登錄
使用RTT的維護(hù)云進(jìn)行遠(yuǎn)程固件升級(OTA),怎么沒有網(wǎng)絡(luò)升級的方式?
國外最便宜的云服務(wù)器一年多少錢?
怎么選擇合適的境外云服務(wù)器?
獨(dú)立服務(wù)器和云服務(wù)器哪個快一些?
云服務(wù)器防火墻關(guān)閉會怎么樣?
多大的云服務(wù)器算是高防的?
Flexus 云服務(wù)器 X 實例實踐:安裝 Ward 服務(wù)器監(jiān)控工具
基于華為云 Flexus 云服務(wù)器 X 實例快速搭建 Halo 博客平臺
華為云 Flexus 云服務(wù)器 X 實例之 openEuler 系統(tǒng)下部署 dufs 文件服務(wù)器
華為云 Flexus 云服務(wù)器 X 實例的使用教程
Flexus 云服務(wù)器 X 實例:在 Docker 環(huán)境下搭建 java 開發(fā)環(huán)境
基于華為云 Flexus 云服務(wù)器 X 實例部搭建 Halo 博客平臺

CSDK開發(fā)FOTA難?沒有自己的服務(wù)器?——合宙云平臺FULL-OTA解煩憂
評論