在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

差分升級方案(上)—全量升級vs差分升級的主要特點比較

小華半導體有限公司 ? 來源:小華半導體有限公司 ? 2024-01-18 17:06 ? 次閱讀

1、需求源起

MCU固件升級可以通過編程器、調試器或其他設備輔助進行操作,但這種升級方式主要應用于產品研發評估及量產應用階段。產品量產或設備部署后,若面對大規模設備升級,把產品返廠做升級將面臨拆機、人工燒錄等繁瑣流程,費時費力。隨著物聯網的發展,越來越多的產品具備無線遠程通信能力,產生了更多通過遠程通訊接口進行固件升級的需求。

2、升級步驟

固件升級,就是當前設備運行的舊固件有系統漏洞或者要在現有設備添加新功能時,將設備中的舊固件更新為新的固件,使設備運行的程序滿足新的功能需求,從MCU內部層面來看就是新固件覆蓋舊固件,如圖1所示。

89249be2-b5d8-11ee-8b88-92fbcf53809c.png

圖1固件升級示意圖

獲取新固件:通過NBIoT、WIFI、Bluetooth、LoRa、ZigBee等通信協議定期查詢新版本或者接收升級請求。

覆蓋舊固件:將新固件數據分塊寫入舊固件所在Flash覆蓋舊固件。

3、全量升級

通常情況下,在MCU中運行的具有升級功能的程序需要具備兩個可獨立運行的程序,分別為BootLoader引導程序和實現產品功能的App應用程序。一般情況下BootLoader程序燒錄后不會再更新,修復漏洞或者添加功能時升級的均為App應用程序。Flash全量升級分區示意圖如圖2所示。固件可以通過App或者BootLoader進行接收,如圖3所示。

8936d4ec-b5d8-11ee-8b88-92fbcf53809c.png

圖2Flash分區示意圖

894460a8-b5d8-11ee-8b88-92fbcf53809c.png

圖3 固件接收方式分類

3.1 App接收固件

設備在運行時App查詢到有新版本固件或者收到升級請求時,先通過無線通信接口下載新的固件。一般有兩種方式更新固件:一種運行App1時,將新的固件分包接收并下載存至App2 Flash分區,下載完成后跳轉至App2 分區運行新的固件(MCU需要支持雙BANK運行),升級示意圖如圖4所示;第二種跳轉Bootloader程序執行固件遷移,將App2固件按塊寫入App1 Flash分區,待固件遷移無誤后再跳轉至App1 Flash分區運行。

89574c5e-b5d8-11ee-8b88-92fbcf53809c.png

圖4 具有備份區的固件升級示意圖

3.2BootLoader接收固件

設備在運行App時查詢到有新版本固件或者收到升級請求時,跳轉Bootloader程序將新的固件分包接收并下載至App Flash分區。下載完成時,舊固件被新固件覆蓋,然后再跳轉App Flash分區運行,示意圖如圖5所示。

89658eea-b5d8-11ee-8b88-92fbcf53809c.png

圖5 單區固件升級示意圖

App與BootLoader接收固件都需要完整的下載新的固件包,即便新的固件相較于舊固件改動量很小,往往MCU RAM資源有限,需要分包下載,每包數據必須正確無誤,如果有錯誤或者遺漏則需要重新下載。升級過程中如果斷電,需要再次請求網絡重新下載新的固件包,所以整包升級下載時間較長,升級失敗風險較高。對一些電池供電的設備,下載時間越長系統功耗越高。

4、差分升級

在服務器端基于差分算法將舊固件V1和新固件V2的差異進行提取并應用壓縮算法計算出差分包,將差分包由服務器端傳輸給MCU客戶端,再由差分解壓縮算法還原出新的固件V2,這樣的升級方式稱為差分升級,差分升級的示意圖如圖6所示。

8978e878-b5d8-11ee-8b88-92fbcf53809c.png

圖6 差分升級示意圖

