功耗低、性能好、聯(lián)網(wǎng)快——基于移芯EC618平臺(tái)的合宙低功耗4G-Cat.1系列模組,支持標(biāo)準(zhǔn)AT/LuatOS/C-SDK多樣化開(kāi)發(fā)方式,可滿足用戶不同開(kāi)發(fā)需求。其中C-SDK倉(cāng)庫(kù)提供給客戶自己編譯,版本自由度較高,F(xiàn)OTA遠(yuǎn)程升級(jí)應(yīng)用只需做好版本管理——不僅支持使用自己的服務(wù)器,還支持使用合宙IoT云平臺(tái)來(lái)升級(jí)模組,為不方便搭建服務(wù)器的客戶提供免費(fèi)便捷的服務(wù)。
本文分享基于合宙IoT服務(wù)器的CSDK FULL-OTA全量升級(jí)示例。
1
FULL-OTA測(cè)試準(zhǔn)備
FULL-OTA遠(yuǎn)程升級(jí)是對(duì)整包進(jìn)行升級(jí),在下載到的CSDK倉(cāng)庫(kù)內(nèi)找到 “/project/example_full_ota” ,本教程將以此example為例。
注意:CSDK的原始版本必須為V0002及以上。
GITEE倉(cāng)庫(kù)鏈接:
https://gitee.com/openLuat/luatos-soc-2022
1.1 生成1.0.0版本的binpkg文件:
首先需要先將代碼中的 "PROJECT_KEY",更改成自己在合宙IoT云平臺(tái)上的PROJECT_KEY。
#define PROJECT_VERSION "1.0.1" //使用合宙iot升級(jí)的話此字段必須存在,并且強(qiáng)制固定格式為x.x.x, x可以為任意的數(shù)字
#define PROJECT_KEY"47pzTpR9bxS04TiMJQ72RVg9tbtmQ8vw"//修改為自己iot上面的PRODUCT_KEY,這里是一個(gè)錯(cuò)誤的,使用合宙iot升級(jí)的話此字段必須存在
#define PROJECT_NAME "example_full_ota" //使用合宙iot升級(jí)的話此字段必須存在,可以任意修改,但和升級(jí)包的必須一致
打開(kāi)用合宙IoT服務(wù)器升級(jí)的代碼部分,默認(rèn)沒(méi)版本號(hào)打印,這里在下面一行加了打印,如下所示:
#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文件(可以手動(dòng)修改文件名作為區(qū)分)。
1.2 生成1.0.1版本的binpkg文件:
對(duì)代碼進(jìn)行修改,修改完成后build生成1.0.1 binpkg,然后保存編譯,生成1.0.1版本的binpkg文件(可以手動(dòng)修改文件名作為區(qū)分)。
2
生成升級(jí)包
本節(jié)使用合宙LuaTools生成升級(jí)包,注意:LuaTools需要2.2.0及以上版本。
2.1 制作升級(jí)包:
運(yùn)行LuaTools,進(jìn)入選項(xiàng)及工具->SOC差分/整包升級(jí)包制作工具。
在工具窗口的新版固件欄選擇要升級(jí)的binpkg,然后設(shè)置輸出路徑并填入用戶標(biāo)識(shí)(即:固件新版本號(hào)),點(diǎn)擊開(kāi)始執(zhí)行,即可生成對(duì)應(yīng)的升級(jí)包。
2.2 更改后綴名:
在本地對(duì)應(yīng)路徑中找到生成的.sota升級(jí)包文件,將其后綴名更為.bin備用。
3
上傳升級(jí)包
升級(jí)包生成成功后需要上傳到服務(wù)器中,打開(kāi)合宙IoT云平臺(tái)iot.openluat.com并登錄:
3.1點(diǎn)擊我的項(xiàng)目-固件列表,然后創(chuàng)建固件:
3.2 創(chuàng)建固件相關(guān)設(shè)置:
在創(chuàng)建固件窗口,選擇上文中后綴改為.bin的升級(jí)包,點(diǎn)擊上傳;系統(tǒng)會(huì)自動(dòng)生成對(duì)應(yīng)固件版本名稱和版本號(hào)。
3.3 點(diǎn)擊確定,固件上傳成功:
3.4 添加指定設(shè)備imei:
因?yàn)樯?jí)全部設(shè)備一欄選擇了【否】,所以接下來(lái)需要指定設(shè)備,將待升級(jí)設(shè)備的imei添加即可。
3.5 燒錄測(cè)試升級(jí):
然后只需要使用燒錄工具燒錄基礎(chǔ)版本(1.0.0)的binpkg:
等待樣例通過(guò)URL請(qǐng)求升級(jí)包的方式測(cè)試FOTA升級(jí),升級(jí)成功標(biāo)志除升級(jí)接口正確返回外,還可通過(guò)升級(jí)前后不同的打印內(nèi)容來(lái)輔助判斷是否升級(jí)成功。
如下顯示說(shuō)明升級(jí)成功:
這里做測(cè)試的舊版本所打印的version=1.0.0,更新成功到新版本的打印變成了1.0.1。如在升級(jí)成功后再次請(qǐng)求同一升級(jí)包,由于不匹配會(huì)提示升級(jí)包校驗(yàn)錯(cuò)誤,不予升級(jí)。
后臺(tái)升級(jí)日志的查詢結(jié)果如下:
FULL-OTA注意事項(xiàng)
文件大?。?/strong>
生成的ap.bin大小不能超過(guò)1984KB,生成的升級(jí)包不能超過(guò)1472KB。
設(shè)置要點(diǎn):
LuaTools需要2.2.0及以上版本;進(jìn)入選項(xiàng)及工具—SOC差分/整包升級(jí)包制作工具,新版固件選擇要升級(jí)的binpkg,用戶標(biāo)識(shí)可以填版本號(hào),也可以不填,看自己的代碼對(duì)升級(jí)版本是否有控制。如果用合宙IOT升級(jí)服務(wù),則必須填寫(xiě)版本號(hào)!
選好輸出路徑,點(diǎn)生成,在輸出目錄下生成相應(yīng)的xxx.sota文件為升級(jí)包,更新后綴為.bin上傳至服務(wù)器即可升級(jí)。
流量消耗:
升級(jí)一次流量1MB~1.5MB之間,注意流量消耗。
版本要求:
CSDK的原始版本必須是V0002及以上,V0001升級(jí)到V0002也不行,因?yàn)樯婕暗搅薭ootloader修改。
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
8965瀏覽量
85087 -
OTA
+關(guān)注
關(guān)注
7文章
566瀏覽量
35106 -
IOT
+關(guān)注
關(guān)注
186文章
4162瀏覽量
195994
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論