使用ESP8266 SPIFFS


https://www.instructables.com/id/Using-ESP8266-SPIFFS/

 

介紹

您是否知道每個ESP8266都允許您對系統閃存進行分區,以便您可以使用它來存儲代碼並支持文件系統?

該歸檔系統可用於存儲不經常變化的數據,例如; 網頁,配置,傳感器校准數據等

這個簡短的Instructable詳細介紹了如何使用SPIFF,配置您的Arduino IDE直接將文件上傳到您的ESP8266並計算您的設備有多少閃存。

我需要哪些部件?
系統入門要求;

  1. 您的Arduino IDE已設置為ESP8266編程(設置Arduino IDE以編程ESP8266-01
  2. ESP8266-01編程設備(帶條板的實用電路結構,第9步
  3. 一個ESP8266-01

我需要什么軟件?

  • Arduino IDE 1.6.9

我需要什么技能?
要設置系統,請使用源代碼(提供),您將需要以下內容;

  1. 了解Arduino及其IDE,
  2. 有關ESP8266的一些知識,
  3. 一些耐心。

主題涵蓋

  1. 什么是SPIFFS,
  2. 安裝Arduino ESP8266文件系統上傳器,
  3. 我怎么知道我的ESP8266有多少閃存?
  4. 如何將文件上傳到ESP8266 SPIFFS,
  5. 如何測試SPIFFS並查看其運行情況,
  6. 結論,
  7. 使用的參考文獻。

注1:實際上ESP8266閃存也支持OTA更新,但是這個Instructable的范圍僅限於SPIFFS功能。

注2:雖然給出的示例使用ESP8266-01,但它與ESP8266-07,ESP8266-12,ESP8266-12E,ESP8266-13一樣,與Instructable圖像所暗示的一樣。

 

第1步:那么什么是SPIFFS

SPIFFS

SPI閃存歸檔系統的代表是針對受限嵌入式微處理器系統上具有少量RAM的SPI閃存設備而設計的。

SPIFFS的作用:

  • 專為低壓頭使用而設計
  • 使用靜態大小的ram緩沖區,與文件數無關
  • Posix-like api:打開,關閉,讀取,寫入,搜索,統計等
  • 實現靜態磨損均衡,以延長系統閃存的使用壽命

SPIFFS不做什么:

  • SPIFFS不支持目錄並使用平面結構。使用路徑tmp / myfile.txt創建文件將創建一個名為tmp / myfile.txt的文件,而不是目錄tmp下的myfile.txt。
  • 它不是實時堆棧。一次寫入操作可能比另一次更長。因此,最好在啟動,關閉或未安排時間關鍵活動時使用。
  • 目前,它沒有檢測或處理壞塊。

第2步:安裝Arduino ESP8266文件系統上傳器

安裝Arduino ESP8266文件系統上傳器的圖片
安裝Arduino ESP8266文件系統上傳器的圖片

要安裝Arduino ESP8266文件系統上傳器,請執行以下操作:

  1. 這里下載ESP8266FS-0.2.0.zip的”副本,
  2. 解壓縮文件,
  3. 將esp8266fs.jar文件放入Arduino工具目錄(路徑看起來像[home_dir] \ Arduino \ tools \ ESP8266FS \ tool \ esp8266fs.jar),
    • 在我的情況下(如上面的圖1);
    • C:\ Users \ Win 7 \ Documents \ Arduino \ tools \ ESP8266FS \ tool
    • 我需要創造;
    • 工具\ ESP8266FS \工具\
    • 下;
    • C:\ Users \ Win 7 \ Documents \ Arduino \
  4. 重啟Arduino IDE。

如果你說得對,你會在上面的圖2中的'工具'下看到一個新的菜單項'ESP8266 Sketch Data Upload'

第3步:我如何判斷我的ESP8266有多少閃存?

圖片我怎樣才能知道我的ESP8266有多少閃存?

鑒於大多數這些ESP8266設備都來自中國供應商,這些供應商在發布清晰簡潔的產品數據方面不太樂意,有一種方法可以確定你的閃存有多大來讀取芯片細節(假設它們沒有被擦洗)並且攜帶外出搜索。我為我的兩個ESP8266-01做了這個;

  • BergMicro 25Q80ASSIG 1602:8M /位
  • 華邦25Q80DVSIG 1626:8M /位

前者和后者都是1M字節。這種識別方法存在的問題是它根本不適用於ESP8266型號,它可以容納RF屏蔽層下的所有有源元件,如ESP8266-07和ESP8266-12E等。

因此,我發現最可靠和最快捷的方法是使用CheckFlashConfig.ino'草圖對器件進行編程,並查看串行監視器的輸出,如上面的圖1所示。

您可以從這里下載完整的Arduino ESP8266 Core;

和來自這里的CheckFlashConfig來源;

或者,復制如下。

附件

第4步:如何將文件上傳到ESP8266 SPIFFS

如何將文件上傳到ESP8266 SPIFFS的圖片
如何將文件上傳到ESP8266 SPIFFS的圖片
如何將文件上傳到ESP8266 SPIFFS的圖片
如何將文件上傳到ESP8266 SPIFFS的圖片

執行以下操作將文件上傳到ESP8266 SPIFFS;

  1. 確保在草圖目錄中有一個名為“data”的子目錄,
  2. 將要上傳的文件放入“數據”目錄中,
  3. 從“工具”菜單中,選擇正確的ESP8266設備,然后選擇帶有所需SPIFFS的“閃存大小”即。'1M(256K SPIFFS)'。見上面的圖片1和2,
  4. 確保關閉串行監視器對話框,
  5. 准備ESP8266設備進行上傳;
    1. 按住'Flash',
    2. 脈沖'重置'
    3. 發布'Flash',
  6. 從工具菜單中選擇'ESP8266草圖數據上傳',見圖3,圖像頂部,
  7. 上傳完成后。Arduino IDE消息窗口將顯示100%上傳。見圖3底部的圖片。

注1:如果出現錯誤消息,例如圖4中的消息,則表明“SPIFFS上載失敗!” 嘗試拔出/重新插入設備的USB轉串口適配器(FTDI)並重復步驟1 ... 7。

注2: SPIFFS內容可以獨立於程序代碼上傳。

注3:如果更改“Flash Size”,則需要重新加載程序代碼和SPIFFS。

第5步:如何測試您的SPIFFS並查看它的實際應用

如何測試您的SPIFFS並看到它的實際應用的圖片

要查看SPIFF的工作示例,請執行以下操作:

  1. 下載下面的'SPIFFsUsage.ino'草圖,
  2. 解壓縮並將其放入Arduino草圖目錄中
    • 我在這里; C:\ Users \ Win 7 \ Documents \ Arduino \ My Progs
    • 你會注意到有一個名為'data'的子目錄,其中的文件名是'testfile.txt'。
  3. 選擇目標系統的閃存幾何和您需要的代碼空間/ SPIFF大小分割(工具 - >閃存大小),
  4. 確保關閉串行監視器對話框,
  5. 將文本文件上傳到ESP8266設備,如上面步驟4中所述,
  6. 打開串口監視器對話框,將波特率設置為115200,
  7. 將'SPIFFsUsage.ino'上傳到ESP8266設備。

完成上傳后,代碼將執行,您的串行監視器對話框將顯示上面的圖1中的文本。

它用於顯示'testfile.txt'的內容;

  1. 已成功上傳,
  2. 位於文件系統中,
  3. 打開閱讀,
  4. 讀取直到文件結束,
  5. 關閉,
  6. 打開追加,
  7. 寫入文件的一行,
  8. 該文件已被重新讀取,將最近附加的行顯示在文件末尾。

注意:如果ESP8266斷電或復位,則每次連續執行時都會自動添加並顯示新線。

附件

第6步:結論

使用SPIFFS是存儲不經常更改的數據的好方法,盡管不應考慮需要許多寫訪問的應用程序,因為它最終會導致閃存失敗。這里給出閃存可能持續多長時間的典型工作示例

使用板載文件系統可節省I / O數量,其中SPI SD卡功能正被考慮用於I / O受限設備,例如ESP8266-01,這是一種非常簡單的方式來添加輔助存儲而無需4 / I / O線。

第7步:使用的參考

SPIFFS(SPI Flash文件系統)

SPIFFS WiKi

常問問題

整合spiffs

配置spiffs

使用spiffs

性能和優化

SPIFFS GIT HUB主頁

Arduino ESP8266文件系統上傳器

將草圖數據文件夾打包到SPIFFS文件系統映像中的Arduino插件,並將圖像上傳到ESP8266閃存。使用以下Arduino IDE版本進行測試:1.6.5-r2,1.6.6

GITHUB URL

資源

最新

但適用於Arduino IDE 1.6.12

Arduino論壇SPIFFs的例子

Arduino CORE

Arduino GIT HUB核心

CheckFlashConfig來源

閃光磨損的工作示例

有關SPIFFS的更多詳細信息

 


免責聲明!

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



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