一般差分算法核心思想為:對舊固件新固件文件做子字符串匹配或使用Hash技術, 提取公共部分, 再將新固件文件中剩余的部分打包成差分包;在差分還原時, 用復制和插入兩個基本操作將舊固件和差分包合成新固件。對于固件代碼較大而修改量較小的新固件,使用差分升級算法,差分包大小相較于新固件會明顯變小,無線升級時下載流量也會相應大幅度降低。

6、差分升級vs全量升級

差分升級和全量升級各有各的優點和適合應用的領域,設計者在實際產品開發中可根據不同應用選擇不同的升級方式。例如,產品是電池供電,并且數據傳輸速率比較低,則要求產品升級時能夠盡可能減少數據量的傳輸,節約功耗,此時可優先采用差分升級的方式。差分升級與全量升級的主要特點比較如圖7所示。

8996e0d0-b5d8-11ee-8b88-92fbcf53809c.png

圖7差分升級與全量升級的主要特點比較







審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • ZigBee技術
    +關注

    關注

    3

    文章

    115

    瀏覽量

    42392
  • FlaSh
    +關注

    關注

    10

    文章

    1635

    瀏覽量

    148025
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1368

    瀏覽量

    114697
  • 電池供電
    +關注

    關注

    0

    文章

    255

    瀏覽量

    22158

原文標題:差分升級方案(上)——全量升級vs差分升級

