OTA升级flash分区
什么是在線OTA升級
-???????? OTA是Over-the-Air的簡寫,空中下載技術的意思。
-???????? OTA在線升級在日常消費電子產品中很常見,比如手機,機頂盒等,通過網絡,下載升級數據包,更新操作系統等底層固件進行系統更新升級。
-???????? 在線升級系統對于批量化消費電子產品來說是相當重要的。因為銷售給客戶的電子產品,其中的軟件系統可能有潛在的bug或者功能為實現不齊全,需要在售后進一步完善更新系統。一般都是通過網絡遠程給用戶進行系統更新。
可在線OTA升級的嵌入式系統Flash存儲區規劃
-???????? 要設計帶有OTA在線升級功能的嵌入式系統,首先需要對系統的flash存儲區進行分區規劃。
-???????? 一般帶有OTA系統的分區規劃如圖1所示。
-???????? 本系統的分區不包括升級失敗的備份還原分區,本文只考慮升級成功的情況,升級失敗還原只需再增加冗余分區與啟動方案即可。
Figure 1帶有OTA升級功能的嵌入式系統Flash存儲器分區規劃
-???????? 在圖1的flash分區規劃中,uboot根據boot flag param分區里的數據,選擇正常的應用系統Normal APP System啟動還是從升級系統 Update System 啟動。
-???????? Uboot可以用其它類型的boot代替,常規應用系統和升級系統的 OS kernel可以是Linux Kernel ,也可以是普通的 RTOS Kernel,實際設計的時候,要根據Flash存儲空間的大小進行調整與優化,選擇合適的OS Kernel 和 uboot進行系統的規劃。
-???????? 另外,OTA升級時,從網絡上下載的一般是壓縮的升級數據包(數據包包含OS Kernel 與 Rootfs),需要單獨一個分區用于存放壓縮的升級數據包。
-???????? 用戶數據單獨設置一個分區存放,以保證OTA升級更新之后,用戶數據不會丟失。
嵌入式系統在線升級流程
1). Normal? APP系統與 Update 系統的啟動選擇
- 帶有OTA升級的嵌入式系統,一般都有兩個系統,一般是通過啟動Update 系統,在運行Update系統的應用,擦出Normal? APP系統中的程序數據,再將OTA下載的新系統數據解壓,重新寫入Normal APP 系統所在的分區。
-? 雙系統的啟動選擇方式如圖2所示。
- Uboot 通過讀取 BootFlag Param 分區中的參數來選擇一個系統啟動。
Figure 2 uboot 通過判斷boot flag param 分區中的參數選擇啟動一個系統
2). OTA在線升級的全過程
- 系統OTA在線升級的整個流程如圖3所示。
- 整個OTA在線升級并不神秘,但是步驟還是多而繁瑣,通過畫出流程,我們才知道每一步到底做了什么。
Figure 3 系統OTA在線升級的整個流程
---------------------
作者:zhou_chenz
來源:CSDN
原文:https://blog.csdn.net/zhou_chenz/article/details/54917622
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
總結
以上是生活随笔為你收集整理的OTA升级flash分区的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我和我的祖国啥时候播出
- 下一篇: gpio pin和pad的区别