OTA 升級(jí)過(guò)程中斷了,怎么辦?
在最近的兩篇文章中,我們從概念和流程上梳理了: 一個(gè)終端設(shè)備如何把一個(gè)固件,安全無(wú)誤的從服務(wù)器上,下載到本地。
這篇文章就繼續(xù)往下深入,以一個(gè)實(shí)際的 ESP32 項(xiàng)目,來(lái)完整的梳理一下 OTA 升級(jí)的全過(guò)程。
主要包括下面 3 部分內(nèi)容:
AWS 平臺(tái)上,部署一個(gè) OTA 升級(jí)任務(wù)時(shí),需要完成哪些步驟;
ESP32 模組中,關(guān)于 Flash 分區(qū)和 OTA 升級(jí)控制過(guò)程和代碼說(shuō)明;
如何通過(guò) ESP32,給與之相連的 MCU 進(jìn)行 OTA 升級(jí);
PS: 在下面的內(nèi)容中,終端設(shè)備指的就是 ESP32 模組。
ESP32 Flash 分區(qū)
其實(shí) ESP32 的官方文檔的過(guò)程描述,已經(jīng)是非常的詳細(xì)了。
不僅把每一個(gè)操作的步驟都寫的很清楚,而且把一些可能遇到的錯(cuò)誤,都會(huì)做一些善意的提醒。
下面這部分內(nèi)容,基本上是來(lái)源于官方的文檔。
我們這里只是把一些與本文相關(guān)的、比較重要的內(nèi)容摘錄在這里。
首先要了解的,肯定是 Flash 的分區(qū)信息了。
所有的固件、數(shù)據(jù),都要存儲(chǔ)在 Flash 中,它是一個(gè)系統(tǒng)的記憶部件,離開(kāi)了它,再怎么聰明的 CPU 都無(wú)用武之地。
關(guān)于分區(qū)表,ESP32 中預(yù)定義了 2 份分區(qū)表,分別對(duì)應(yīng):是否存在 OTA 功能這兩種情況,截圖如下:
沒(méi)有 OTA 的分區(qū)表:
有 OTA 功能的分區(qū)表:
既然我們是在描述 OTA 過(guò)程,那肯定就是以帶有 OTA 功能的這個(gè)分區(qū)表為準(zhǔn)了。
在這張分區(qū)表中,一共定義了 3 個(gè)應(yīng)用程序分區(qū):
factory 分區(qū);
ota_0 分區(qū);
ota_1 分區(qū);
這三個(gè)分區(qū)的類型都是 app,但具體 app 的類型不相同。
其中,位于 0x10000 偏移地址處的為出廠應(yīng)用程序(factory),其余兩個(gè)為 OTA 應(yīng)用程序(ota_0,ota_1)。
名為 otadata 的數(shù)據(jù)分區(qū),用于保存 OTA 升級(jí)時(shí)需要的數(shù)據(jù)。
啟動(dòng)加載器會(huì)查詢?cè)摲謪^(qū)(otadata)的數(shù)據(jù),以判斷:應(yīng)該從哪個(gè) OTA 應(yīng)用程序分區(qū)來(lái)加載程序。
如果 otadata 分區(qū)為空(說(shuō)明這臺(tái)設(shè)備還沒(méi)有進(jìn)行過(guò) OTA 升級(jí)),則會(huì)執(zhí)行出廠程序,也就是執(zhí)行 factory 分區(qū)中的固件程序。
如果 otadata 分區(qū)非空,則啟動(dòng)加載器將加載這個(gè)分區(qū)中的數(shù)據(jù),進(jìn)而判斷: 啟動(dòng)哪個(gè) OTA 鏡像文件。
發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
即日-11.13立即報(bào)名>>> 【在線會(huì)議】多物理場(chǎng)仿真助跑新能源汽車
-
11月28日立即報(bào)名>>> 2024工程師系列—工業(yè)電子技術(shù)在線會(huì)議
-
12月19日立即報(bào)名>> 【線下會(huì)議】OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
-
即日-12.26火熱報(bào)名中>> OFweek2024中國(guó)智造CIO在線峰會(huì)
-
即日-2025.8.1立即下載>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍(lán)皮書》
-
精彩回顧立即查看>> 【限時(shí)免費(fèi)下載】TE暖通空調(diào)系統(tǒng)高效可靠的組件解決方案
推薦專題
- 1 【一周車話】沒(méi)有方向盤和踏板的車,你敢坐嗎?
- 2 特斯拉發(fā)布無(wú)人駕駛車,還未迎來(lái)“Chatgpt時(shí)刻”
- 3 特斯拉股價(jià)大跌15%:Robotaxi離落地還差一個(gè)蘿卜快跑
- 4 馬斯克給的“驚喜”夠嗎?
- 5 打完“價(jià)格戰(zhàn)”,大模型還要比什么?
- 6 馬斯克致敬“國(guó)產(chǎn)蘿卜”?
- 7 神經(jīng)網(wǎng)絡(luò),誰(shuí)是盈利最強(qiáng)企業(yè)?
- 8 比蘋果偉大100倍!真正改寫人類歷史的智能產(chǎn)品降臨
- 9 諾獎(jiǎng)進(jìn)入“AI時(shí)代”,人類何去何從?
- 10 Open AI融資后成萬(wàn)億獨(dú)角獸,AI人才之爭(zhēng)開(kāi)啟
- 高級(jí)軟件工程師 廣東省/深圳市
- 自動(dòng)化高級(jí)工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級(jí)銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市