功耗低、性能好、聯(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ù)器的客戶提供免費便捷的服務(wù)。
本文分享基于合宙IoT服務(wù)器的CSDK FULL-OTA全量升級示例。
1
FULL-OTA測試準(zhǔn)備
FULL-OTA遠(yuǎ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升級的話此字段必須存在,并且強制固定格式為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文件:
對代碼進行修改,修改完成后build生成1.0.1 binpkg,然后保存編譯,生成1.0.1版本的binpkg文件(可以手動修改文件名作為區(qū)分)。
2
生成升級包
本節(jié)使用合宙LuaTools生成升級包,注意:LuaTools需要2.2.0及以上版本。
2.1 制作升級包:
運行LuaTools,進入選項及工具->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注意事項
文件大?。?/strong>
生成的ap.bin大小不能超過1984KB,生成的升級包不能超過1472KB。
設(shè)置要點:
LuaTools需要2.2.0及以上版本;進入選項及工具—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)注
12文章
9160瀏覽量
85426 -
OTA
+關(guān)注
關(guān)注
7文章
580瀏覽量
35230 -
IOT
+關(guān)注
關(guān)注
187文章
4210瀏覽量
196807
發(fā)布評論請先 登錄
相關(guān)推薦
評論