ChatGPT話題愈燃愈旺,新技術應用帶來的興奮,讓參與其中的人們充滿改變世界的期待,又不免生出被AI替代的焦慮,以及混雜其間的各種沖動。像極了三體科幻小說的現實版,衍生出拯救派、降臨派、幸存派……
ChatGPT那么神,可以幫我們FOTA升級模組嗎?——顯然,當下還得靠工程師自己。
話說合宙基于移芯EC618平臺的4G-Cat.1系列模組,支持標準AT/LuatOS/C-SDK多樣化開發方式,可滿足用戶不同開發需求。其中C-SDK倉庫提供給客戶自己編譯,版本自由度較高,FOTA遠程升級應用只需做好版本管理——不僅支持使用自己的服務器,還支持使用合宙IoT云平臺來升級模組,為不方便搭建服務器的客戶提供免費便捷的服務。
合宙IoT云平臺:
https://iot.openluat.com/
那么如何使用合宙IoT云平臺進行C-SDK固件升級呢?接下來將跟大家詳細分享。
1
FOTA測試準備
在下載到的CSDK倉庫內找到 “/project/example_fota_iot” ,本文將以此為例。
1.1 生成1.0.0版本的binpkg文件
首先,需要先將代碼中的 "PROJECT_KEY"更改成自己合宙IoT上的PROJECT_KEY。然后保存編譯,生成1.0.0版本的binpkg文件(可以手動修改文件名作為區分)。
相關注意事項:
-
升級時要校驗請求時的代碼是否和生成差分包所用的舊版本代碼一致。如不一致,日志會出現:image_verify error,校驗失敗而不能升級。
-
差分包地址和域名也是代碼的一部分,會參與差分包的生成,也需確保在新舊版本中保持一致。
-
一般情況下差分包也要區分不同版本,就會導致地址有可能會經常發生更改。可以把url寫成從其他地方獲取:比如kv或者從服務器獲取,就可以避免手動修改差分包地址而導致代碼不一致,影響升級失敗。
#define PROJECT_VERSION"1.0.0"
#define PROJECT_KEY “ABCDEFGHIJKLMNOPORSTUWWXYZ"//修改為自己iot上面的PRODUCT_KEY,這里是一個錯誤的
#define PROJECT_NAME "TEST_FOTA"
char g_test_server_name[200] = {0};
#define TEST_HOST "http://iot.openluat.com"
#define HTTP_RECV_BUF_SIZE (1501)
#define HTTP_HEAD_BUF_SIZE (800)
1.2 生成2.0.0版本的binpkg文件
對代碼進行修改,修改完成后build生成 2.0.0 binpkg,然后保存編譯,生成2.0.0版本的binpkg文件(可以手動修改文件名作為區分)。
#define PROJECT_VERSION"2.0.0"
#define PROJECT_KEY “ABCDEFGHIJKLMNOPORSTUWWXYZ"//修改為自己iot上面的PRODUCT_KEY,這里是一個錯誤的
#define PROJECT_NAME "TEST_FOTA"
char g_test_server_name[200] = {0};
#define TEST_HOST "http://iot.openluat.com"
#define HTTP_RECV_BUF_SIZE (1501)
#define HTTP_HEAD_BUF_SIZE (800)
2
差分包生成
手動生成差分包的過程,使用移芯芯片平臺提供的FotaToolKit差分工具。
差分工具下載鏈接:
https://cdn.openluat-luatcommunity.openluat.com/attachment/20221031103812773_FotaToolkit_V2.0.9.0.zip
打開FotaToolkit差分工具,選擇Generator標簽頁,五步即可實現差分文件制作。
差分文件制作步驟
Step1. 選擇配置文件
選擇對應產品項目的配置文件,如:config/ec618.json
Step2. 設置名稱及路徑
設置差分文件的名稱及路徑(默認路徑為 FotaToolkitGUI 所在目錄,文件名為 default_delta.par),然后選擇差分文件所需的基線鏡像文件和目標鏡像文件。
Step3. 設置文件版本號
該步驟可選(一般情況下不需要改變)。
添加基線和目標鏡像的版本號,具體格式為 Vmmm.nnn.ppp(m,n 和 p 為數字 0-9,分別表示鏡像文件的大、小和補丁版本號),需要注意的是新舊兩個版本號不能相同;此外,該版本號僅僅是為了追蹤和記錄新舊鏡像文件的信息,不會對實際鏡像文件版本號進行匹配和校驗。
Step4. 選擇FLASH配置信息
根據步驟02中的新舊鏡像文件的屬性(相關鏡像屬性已在JSON文件中配置),選擇相匹配的FLASH配置信息。
Step5. 執行制作差分文件
以上步驟完成后,直接執行“START”制作差分文件即可。顯示窗口會實時輸出制作過程的所有LOG信息,制作完成后會彈窗提示“成功”還是“失敗”,具體的制作結果以及目標文件的詳細信息也會輸出到顯示窗口中。
特別說明:
后綴名(.par)為移芯FOTA差分方案的默認文件后綴,設置文件名稱時Fota工具會自動追加。
生成.par文件后需要手動將后綴改為.bin。
3
上傳差分包
差分包生成成功后需要上傳到服務器中,打開合宙iot.openluat.com并登錄:
3.1 點擊固件升級,選擇項目,然后創建固件:
3.2 進入創建固件選項后,選擇差分工具生成的差分文件。
原始文件格式為.par,需要手動改為.bin:
3.3 填寫固件名及版本號:
固件名一欄填入PROJECT_VERSION、PROJECT_NAME和CSDK_EC618拼接后的字符串;版本號手動填入2.0.0 。
3.4 然后點擊確定,固件就上傳成功了。
因為升級全部設備一欄選擇了否,所以需要指定設備imei;將待升級設備的imei上傳即可指定。
3.5 燒錄測試FOTA升級:
然后只需要使用燒錄工具燒錄基礎版本(1.0.0)的binpkg,等待樣例通過url請求升級包的方式測試FOTA升級。升級成功標志除升級接口正確返回外,還可通過升級前后不同的打印內容來輔助判斷升級成功。
這里做測試的舊版本所打印的version=1.0.0,更新成功到新版本的打印變成了2.0.0。升級成功后再次請求同一升級包,由于不匹配會提示升級包校驗錯誤,不予升級。
本樣例由于當前尚未確定CSDK版本,以此作為輔助判斷條件,用戶也可以加上自己的打印作為輔助條件予以判斷升級成功。
查看日志可使用合宙LuaTools或EPAT工具:
LuaTools下載:
https://wiki.luatos.com/pages/tools.htmlEPAT工具下載:
https://cdn.openluat-luatcommunity.openluat.com/attachment/20221031113614462_EPAT_V1.3.207.392.zip
審核編輯 :李倩
-
服務器
+關注
關注
12文章
9206瀏覽量
85562 -
模組
+關注
關注
6文章
1496瀏覽量
30431 -
ChatGPT
+關注
關注
29文章
1563瀏覽量
7776
原文標題:ChatGPT那么神,可以幫我們遠程升級模組嗎?——合宙IoT云平臺FOTA開發應用指南
文章出處:【微信號:HelloLuatOS,微信公眾號:合宙LuatOS】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論