功耗低、性能好、聯網快——基于移芯EC618平臺的合宙低功耗4G-Cat.1系列模組,支持標準AT/LuatOS/C-SDK多樣化開發方式,可滿足用戶不同開發需求。其中C-SDK倉庫提供給客戶自己編譯,版本自由度較高,FOTA遠程升級應用只需做好版本管理——不僅支持使用自己的服務器,還支持使用合宙IoT云平臺來升級模組,為不方便搭建服務器的客戶提供免費便捷的服務。
合宙IoT云平臺:https://iot.openluat.com/本文分享基于合宙IoT服務器的CSDK FULL-OTA全量升級示例,文末【閱讀原文】可獲取差分升級、模組文檔等最新開發資料。
1
FULL-OTA測試準備
FULL-OTA遠程升級是對整包進行升級,在下載到的CSDK倉庫內找到 “/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可以為任意的數字
#define PROJECT_KEY"47pzTpR9bxS04TiMJQ72RVg9tbtmQ8vw"//修改為自己iot上面的PRODUCT_KEY,這里是一個錯誤的,使用合宙iot升級的話此字段必須存在
#define PROJECT_NAME "example_full_ota" //使用合宙iot升級的話此字段必須存在,可以任意修改,但和升級包的必須一致
打開用合宙IoT服務器升級的代碼部分,默認沒版本號打印,這里在下面一行加了打印,如下所示:
#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文件(可以手動修改文件名作為區分)。
1.2 生成1.0.1版本的binpkg文件:
對代碼進行修改,修改完成后build生成1.0.1 binpkg,然后保存編譯,生成1.0.1版本的binpkg文件(可以手動修改文件名作為區分)。
2
生成升級包
本節使用合宙LuaTools生成升級包,注意:LuaTools需要2.2.0及以上版本。
2.1 制作升級包:合宙LuaTools下載:
https://wiki.luatos.com/pages/tools.html
運行LuaTools,進入選項及工具->SOC差分/整包升級包制作工具。
在工具窗口的新版固件欄選擇要升級的binpkg,然后設置輸出路徑并填入用戶標識(即:固件新版本號),點擊開始執行,即可生成對應的升級包。
2.2 更改后綴名:
在本地對應路徑中找到生成的.sota升級包文件,將其后綴名更為.bin備用。
3
上傳升級包
升級包生成成功后需要上傳到服務器中,打開合宙IoT云平臺iot.openluat.com并登錄:
3.1點擊我的項目-固件列表,然后創建固件:
3.2 創建固件相關設置:
在創建固件窗口,選擇上文中后綴改為.bin的升級包,點擊上傳;系統會自動生成對應固件版本名稱和版本號。
3.3 點擊確定,固件上傳成功:
3.4 添加指定設備imei:
因為升級全部設備一欄選擇了【否】,所以接下來需要指定設備,將待升級設備的imei添加即可。
3.5 燒錄測試升級:
然后只需要使用燒錄工具燒錄基礎版本(1.0.0)的binpkg:
等待樣例通過URL請求升級包的方式測試FOTA升級,升級成功標志除升級接口正確返回外,還可通過升級前后不同的打印內容來輔助判斷是否升級成功。
如下顯示說明升級成功:
這里做測試的舊版本所打印的version=1.0.0,更新成功到新版本的打印變成了1.0.1。如在升級成功后再次請求同一升級包,由于不匹配會提示升級包校驗錯誤,不予升級。
后臺升級日志的查詢結果如下:
4
注意事項及技術支持
全量升級操作相對簡單,但對文件大小及版本等有一定要求。使用過程中如有疑問,可通過合宙技術服務論壇獲得專業解答:
合宙技術服務論壇
chat.openluat.com
FULL-OTA注意事項
文件大小:
生成的ap.bin大小不能超過1984KB,生成的升級包不能超過1472KB。
設置要點:
LuaTools需要2.2.0及以上版本;進入選項及工具—SOC差分/整包升級包制作工具,新版固件選擇要升級的binpkg,用戶標識可以填版本號,也可以不填,看自己的代碼對升級版本是否有控制。如果用合宙IOT升級服務,則必須填寫版本號!
選好輸出路徑,點生成,在輸出目錄下生成相應的xxx.sota文件為升級包,更新后綴為.bin上傳至服務器即可升級。
流量消耗:
升級一次流量1MB~1.5MB之間,注意流量消耗。
版本要求:
CSDK的原始版本必須是V0002及以上,V0001升級到V0002也不行,因為涉及到了bootloader修改。
最新資料:
通過air780e.cn或文末【閱讀原文】鏈接,獲取模組最新開發資料。
感謝新老朋友們的關注與支持
合宙與你共同成長
更多超值新品籌備中
敬請期待
?
-合宙技術交流QQ群-QQ掃碼入群:645170956
- 合宙技術交流微信群-
加合宙客服報企業名稱入群
-
合宙通信
+關注
關注
0文章
147瀏覽量
1726
原文標題:CSDK開發FOTA難?沒有自己的服務器?——合宙云平臺FULL-OTA解煩憂
文章出處:【微信號:HelloLuatOS,微信公眾號:合宙LuatOS】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論