文章出處:【微信號:小華半導體有限公司,微信公眾號:小華半導體有限公司】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于MCU的分升級實現方案解析

    分升級又叫增量升級,顧名思義就是通過分算法將源版本與目標版本之間差異的部分提取出來制作成分包,然后在設備通過還原算法將差異部分在源版本
    的頭像 發表于 10-13 11:59 ?1.4w次閱讀
    基于MCU的<b class='flag-5'>差</b><b class='flag-5'>分升級</b>實現<b class='flag-5'>方案</b>解析

    請問esp32是否支持分升級?

    我現在工程需要適配ota功能,但是鑒于固件體積較大,想請教下是否支持分升級?
    發表于 06-21 08:14

    如何構建STM32L452RE的分升級能力?

    在STM32L452RE這顆MCU如何將艾拉比的分升級功能,移植入STM32L452RE的bootloader中,從而使STM32L452RE能夠擁有
    發表于 09-11 11:51

    AliOS Things 3.0 開發:OTA之差分升級快速上手

    升級快速上手查看詳情概要前面已經介紹了AliOS Things 3.0 OTA的整包升級和壓縮升級,本文將介紹AliOS Things 3.0版本的OTA
    發表于 10-18 09:57

    如何去實現基于單片機的分升級

    分算法有開源的bsdiff,壓縮算法也有開源的單片機就能用的,把這兩個結合起來放單片機里就可以實現分升級。由于上位機負責進行分和壓縮的操作,而上位機沒有ram的限制,可以隨意。因
    發表于 11-19 06:14

    在單片機上實現分升級

    最近咨詢如果在單片機上實現分升級的同學很多,因為源碼目前不方便公開,所以有個想法是,向對這塊比較感興趣的朋友提供基于各位所用編譯器的分算法庫,方便各位做學習交流使用。有需要的歡迎提
    發表于 01-20 08:16

    探討一下基于STM32單片機的分升級算法

    DiffIAP應用背景隨著目前物聯網,車聯網,智能設備的增多,需要遠程升級設備程序的場景增多,以往的IAP升級和OTA升級都是整包升級,bin文件過大導致
    發表于 02-14 06:02

    ESP32C3固件太大,OTA時有沒有方法做分升級

    如題,esp32c3同時打開BLE和WIFI的功能,固件都1MByte了,OTA時可以用分升級嗎。還有就是怎么優化下固件大???
    發表于 02-15 08:02

    esp32是否支持分升級?

    我現在工程需要適配ota功能,但是鑒于固件體積較大,想請教下是否支持分升級?
    發表于 02-20 07:36

    基于MCU,如何零代碼無開發實現OTA分升級

    、工業等各個領域。在 MCU 的 OTA 升級方式,部分客戶實現方式為整包升級,甚至很多 MCU 產品是裸跑,并且是不升級的,當然這也和產品形態、功能特性、行業等
    的頭像 發表于 10-14 17:23 ?4855次閱讀
    基于MCU,如何零代碼無開發實現OTA<b class='flag-5'>差</b><b class='flag-5'>分升級</b>?

    基于單片機的分升級

    分算法有開源的bsdiff,壓縮算法也有開源的單片機就能用的,把這兩個結合起來放單片機里就可以實現分升級。由于上位機負責進行分和壓縮的操作,而上位機沒有ram的限制,可以隨意。因
    發表于 11-12 21:06 ?11次下載
    基于單片機的<b class='flag-5'>差</b><b class='flag-5'>分升級</b>

    基于STM32單片機的分升級(增量升級)算法

    DiffIAP應用背景隨著目前物聯網,車聯網,智能設備的增多,需要遠程升級設備程序的場景增多,以往的IAP升級和OTA升級都是整包升級,bin文件過大導致
    發表于 12-09 15:51 ?19次下載
    基于STM32單片機的<b class='flag-5'>差</b><b class='flag-5'>分升級</b>(增量<b class='flag-5'>升級</b>)算法

    啟明FOTA分升級 系統級解決方案

    “你的設備遠程升級可以不再是升級整個固件。啟明提供了一套完整的分升級算法,升級固件更小、下載速度更快、大大降低網絡不穩定造成傳輸失敗概率,
    的頭像 發表于 06-05 09:40 ?1517次閱讀
    啟明FOTA<b class='flag-5'>差</b><b class='flag-5'>分升級</b> 系統級解決<b class='flag-5'>方案</b>

    啟明FOTA分升級 系統級解決方案

    “你的設備遠程升級可以不再是升級整個固件。啟明提供了一套完整的分升級算法,升級固件更小、下載速度更快、大大降低網絡不穩定造成傳輸失敗概率,
    的頭像 發表于 06-09 09:46 ?1457次閱讀
    啟明FOTA<b class='flag-5'>差</b><b class='flag-5'>分升級</b> 系統級解決<b class='flag-5'>方案</b>

    ZDP1440系列小技巧—如何OTA分升級顯示素材?

    ZDP1440是一款基于開源GUI引擎的圖像顯示專用驅動芯片,支持U盤、SD卡本地升級UI固件,同時也支持通過UART/SPI方式進行OTA升級,本文將介紹如何OTA分升級顯示素材。
    的頭像 發表于 05-06 14:01 ?892次閱讀
    ZDP1440系列小技巧—如何OTA<b class='flag-5'>差</b><b class='flag-5'>分升級</b>顯示素材?
    主站蜘蛛池模板: 色综合天天网| 午夜爱爱免费视频| 桃花岛亚洲精品tv自拍网站| 看免费一级片| 午夜精品视频在线观看美女| 欧美成人区| 天天综合网久久| 免费一级毛片在级播放| 亚洲日本在线观看| 朱元璋传奇1998王耿豪版| 女人张开腿双腿让男人桶| 五月天婷婷网站| 亚洲一区二区三区首页| 亚洲人成在线精品| 狠狠色依依成人婷婷九月| 精品免费福利视频| 亚洲伊人久久在| 国产三级精品在线观看| 5566精品资源在线播放| 香港三级理论在线影院| 超级狂色而且免费又超好看| 人人人人草| 18男女很黄的视频| 国模沟沟一区二区三区| 五月深爱婷婷| 亚洲免费国产| 可以免费观看的一级毛片| 激情综合网站| 性欧美护士18xxxxhd视频| wwwwww色| 亚洲国产精品国产自在在线| 老色皮| 2018天天干夜夜操| 日本三级人妇| 欧美又粗又硬又大久久久| 亚洲欧美在线视频免费| 4hu影院最新地址www| 爽a中文字幕一区| 精品一区二区三区免费爱| 在线观看黄色网| 日韩亚洲人成网站在线播放|