www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 公眾號精選 > 嵌入式IoT

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

說明

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

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

方案1

最簡單的OTA升級,flash布局如下:


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


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

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

優(yōu)點:

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

缺點:

如果升級的過程中出現(xiàn)錯誤,而校驗又沒有檢測到,則會導(dǎo)致程序起不來。需要加強校驗機制,也需要確保下載代碼完全的準確性。

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

方案2

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

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

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

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

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

方案3

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


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

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

最后一切功能沒問題后,再將config設(shè)置成正常狀態(tài),否則每次boot啟動后都會進行OTA請求。

優(yōu)點:

程序功能可靠有保障,減少可能起不來的風(fēng)險

缺點:

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

方案4

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

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

流程圖如下:


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

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

優(yōu)點:

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

缺點:

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


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