chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內不再提示

簡述物聯(lián)網設備OTA軟件升級之:完全升級和增量升級

安芯教育科技 ? 來源:IOT物聯(lián)網小鎮(zhèn) ? 作者:道哥 ? 2021-09-24 15:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

各位看官好,上一篇文章我們聊了一下關于 OTA 升級過程中,新的軟件包是如何從開發(fā)者電腦上,安全的下載到嵌入式設備中的。

這個流程似乎很簡單,不就是下載一個文件而已嘛,怎么還值得寫成一篇文章呢?

其實這不僅僅是下載文件這么簡單,這其中涉及到如何對眾多的終端設備進行批量升級的策略問題。

如果你親自在 AWS 的平臺上操刀一次,就知道這其中有很多細節(jié)問題是需要考慮的。

一失足成千古恨哪!一旦設備升級策略忽略了一個小細節(jié),也許某一天就是我們的深淵!

包括產品的生產過程也是如此,那些踩過的坑,真是一把鼻涕一把淚,這個問題后面有時間專門寫一篇。

今天,我們繼續(xù) OTA 升級過程中后續(xù)的階段。

還記得我們之前的假設嗎?

設備中正在執(zhí)行的 V1 版本的程序,包括這 3 個文件,它們位于文件系統(tǒng)中的 /root/app 目錄下:

main: 主程序;

config.ini: 配置文件(包括一個配置項:version=V1_0);

mylib.so: 實現(xiàn)了某個算法的動態(tài)庫,被 main 程序調用;

現(xiàn)在,新的版本 V2 優(yōu)化了算法,壓縮包名稱是 app_V2.0.tgz,其中包括文件:

main: 沒有變化;

config.ini: 配置項修改了:version=V2_0;

mylib.so: 優(yōu)化了算法,主要就是想升級這個動態(tài)庫;

upgrade.sh: 一個腳本程序,新增的文件;

升級包 app_V2.0.tgz 已經被下載到設備本地的文件系統(tǒng)中了,假設解壓到目錄 /root/upgrade 中。

現(xiàn)在需要做的事情就是:新版本程序,去替代 /root/app 目錄中的舊版本程序。

upgrade.sh 升級腳本

我們首先要明白一個問題:執(zhí)行升級指令、下載壓縮包,都是此刻正在執(zhí)行的 main 程序來執(zhí)行的。

如果把復制替換的操作也讓 main 程序來執(zhí)行的話,肯定是會出問題的:它不可能去復制一個新的 main 文件,來把自己替換掉!

寫過單片機程序的小伙伴肯定都知道:當新的固件下載到 flash 之后,一般都是重新啟動設備,然后由 bootloader 來執(zhí)行具體的文件復制操作。

那么對于帶有文件系統(tǒng)的設備來說,也可以模仿類似的操作方式。

比如:當設備重新啟動后,當執(zhí)行 /etc/rc.local 時,此時 main 應用程序還沒有啟動。

此時就可以在 rc.local 這個文件中去做升級操作。

但是這樣的方式,相當于是輕微的侵入了操作系統(tǒng),總感覺這樣做不太好。

此刻, upgrade.sh 升級腳本開始登場了!

這個腳本文件的主要作用就是用來控制升級過程。

這里隱藏這一個很重要的思想:upgrade.sh 是放在升級包中的,它并沒有固化在終端設備中。

這樣的話,每次執(zhí)行升級任務時,都可以根據本次的升級需要,來靈活的編寫升級腳本。

換句話說:只要能保證升級的通道沒有問題,那么升級的過程就完全由這個腳本文件來控制,你想怎么搞,就怎么搞!

完全升級

所謂的完全升級,就是把舊版本的程序全部丟棄,把升級包中的新程序全部復制過去。

此時,升級腳本文件 upgrade.sh 就完成下面這幾個主要工作:

停止(kill)當前正在執(zhí)行的 V1.0 版本的程序;

刪除 /root/app 目錄下的所有舊文件;

