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

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

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

物聯(lián)網(wǎng)中常用的ota升級(jí)方案

嵌入式IoT ? 來(lái)源:嵌入式IoT ? 作者:嵌入式IoT ? 2021-03-09 09:48 ? 次閱讀

物聯(lián)網(wǎng)中常用的ota升級(jí)方案

說(shuō)明

在進(jìn)行物聯(lián)網(wǎng)開(kāi)發(fā)的過(guò)程中,免不了進(jìn)行ota升級(jí),那么如何做好ota升級(jí)又是非常值得思考的問(wèn)題。

下面從實(shí)際應(yīng)用案例中,剖析一下ota升級(jí)的方案。

方案1

最簡(jiǎn)單的OTA升級(jí),flash布局如下:

其升級(jí)的方案是,每個(gè)APP的尾部都會(huì)記錄如下的相關(guān)信息,可以作為跳轉(zhuǎn)的標(biāo)志。

所以可以這樣理解,APP0作為運(yùn)行分區(qū),APP1作為升級(jí)分區(qū),當(dāng)升級(jí)分區(qū)的標(biāo)志置位時(shí),將升級(jí)分區(qū)的代碼放到運(yùn)行分區(qū)中執(zhí)行。

每次都只會(huì)跳轉(zhuǎn)到APP0去執(zhí)行代碼。

優(yōu)點(diǎn):

該方案設(shè)計(jì)比較簡(jiǎn)單,資源占用小。

缺點(diǎn):

如果升級(jí)的過(guò)程中出現(xiàn)錯(cuò)誤,而校驗(yàn)又沒(méi)有檢測(cè)到,則會(huì)導(dǎo)致程序起不來(lái)。需要加強(qiáng)校驗(yàn)機(jī)制,也需要確保下載代碼完全的準(zhǔn)確性。

也可能在升級(jí)之后,出現(xiàn)聯(lián)網(wǎng)模塊不能使用,導(dǎo)致需要去現(xiàn)場(chǎng)解決,這種問(wèn)題發(fā)生后非常嚴(yán)重。

方案2

方案1會(huì)存在可能起不來(lái)的風(fēng)險(xiǎn),這時(shí)需要去現(xiàn)場(chǎng)進(jìn)行程序燒錄,成本很大。所以第二種是差分升級(jí)。

當(dāng)APP0運(yùn)行時(shí),將升級(jí)的程序放到APP1中,下次BOOT跳轉(zhuǎn)從APP1地址去運(yùn)行程序。

當(dāng)APP1運(yùn)行時(shí),將升級(jí)的程序放到APP0中,下次BOOT跳轉(zhuǎn)從APP0地址去運(yùn)行程序。

這樣可以解決一個(gè)問(wèn)題,當(dāng)模塊升級(jí)后連接不了網(wǎng)絡(luò)的問(wèn)題。如果連接網(wǎng)絡(luò)失敗,可以將失敗的原因放到備份SRAM中,多次連接不上,BOOT檢測(cè)到這個(gè)現(xiàn)象,可以跳轉(zhuǎn)到另外一個(gè)可以運(yùn)行的程序進(jìn)行降級(jí)運(yùn)行。因?yàn)閮蓚€(gè)可以運(yùn)行的程序沒(méi)有被破壞。

但是這個(gè)問(wèn)題解決不了由于程序傳輸錯(cuò)誤導(dǎo)致的程序啟動(dòng)不了的問(wèn)題。

方案3

我曾經(jīng)也在實(shí)際項(xiàng)目中用到過(guò)另外OTA方案,如下設(shè)計(jì):

該設(shè)計(jì)的核心在于BOOT中集成聯(lián)網(wǎng)模塊功能,當(dāng)BOOT下載時(shí),首先會(huì)置位相關(guān)的標(biāo)志位。

其設(shè)計(jì)上采用BOOT主要用于下載功能,當(dāng)程序運(yùn)行APP時(shí),需要升級(jí)時(shí),會(huì)首先將config的標(biāo)志位置位,然后跳轉(zhuǎn)到BOOT中進(jìn)行升級(jí),將代碼永遠(yuǎn)放到APP_BAK中,升級(jí)完成后,可以校驗(yàn)通過(guò)后,將APP_BAK的代碼拷貝到APP中,然后再運(yùn)行APP區(qū)代碼。

最后一切功能沒(méi)問(wèn)題后,再將config設(shè)置成正常狀態(tài),否則每次boot啟動(dòng)后都會(huì)進(jìn)行OTA請(qǐng)求。

優(yōu)點(diǎn):

程序功能可靠有保障,減少可能起不來(lái)的風(fēng)險(xiǎn)

缺點(diǎn):

由于BOOT中集成了比較多的功能,比較復(fù)雜,當(dāng)替換聯(lián)網(wǎng)模塊時(shí),BOOT和APP的代碼需要同步修改。

方案4

rt-thread官網(wǎng)上有一種OTA的方案,具體實(shí)現(xiàn)如下:

分區(qū)名 起始地址 分區(qū)大小 分區(qū)位置 介紹
app 自定義 自定義 片內(nèi) Flash 存儲(chǔ) app 固件
download 自定義 自定義 片內(nèi) Flash 或者片外 SPI Flash 存儲(chǔ)待升級(jí)固件
factory 自定義 自定義 片內(nèi) Flash 或者片外 SPI Flash 存儲(chǔ)出廠固件
boot -- -- -- boot固件

流程圖如下:

解釋一下factory分區(qū)的實(shí)際應(yīng)用場(chǎng)景。

