ESP8266的RTOS版本ota在線升級基本流程及備忘


   ESP8266的ota升級由於涉及到不同的flash空間大小,以及新舊版本的不同,所以流程相對比較復雜。筆者這個倒騰的時間還是有一些的,不過,總歸把事情解決了。下面記錄一下基本的流程和遇到的問題。

還有一個問題,就是RTOS版本上面的ota升級和以前的很多是不同的,這也是讓我倒騰那么長時間的原因之一。

   基本流程:

    User APP1 和 User APP2 是同⼀份軟件的兩個備份,后⽂分別簡稱為 user1 和 user2。

    System param 區存了⼀個 flag,標識啟動時應當運⾏ user1 還是 user2。 啟動時先運⾏ Boot,Boot 讀取 System param 區中的 flag,判斷運⾏ user1 還是 user2,然后到 SPI Flash 的對應位置去取。

    例如, (1) 初始狀態:boot.bin + 版本 v1.0.0 的 user1.bin + System param 區 flag 標志為使⽤ user1;

       (2) 服務器上傳軟件更新版本 v1.0.1 的 user1.bin 和 user2.bin;

       (3) 服務器推送通知,設備讀取 flag 當前正使⽤ user1,則從服務器下載 v1.0.1 的 user2.bin 到 SPI Flash 260KB 之后的空間;

       (4) 下載完成后,⽤戶可以選擇重啟更新,則修改 System param 中的 flag 標志為使⽤ user2,設備 重啟,使⽤ v1.0.1 的 user2 軟件。

       (5) 再下次升級,則參考步驟 2 及之后流

 

   遇到問題:

1 怎么把user2.bin中的內容拷貝到user1.bin?

 配置編譯宏:CONFIG_ESP8266_BOOT_COPY_APP=y

2  怎么確定使用哪種ota升級方法?

 一般的原則是要根據flash大小來確定,其次根據實際項目需要,實際上,不同的項目是有不少差別的.

3  怎么獲取源碼呢?

  全部的源碼我這邊有,需要的請回復,我發給你,假如是商業用途,需要你發個紅包即可。

4 怎么知道flash大小?

 安信可的可以參考這個目錄:https://wiki.ai-thinker.com/esp8266


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM