18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

簡(jiǎn)述物聯(lián)網(wǎng)設(shè)備OTA軟件升級(jí)之:完全升級(jí)和增量升級(jí)

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

掃碼添加小助手

加入工程師交流群

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

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

其實(shí)這不僅僅是下載文件這么簡(jiǎn)單,這其中涉及到如何對(duì)眾多的終端設(shè)備進(jìn)行批量升級(jí)的策略問題。

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

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

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

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

還記得我們之前的假設(shè)嗎?

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

main: 主程序;

config.ini: 配置文件(包括一個(gè)配置項(xiàng):version=V1_0);

mylib.so: 實(shí)現(xiàn)了某個(gè)算法的動(dòng)態(tài)庫(kù),被 main 程序調(diào)用;

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

main: 沒有變化;

config.ini: 配置項(xiàng)修改了:version=V2_0;

mylib.so: 優(yōu)化了算法,主要就是想升級(jí)這個(gè)動(dòng)態(tài)庫(kù);

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

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

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

upgrade.sh 升級(jí)腳本

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

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

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

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

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

此時(shí)就可以在 rc.local 這個(gè)文件中去做升級(jí)操作。

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

此刻, upgrade.sh 升級(jí)腳本開始登場(chǎng)了!

這個(gè)腳本文件的主要作用就是用來控制升級(jí)過程。

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

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

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

完全升級(jí)

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

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

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

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

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

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

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

還有一點(diǎn),既然剛才提到了配置文件 config.ini,不知您是否會(huì)有這樣一個(gè)疑問:

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

關(guān)于這個(gè)問題,我們就繼續(xù)來聊一下增量升級(jí)!

增量升級(jí)

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

對(duì)于我們假設(shè)的升級(jí)場(chǎng)景,只需要做 2 件事情:

替換 mylib.so 庫(kù)文件;

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

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

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

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

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

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

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

這是因?yàn)檫@里的示例太簡(jiǎn)單,如果是一個(gè)比較復(fù)雜的、有多個(gè)模塊相互配合的應(yīng)用程序,增量升級(jí)的優(yōu)勢(shì)就明顯了。

關(guān)于 OTA 升級(jí)過程,就先說這么多了,主要是以思想為主,畢竟每一個(gè)項(xiàng)目的需求場(chǎng)景是不一樣的,從大方向上明白 OTA 的升級(jí)過程就可以了。

One more thing

后臺(tái)提供一個(gè)很多年前項(xiàng)目中的升級(jí)腳本文件模板。

作者|道哥

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

編輯:jq

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

    關(guān)注

    7

    文章

    623

    瀏覽量

    37719
  • 腳本
    +關(guān)注

    關(guān)注

    1

    文章

    405

    瀏覽量

    28989
  • AWS
    AWS
    +關(guān)注

    關(guān)注

    0

    文章

    439

    瀏覽量

    26158

原文標(biāo)題:技術(shù)分享 | 物聯(lián)網(wǎng)設(shè)備OTA軟件升級(jí)之:完全升級(jí)和增量升級(jí)

文章出處:【微信號(hào):Ithingedu,微信公眾號(hào):安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    使用RTT的維護(hù)云進(jìn)行遠(yuǎn)程固件升級(jí)OTA),怎么沒有網(wǎng)絡(luò)升級(jí)的方式?

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

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

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

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

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

    藍(lán)牙空中升級(jí)(OTA)原理

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

    東風(fēng)日產(chǎn)N7開啟首次OTA升級(jí)

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

    詳解藍(lán)牙空中升級(jí)(OTA)原理與步驟

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

    長(zhǎng)安汽車構(gòu)建全流程智能網(wǎng)聯(lián)汽車OTA升級(jí)能力體系

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

    瑞薩電子MCU無感OTA升級(jí)功能介紹

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

    有沒有大神使用cubeMX生成初始代碼開發(fā)實(shí)現(xiàn)通過USB(HID)進(jìn)行OTA升級(jí)功能的?

    求助,有沒有大神使用cubeMX生成初始代碼開發(fā)實(shí)現(xiàn)通過USB(HID)進(jìn)行OTA升級(jí)功能的
    發(fā)表于 04-22 13:35

    RK3568開發(fā)板OTA升級(jí)

    OTA(Over-The-Air)升級(jí)作為一種無損失的系統(tǒng)升級(jí)方式,能夠遠(yuǎn)程將新功能部署到產(chǎn)品上,極大地提高了設(shè)備的可維護(hù)性和可擴(kuò)展性。除了通過網(wǎng)絡(luò)直接下載
    的頭像 發(fā)表于 04-21 14:32 ?1095次閱讀
    RK3568開發(fā)板<b class='flag-5'>OTA</b><b class='flag-5'>升級(jí)</b>

    一文解鎖OTA遠(yuǎn)程升級(jí)方案!基于RK3562全國(guó)產(chǎn)平臺(tái)

    通過網(wǎng)絡(luò)下載固件進(jìn)行升級(jí),也支持下載固件到SD卡或U盤進(jìn)行升級(jí)。 而且,升級(jí)固件可按需定制,既能讓設(shè)備系統(tǒng)全面革新,也能升級(jí)1個(gè)或多個(gè)功能
    的頭像 發(fā)表于 04-07 10:15 ?879次閱讀
    一文解鎖<b class='flag-5'>OTA</b>遠(yuǎn)程<b class='flag-5'>升級(jí)</b>方案!基于RK3562全國(guó)產(chǎn)平臺(tái)

    淺談車規(guī)MCU (MGEQ1C064) OTA升級(jí)

    的正常程序,用于執(zhí)行各種應(yīng)用功能:這部分程序稱為App。 整個(gè)OTA的簡(jiǎn)單流程如下: 可以看出,要實(shí)現(xiàn)OTA升級(jí),劃分FLASH的操作是不可少的,很多MCU通常使用編程軟件(如k
    發(fā)表于 03-04 12:52

    OTA軟件升級(jí)管理系統(tǒng)

    OTA(Over-the-Air Technology,空中下載技術(shù))是通過空中下載的方式對(duì)車輛中的軟件進(jìn)行遠(yuǎn)程升級(jí)。經(jīng)緯恒潤(rùn)OTA軟件
    的頭像 發(fā)表于 01-13 09:39 ?1563次閱讀
    <b class='flag-5'>OTA</b><b class='flag-5'>軟件</b><b class='flag-5'>升級(jí)</b>管理系統(tǒng)

    STM32F103上位機(jī)升級(jí),RS485升級(jí)、CAN升級(jí)

    外置Flash。該開發(fā)板提供上位機(jī)升級(jí)軟件,購(gòu)買者可使用該上位機(jī)配合我們的升級(jí)例程學(xué)習(xí)給MCU在線更新升級(jí) 上位機(jī)軟件使用VS2022開發(fā)平
    發(fā)表于 01-03 08:57

    OTA升級(jí)】無需數(shù)據(jù)線,一條命令即可完成固件升級(jí)

    OTA無線升級(jí)過程視頻演示:OTA介紹OTA(Over-The-Air,空中升級(jí))是一種通過無線通信技術(shù)實(shí)現(xiàn)遠(yuǎn)程更新
    的頭像 發(fā)表于 12-11 01:00 ?5064次閱讀
    【<b class='flag-5'>OTA</b><b class='flag-5'>升級(jí)</b>】無需數(shù)據(jù)線,一條命令即可完成固件<b class='flag-5'>升級(jí)</b>!