由于差分升級(jí)或者普通的BOOT升級(jí)方案都會(huì)存在系統(tǒng)啟動(dòng)不了的可能性,所以增加了一個(gè)一定可以啟動(dòng)的固件。具體的使用是需要boot中檢測(cè)一個(gè)硬件IO,當(dāng)該IO被長(zhǎng)時(shí)間按下后,會(huì)進(jìn)入出廠程序設(shè)置。這樣減少了設(shè)備出問(wèn)題后,技術(shù)人員需要現(xiàn)場(chǎng)升級(jí)的煩惱,即使不懂技術(shù)的人也能夠按下按鍵進(jìn)行復(fù)位。

優(yōu)點(diǎn):

消除設(shè)備啟動(dòng)不了的問(wèn)題,減少程序下載失敗的風(fēng)險(xiǎn)

缺點(diǎn):

資源消耗太大,三個(gè)固件起碼需要外掛SPI flash才能設(shè)計(jì)的比較好,完全利用內(nèi)部flash,資源有點(diǎn)緊張。

責(zé)任編輯:lq

聲明:本文內(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)投訴
  • sram
    +關(guān)注

    關(guān)注

    6

    文章

    768

    瀏覽量

    114751
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2911

    文章

    44821

    瀏覽量

    375067
  • OTA
    OTA
    +關(guān)注

    關(guān)注

    7

    文章

    583

    瀏覽量

    35304

原文標(biāo)題:物聯(lián)網(wǎng)中常用的ota升級(jí)方案

文章出處:【微信號(hào):Embeded_IoT,微信公眾號(hào):嵌入式IoT】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    聯(lián)網(wǎng)就業(yè)有哪些高薪崗位?

    聯(lián)網(wǎng)就業(yè)有哪些高薪崗位? 聯(lián)網(wǎng)行業(yè)迎來(lái)了全面爆發(fā)式的發(fā)展,眾多高薪崗位吸引著人們的目光。聯(lián)網(wǎng)
    發(fā)表于 01-10 16:47

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

    OTA無(wú)線升級(jí)過(guò)程視頻演示:OTA介紹OTA(Over-The-Air,空中升級(jí))是一種通過(guò)無(wú)線通信技術(shù)實(shí)現(xiàn)遠(yuǎn)程更新設(shè)備固件或軟件的方法。設(shè)
    的頭像 發(fā)表于 12-11 01:00 ?923次閱讀
    【<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)系統(tǒng)中常用的低功耗自組網(wǎng)無(wú)線傳輸方案(三)_藍(lán)牙芯片篇

    01 聯(lián)網(wǎng)系統(tǒng)中為什么要使用藍(lán)牙芯片 聯(lián)網(wǎng)系統(tǒng)中使用藍(lán)牙芯片的原因主要基于藍(lán)牙芯片在連接性能、數(shù)據(jù)傳輸、功耗、安全性以及應(yīng)用靈活性等方面的優(yōu)勢(shì)。以下是詳細(xì)分析: 低功耗性能 藍(lán)牙芯
    的頭像 發(fā)表于 09-29 17:11 ?545次閱讀
    <b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>系統(tǒng)<b class='flag-5'>中常用</b>的低功耗自組網(wǎng)無(wú)線傳輸<b class='flag-5'>方案</b>(三)_藍(lán)牙芯片篇

    聯(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í)服務(wù)。在
    的頭像 發(fā)表于 09-25 14:35 ?790次閱讀
    <b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>中的Fota是什么,如何使用HTTP來(lái)給設(shè)備<b class='flag-5'>升級(jí)</b>

    【全新課程資料】正點(diǎn)原子《ESP32聯(lián)網(wǎng)項(xiàng)目實(shí)戰(zhàn)》培訓(xùn)課程資料上線!

    ,涵蓋了環(huán)境搭建、編程軟件使用、模塊基礎(chǔ)驅(qū)動(dòng)、聯(lián)網(wǎng)基礎(chǔ)知識(shí)和多個(gè)實(shí)戰(zhàn)項(xiàng)目等等。在聯(lián)網(wǎng)項(xiàng)目的選擇上,我們深思熟慮,選擇了生活和生產(chǎn)中常用
    發(fā)表于 09-24 17:05

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

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

    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-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

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

    ESP IDF 5.1.1,官方OTA例程,升級(jí)過(guò)程中失敗,tcp拉取文件中斷,有遇到類似情況的嗎,日志如下: I (59717) ota: ota url:http://www.x
    發(fā)表于 06-05 07:27

    技術(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í)包,也可以通過(guò)下載
    的頭像 發(fā)表于 04-20 08:01 ?1694次閱讀
    技術(shù)帖 | RK3568開(kāi)發(fā)板的<b class='flag-5'>OTA</b><b class='flag-5'>升級(jí)</b>教程

    請(qǐng)問(wèn)BlueNRG ota升級(jí)ota_sw_activation變量上電是隨機(jī)值嗎?

    最近在看BlueNRG ota升級(jí)代碼時(shí)有一個(gè)疑惑,ota_sw_activation變量是一個(gè)未初始化的值,按照ram特性上電應(yīng)該是一個(gè)隨機(jī)值,那么在
    發(fā)表于 03-13 08:29

    汽車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ò)專門的設(shè)備或者到車輛所在的服務(wù)中心來(lái)進(jìn)行升級(jí),非常不便捷。而
    的頭像 發(fā)表于 02-18 14:39 ?1392次閱讀

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

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

    深入了解聯(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 ?1993次閱讀
    深入了解<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>設(shè)備的<b class='flag-5'>OTA</b><b class='flag-5'>升級(jí)</b>機(jī)制