把升級包中所有的新版本文件 /root/upgrade/* 復制到 /root/app 目錄下;

這樣的完全升級方式是最無腦、最粗魯?shù)摹?/p>

當然,還有一些細節(jié)問題是需要考慮的。比如:如果復制文件過程中出現(xiàn)錯誤怎么辦?

還有一點,既然剛才提到了配置文件 config.ini,不知您是否會有這樣一個疑問:

如果配置信息被用戶修改了,那么升級之后,所有的配置信息又被恢復為默認值了,用戶的私人配置信息全丟了怎么辦?

關于這個問題,我們就繼續(xù)來聊一下增量升級!

增量升級

所謂的增量升級:就是升級時并不會把所有的文件全部進行替換,而只是替換那些需要更新的文件。

對于我們假設的升級場景,只需要做 2 件事情:

替換 mylib.so 庫文件;

把配置文件 config.ini 中的版本字段修改為:version=V2_0;

同樣的,所有的升級過程仍然是寫在 upgrade.sh 這個升級腳本中:

停止(kill)當前正在執(zhí)行的 V1.0 版本的程序;

把 /root/upgrade/mylib.so 文件復制到 /root/app 目錄下;

使用 sed 命令來修改 config.ini 文件中的 version 字段;

PS:此時升級包中,只需要包含必要的文件就可以了,不需要把其他用不到的文件也放進去了。

從我描述的文字來看,似乎完全升級和增量升級差別不大。

這是因為這里的示例太簡單,如果是一個比較復雜的、有多個模塊相互配合的應用程序,增量升級的優(yōu)勢就明顯了。

關于 OTA 升級過程,就先說這么多了,主要是以思想為主,畢竟每一個項目的需求場景是不一樣的,從大方向上明白 OTA 的升級過程就可以了。

One more thing

后臺提供一個很多年前項目中的升級腳本文件模板。

作者|道哥

轉自|IOT物聯(lián)網小鎮(zhèn)

編輯:jq

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

    關注

    7

    文章

    630

    瀏覽量

    38450
  • 腳本
    +關注

    關注

    1

    文章

    412

    瀏覽量

    29279
  • AWS
    AWS
    +關注

    關注

    0

    文章

    444

    瀏覽量

    26637

原文標題:技術分享 | 物聯(lián)網設備OTA軟件升級之:完全升級和增量升級

文章出處:【微信號:Ithingedu,微信公眾號:安芯教育科技】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    一文吃透RK平臺OTA升級開發(fā):從邏輯到調試的完整指南

    在 Rockchip(簡稱 RK)Android 平臺開發(fā)中,OTA(Over The Air)升級是實現(xiàn)設備軟件迭代的核心方式。無論是本地卡刷升級
    的頭像 發(fā)表于 02-09 16:26 ?756次閱讀
    一文吃透RK平臺<b class='flag-5'>OTA</b><b class='flag-5'>升級</b>開發(fā):從邏輯到調試的完整指南

    RK平臺Android設備OTA升級教程:從原理到U盤實操

    OTA(Over-The-Air)升級是 Android 系統(tǒng)標準的軟件更新方式,在 RK(瑞芯微)平臺上,OTA 升級不僅支持本地
    的頭像 發(fā)表于 02-09 16:23 ?2360次閱讀
    RK平臺Android<b class='flag-5'>設備</b><b class='flag-5'>OTA</b><b class='flag-5'>升級</b>教程:從原理到U盤實操

    RK3588平臺雙存儲(SPI+PCIE)OTA升級方案教學文檔

    在嵌入式設備中,單一存儲介質可能存在容量限制或可靠性風險。RK3588 平臺的雙存儲 OTA 升級方案支持SPI(如 SPI NAND/NOR)與 PCIE 存儲(如 PCIE SSD) 混合部署
    的頭像 發(fā)表于 02-01 16:46 ?1792次閱讀
    RK3588平臺雙存儲(SPI+PCIE)<b class='flag-5'>OTA</b><b class='flag-5'>升級</b>方案教學文檔

    一般想要實現(xiàn)OTA的話使用藍牙升級好還是4G這種方式實現(xiàn)升級?

    一般想要實現(xiàn)OTA的話,使用藍牙升級好還是4G這種方式實現(xiàn)升級?
    發(fā)表于 12-09 06:01

    碩博電子OTA遠程升級平臺#OTA#碩博電子#OTA升級

    OTA
    長沙碩博電子科技股份有限公司
    發(fā)布于 :2025年10月29日 11:19:46

    使用RTT的維護云進行遠程固件升級OTA),怎么沒有網絡升級的方式?

    使用RTT的維護云進行遠程固件升級OTA),怎么沒有網絡升級的方式的?只有藍牙,近距離的固件升級。詳細如圖所示,只有藍牙,沒有連接互聯(lián)網
    發(fā)表于 10-13 06:36

    OTA采用ymodem_ota升級app分區(qū)出現(xiàn)CRC校驗錯誤是怎么回事?

    芯片:STM32F103VET6 環(huán)境:MDK5 使用的相關軟件包:ota_downloader; 如上圖,使用官方例程,BOOT運行起來之后,發(fā)現(xiàn)APP區(qū)CRC校驗不對,但是會強制升級,并且
    發(fā)表于 09-10 06:57

    技術筆記 | Ubuntu 系統(tǒng) OTA 升級全流程詳解

    前言:在嵌入式系統(tǒng)設備管理中,OTA(Over-The-Air)升級是實現(xiàn)設備遠程維護、功能迭代的核心能力。本文基于Ubuntu系統(tǒng)環(huán)境,詳細拆解updateEngine工具的
    的頭像 發(fā)表于 07-31 08:32 ?1490次閱讀
    技術筆記 | Ubuntu 系統(tǒng) <b class='flag-5'>OTA</b> <b class='flag-5'>升級</b>全流程詳解

    ESP32通過OTA無線局域網遠程升級下載程序

    本文介紹了ESP32通過OTA無線局域網遠程升級固件的基本方法
    的頭像 發(fā)表于 07-22 13:21 ?2368次閱讀
    ESP32通過<b class='flag-5'>OTA</b>無線局域網遠程<b class='flag-5'>升級</b>下載程序

    藍牙空中升級(OTA)原理

    1. 概述 所謂DFU(Device Firmware Update),就是設備固件升級的意思,而OTA(Over The Air)是實現(xiàn)DFU的一種方式而已,準確說,OTA的全稱應該
    發(fā)表于 07-21 14:50

    啟明智顯5G CPE 重磅升級:云端設備管理與遠程OTA全面上線!

    啟明智顯旗下5GCPE產品迎來重要升級,核心聚焦于云端設備管理與高效OTA升級功能。此次升級打破了傳統(tǒng)
    的頭像 發(fā)表于 07-15 18:07 ?1405次閱讀
    啟明智顯5G CPE 重磅<b class='flag-5'>升級</b>:云端<b class='flag-5'>設備</b>管理與遠程<b class='flag-5'>OTA</b>全面上線!

    東風日產N7開啟首次OTA升級

    近日,東風日產舉辦“NI好 N7首次OTA升級發(fā)布會”,并宣布OTA升級即日開啟推送。
    的頭像 發(fā)表于 07-05 13:57 ?1359次閱讀

    詳解藍牙空中升級(OTA)原理與步驟

    如何實現(xiàn)Bluetooth LE OTA?什么叫DFU?如何通過UART實現(xiàn)固件升級?又如何通過USB實現(xiàn)固件升級?怎么保證升級的安全性?什么叫雙區(qū)(dual bank)DFU?什么叫
    的頭像 發(fā)表于 07-04 09:56 ?4887次閱讀
    詳解藍牙空中<b class='flag-5'>升級</b>(<b class='flag-5'>OTA</b>)原理與步驟

    長安汽車構建全流程智能網聯(lián)汽車OTA升級能力體系

    2025年2月,工業(yè)和信息化部、市場監(jiān)管總局聯(lián)合發(fā)布了《關于進一步加強智能網聯(lián)汽車產品準入、召回及軟件在線升級管理的通知》(以下簡稱《通知》),將汽車軟件在線升級
    的頭像 發(fā)表于 06-04 16:07 ?1719次閱讀

    瑞薩電子MCU無感OTA升級功能介紹

    在工業(yè)控制、電機驅動乃至聯(lián)網邊緣節(jié)點中,固件在線升級OTA)已成為產品生命周期管理的標配。然而傳統(tǒng)OTA往往伴隨停機、風險與低效。瑞薩電
    的頭像 發(fā)表于 05-15 14:36 ?1988次閱讀
    瑞薩電子MCU無感<b class='flag-5'>OTA</b><b class='flag-5'>升級</b>功能介紹