色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(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í)

安芯教育科技 ? 來(lái)源:IOT物聯(lián)網(wǎng)小鎮(zhèn) ? 作者:道哥 ? 2021-09-24 15:08 ? 次閱讀

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

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

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

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

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

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

今天,我們繼續(xù) OTA 升級(jí)過(guò)程中后續(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: 沒(méi)有變化;

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è)問(wèn)題:執(zhí)行升級(jí)指令、下載壓縮包,都是此刻正在執(zhí)行的 main 程序來(lái)執(zhí)行的。

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

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

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

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

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

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

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

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

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

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

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

完全升級(jí)

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

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

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

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

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

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

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

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

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

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

增量升級(jí)

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

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

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

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

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

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

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

使用 sed 命令來(lái)修改 config.ini 文件中的 version 字段;

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

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

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

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

One more thing

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

作者|道哥

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

編輯:jq

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

    關(guān)注

    7

    文章

    582

    瀏覽量

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

    關(guān)注

    1

    文章

    391

    瀏覽量

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

    關(guān)注

    0

    文章

    432

    瀏覽量

    24402

原文標(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)推薦

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

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

    聯(lián)網(wǎng)中的Fota是什么,如何使用HTTP來(lái)給設(shè)備升級(jí)

    一 概述 FOTA(Firmware Over-The-Air)移動(dòng)終端的空中下載軟件升級(jí),指通過(guò)云端升級(jí)技術(shù),為具有連網(wǎng)功能的設(shè)備提供固件升級(jí)
    的頭像 發(fā)表于 09-25 14:35 ?721次閱讀
    <b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>中的Fota是什么,如何使用HTTP來(lái)給<b class='flag-5'>設(shè)備</b><b class='flag-5'>升級(jí)</b>

    S3N8R16工程代碼里面只要調(diào)用了wifi、藍(lán)牙、mqtt等相關(guān)接口,編譯出來(lái)的固件拿去ota升級(jí)升級(jí)不了,為什么?

    碰到個(gè)很奇怪的現(xiàn)象,我的工程代碼里面只要調(diào)用了wifi、藍(lán)牙、mqtt等相關(guān)接口,編譯出來(lái)的固件拿去ota升級(jí)升級(jí)不了,沒(méi)有調(diào)用就能正常升級(jí),一直搞不懂是什么原因,有dalao遇
    發(fā)表于 07-19 07:31

    OTA升級(jí)后重啟,printf日志錯(cuò)誤的原因?

    OTA升級(jí)后重啟,printf日志錯(cuò)誤。
    發(fā)表于 07-18 06:26

    ESP8266 OTA升級(jí)失敗的原因?

    我正在使用自定義服務(wù)器來(lái)升級(jí) esp8266。我可以從服務(wù)器下載圖像,但總是升級(jí)失敗。 我將以下.bin文件下載到閃存中(下載前,我擦除整個(gè)閃存): ------------ 2 MByte
    發(fā)表于 07-11 07:45

    ESP8266 OTA升級(jí)不成功的原因?

    我正在使用最新的 RTOS SDK 版本 1.5 ESP8266。我使用自定義服務(wù)器進(jìn)行OTA升級(jí)。 有時(shí) OTA 升級(jí)成功,有時(shí)即使閃爍了正確的圖像,
    發(fā)表于 07-10 06:14

    如何在ESP8266上運(yùn)行OTA升級(jí)

    在 ESP8266 (ESP-12F) 上運(yùn)行 OTA 升級(jí)
    發(fā)表于 07-10 06:13

    esp-ali-smartliving SDK功能OTA升級(jí)失敗的原因?

    ,使用阿里生活物聯(lián)網(wǎng)平臺(tái)OTA升級(jí)失敗,提示:Not digestSign key in json doc of OTA,如下圖 請(qǐng)問(wèn)如何解決呢?
    發(fā)表于 06-28 08:50

    ESP-IDF是否支持基于BLE的OTA升級(jí)

    節(jié)點(diǎn)需要切換到WiFi才能完成HTTP升級(jí),ESP-IDF是否支持基于BLE的OTA升級(jí)
    發(fā)表于 06-12 07:49

    ESP-IDF4.4 OTA升級(jí)失敗的原因?

    ESP-IDF4.4 OTA 功能,在啟動(dòng)OTA功能后下載固件過(guò)程中出現(xiàn)wifi無(wú)Internet訪問(wèn),然后很快網(wǎng)絡(luò)恢復(fù),需要等待很久后OTA升級(jí)失敗。
    發(fā)表于 06-06 08:19

    通過(guò)RK3568開(kāi)發(fā)板進(jìn)行OTA本地程序升級(jí)

    說(shuō)起OTA我們應(yīng)該都不陌生,它是一種可以為設(shè)備無(wú)損失升級(jí)系統(tǒng)的方式,能將新功能遠(yuǎn)程部署到產(chǎn)品上。我們不僅可以通過(guò)網(wǎng)絡(luò)下載OTA升級(jí)包,也可以
    發(fā)表于 04-20 11:23

    技術(shù)帖 | RK3568開(kāi)發(fā)板的OTA升級(jí)教程

    說(shuō)起OTA我們應(yīng)該都不陌生,它是一種可以為設(shè)備無(wú)損失升級(jí)系統(tǒng)的方式,能將新功能遠(yuǎn)程部署到產(chǎn)品上。我們不僅可以通過(guò)網(wǎng)絡(luò)下載OTA升級(jí)包,也可以
    的頭像 發(fā)表于 04-20 08:01 ?1679次閱讀
    技術(shù)帖 | RK3568開(kāi)發(fā)板的<b class='flag-5'>OTA</b><b class='flag-5'>升級(jí)</b>教程

    汽車ota升級(jí)有什么用 汽車ota功能有必要嗎

    汽車OTA(Over-The-Air)升級(jí)是指通過(guò)無(wú)線網(wǎng)絡(luò)進(jìn)行汽車軟件系統(tǒng)的遠(yuǎn)程更新和升級(jí)。傳統(tǒng)上,汽車的軟件系統(tǒng)需要通過(guò)專門(mén)的
    的頭像 發(fā)表于 02-18 14:39 ?1365次閱讀

    ota升級(jí)是什么意思 ota升級(jí)有什么用

    OTA(Over-the-Air)升級(jí)是指通過(guò)無(wú)線網(wǎng)絡(luò),將軟件、固件或系統(tǒng)的新版本傳輸?shù)街С值?b class='flag-5'>設(shè)備上進(jìn)行更新和安裝的過(guò)程。這一技術(shù)廣泛應(yīng)用于手機(jī)、智能電視、汽車等各類智能
    的頭像 發(fā)表于 02-02 10:25 ?5583次閱讀

    深入了解聯(lián)網(wǎng)設(shè)備OTA升級(jí)機(jī)制

    OTA(Over-The-Air,空中下載技術(shù))是一種無(wú)線傳輸技術(shù),用于在聯(lián)網(wǎng)設(shè)備之間進(jìn)行遠(yuǎn)程更新和配置。OTA指的是通過(guò)無(wú)線通信網(wǎng)絡(luò)來(lái)遠(yuǎn)
    發(fā)表于 01-21 10:03 ?1974次閱讀
    深入了解<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b><b class='flag-5'>設(shè)備</b>的<b class='flag-5'>OTA</b><b class='flag-5'>升級(jí)</b>機(jī)制
    主站蜘蛛池模板: bl(高h)文| chinese东北夫妻video| 欧美日韩高清一区二区三区| 久久国产露脸老熟女熟69| 国产一区二区三区影院 | 被同桌摸出水来了好爽的视频| 中文字幕亚洲视频| 一区二区中文字幕在线观看 | 99久久免费看少妇高潮A片| 中文字幕精品视频在线| 中国女人内谢69XXXXXA片| 伊人草| 一本道色综合手机久久| 亚洲综合春色另类久久| 伊人成综合网伊人222| 在线观看免费视频a| 2021久久精品免费观看| 97视频在线观看免费播放| 99RE久久精品国产| xiao776唯美清纯| 哒哒哒影院在线观看免费高清 | 丝袜诱惑qvod| 午夜向日葵视频在线观看| 午理论理影片被窝| 亚洲黄色大片| 在线观看免费毛片| 97国产人妻精品无码AV在线| jk白丝袜美女被男人桶| 嘟嘟嘟在线视频免费观看高清中文| 高清AV熟女一区| 国产午夜精品理论片免费观看| 狠狠撸亚洲视频| 老师xxxx69动漫| 欧美午夜精品久久久久久浪潮| 区一区二视频免费观看| 无码日本亚洲一区久久精品| 亚洲精品美女久久777777| 又爽又黄又粗又大免费视频| 99精品电影| 国产成人精品系列在线观看| 狠狠色综合久久婷婷|