漫談LiteOS之OTA 方案概述

      網(wǎng)友投稿 1145 2025-03-31

      簡介

      從整個流程看,OTA主要分為如下幾個部分:

      ·???????????? 開發(fā)者使用工具制作升級包

      ·???????????? 開發(fā)者按照平臺要求上傳升級包

      ·???????????? 開發(fā)者根據(jù)平臺規(guī)則觸發(fā)升級

      ·???????????? 端側(cè)和平臺進(jìn)行數(shù)據(jù)交互,下載數(shù)據(jù)包

      ·???????????? 端側(cè)啟動升級

      整個流程如下所示

      從流程看, 升級包的制作和上傳都需要開發(fā)者在本地完成;而升級包的下載以及升級包的還原需要端側(cè)完成。需要主要的是:

      (1)升級包的制作和端側(cè)設(shè)備是需要配合的,制作相當(dāng)于編碼的過程,而升級還原相當(dāng)于解碼的過程;也就是端側(cè)需要理解開發(fā)者制作的升級包,并能夠完整的解壓出來;本OTA使用HDIFFPATCH作為差分算法以及LZMA作為壓縮算法。

      (2)固件包的管理是開發(fā)者和平臺之間的互動;在此過程中,平臺出于安全等因素會制定自己的規(guī)則,需要開發(fā)者對升級包做一定的處理之后才能上傳,通常包含簽名以及添加必要的版本等信息;

      下面的章節(jié)就上述流程展開論述。

      漫談LiteOS之OTA 方案概述

      升級包制作

      提供ota_tools作為升級包的制作小工具, 該小工具是使用HDIFFPATCH以及LZMA制作的,提供了界面方便開發(fā)者使用;開發(fā)者也完全根據(jù)自己的需要手動編譯工具或者使用第三方的差分工具來完成。

      開發(fā)者使用該工具制作全量升級包以及差分升級包,并決定是否對生成的差分升級包進(jìn)行數(shù)字簽名。對于全量升級包,會使用lzma進(jìn)行壓縮;對于差分升級包,則務(wù)必基于當(dāng)前運(yùn)行的程序制作,否則當(dāng)設(shè)備下載到差分升級包進(jìn)行還原時,還原出的程序和原始程序會不一致。

      簡單的而言,對于全量升級包(A.bin為要升級的新程序):

      對于差分升級(其中O.bin為舊程序,也是當(dāng)前設(shè)備正在運(yùn)行的程序):

      關(guān)于差分制作工具的使用,參考升級包制作工具說明文檔。

      升級包打包上傳

      當(dāng)前IoT平臺需要先將使用升級包工具制作的升級包a.bin壓縮為a.zip格式,然后使用打包工具進(jìn)行簽名為a.signed.zip,同時需要將打包工具使用的簽名公鑰上傳到IoT平臺上去,這樣才能將a.signed.zip上傳?IoT 固件管理?。

      IoT平臺升級流程

      IoT平臺的升級流程,主要包含基于LWM2M5號對象的固件升級、基于LWM2M 19號對象的PCP SOTA升級、基于HTTPS(針對MQTT)的軟固件升級。

      詳細(xì)流程可以參考IoT平臺升級流程。

      設(shè)備端程序開發(fā)說明

      針對OTA方案,端側(cè)對于OTA而言主要有幾個工作要實(shí)現(xiàn):升級包下載、升級包存儲、升級包還原。

      升級包下載

      對于IoT平臺而言,不同的升級方案,其對應(yīng)的升級包下載方式不同,參考IoT平臺升級流程。

      對應(yīng)的端側(cè)分別對應(yīng)OTA_HTTPS組件、PCP組件、LWM2M組件。因此需要配合自己的連接方案配置對應(yīng)的升級流程。

      升級包存儲

      整個升級部分的存儲區(qū)可以劃分為如下幾個部分: 如圖所示:

      loader:如果有升級需求,則執(zhí)行升級(解壓縮以及差分還原)

      Running:設(shè)備的應(yīng)用程序

      Flag:存儲OTA的一些主要FLAG(OTA狀態(tài)、下載升級包大小等,為了防止意外的掉電行為,F(xiàn)LAG需要做備份區(qū)域)

      Backup:用于備份當(dāng)前的程序,區(qū)域大小一般選擇和Running區(qū)域大小一致

      Download:根據(jù)選擇解決方案(差分還是全量)來定義其大小

      為了保持升級交互流程對存儲的調(diào)用統(tǒng)一,因此定義了一個標(biāo)準(zhǔn)的存儲接口,存儲開發(fā)者可以調(diào)用ota_img_bind將自己的存儲接口掛載到系統(tǒng)上。ota_img_init是一個弱符號函數(shù),開發(fā)者在該函數(shù)中初始化存儲資源并將其掛載到系統(tǒng)中。詳細(xì)定義參考o(jì)ta_img.h文件定義。

      當(dāng)你已經(jīng)實(shí)現(xiàn)了ota_img_init函數(shù)之后,可以打開CONFIG_OTA_IMG_CHECK來測試你的IMG適配是否OK。該配置項(xiàng)打開之后,會在調(diào)用ota_img_init之后調(diào)用img_check函數(shù),采用產(chǎn)生隨機(jī)數(shù)的形式來不定長度的讀寫IMG,整個過程會模擬FLAG讀取以及存儲、IMG的隨機(jī)長度的讀寫、IMG的backup動作、recover動作以及patch動作,來協(xié)助開發(fā)者檢查自己的IMG適配是否OK。

      升級執(zhí)行

      對于升級,提供三個api供開發(fā)者調(diào)用,分別為ota_backup(執(zhí)行備份操作,將當(dāng)前運(yùn)行的程序存儲到備份區(qū))、oat_patch(升級還原,根據(jù)下載包的內(nèi)容決定做差分升級還是全量升級)、ota_recover(升級回滾,將備份區(qū)的內(nèi)容拷貝到當(dāng)前執(zhí)行區(qū))。

      對于開發(fā)者而言,需要先備份然后執(zhí)行升級,防止意外的升級失敗。

      IoT LiteOS 物聯(lián)網(wǎng) IoT

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:快速識別Excel單元格中有公式的四種方法有圖有真像(excel顯示圖像公式)
      下一篇:word表格文字靠上是什么原因(word表格里的字體靠上)
      相關(guān)文章
      久久综合日韩亚洲精品色| 国产精品亚洲小说专区| 亚洲AⅤ视频一区二区三区| 亚洲综合偷自成人网第页色 | 中文字幕亚洲综合久久| 久久亚洲高清观看| 亚洲欧洲日产国码无码网站| 久久精品国产精品亚洲| 久久亚洲国产精品123区| 国产亚洲精品自在线观看| 4338×亚洲全国最大色成网站| 亚洲国产精品不卡毛片a在线| 亚洲精品偷拍视频免费观看| 亚洲视频在线精品| 亚洲人成伊人成综合网久久久| 中文字幕在亚洲第一在线| 亚洲精品乱码久久久久久| 亚洲高清国产拍精品26U| 亚洲AV无码一区二区三区系列 | 亚洲熟妇中文字幕五十中出| 国产成人A人亚洲精品无码| 亚洲AV午夜成人片| 亚洲神级电影国语版| 亚洲一级毛片中文字幕| 亚洲综合国产成人丁香五月激情| 亚洲男人的天堂网站| 亚洲av日韩av欧v在线天堂| 久久亚洲国产精品五月天婷| 亚洲精品无码久久千人斩| 亚洲人成网www| 亚洲午夜久久久久久久久电影网| 久久精品国产精品亚洲人人 | 国产精品亚洲午夜一区二区三区| 中日韩亚洲人成无码网站| 成人婷婷网色偷偷亚洲男人的天堂 | 亚洲国产福利精品一区二区| 2020久久精品亚洲热综合一本| 日韩欧美亚洲国产精品字幕久久久| 在线观看亚洲专区| 久久夜色精品国产亚洲av| 久久精品亚洲视频|