EasyFlash

EasyFlash是一款開源的輕量級嵌入式Flash存儲器庫,主要為MCU(Micro Control Unit)提供便捷、通用的上層套用接口,使得開發者更加高效實現基於的Flash存儲器常見套用開發,例如:KV資料庫、線上升級、日誌保存等。

基本介紹

  • 軟體名稱:EasyFlash
  • 軟體平台:嵌入式MCU
  • 軟體版本:V4.0.0
  • 更新時間:2019-02-02
  • 軟體語言:C
  • 軟體授權:MIT
介紹,V4.0 NG 模式,資源占用,支持平台,文檔,許可,版本更新,

介紹

EasyFlash 是一款開源的輕量級嵌入式Flash存儲器庫,方便實現基於Flash存儲器的常見套用開發。適合智慧型家居、可穿戴、工控、醫療等需要斷電存儲功能的產品,資源占用低,支持各種 MCU 片上存儲器。
該庫目前提供三大實用功能:
  • Env小型KV資料庫,支持寫平衡(磨損平衡)及掉電保護模式
EasyFlash不僅能夠實現對產品的設定參數或運行日誌等信息的掉電保存功能,還封裝了簡潔的增加、刪除、修改及查詢方法, 降低了開發者對產品參數的處理難度,也保證了產品在後期升級時擁有更好的擴展性。讓Flash變為NoSQL(非關係型資料庫)模型的小型鍵值(Key-Value)存儲資料庫。
  • IAP:線上升級再也不是難事兒
該庫封裝了IAP(In-Application Programming)功能常用的接口,支持CRC32校驗,同時支持Bootloader及Application的升級。
  • Log:無需檔案系統,日誌可直接存儲在Flash上
非常適合套用在小型的不帶檔案系統的產品中,方便開發人員快速定位、查找系統發生崩潰或當機的原因。同時配合EasyLogger(我開源的超輕量級、高性能C日誌庫,它提供與EasyFlash的無縫接口)一起使用,輕鬆實現C日誌的Flash存儲功能。

V4.0 NG 模式

EasyFlash 經過 4 年多的疊代,發布了完全重構的 V4.0 版本,該版本中的 ENV 功能被命名為NG(Next Generation) 模式,具有以下新特性:
  • 更小的資源占用,0 記憶體占用;
  • ENV 的值類型支持任意類型、任意長度;
  • ENV 操作效率比以前的模式高,充分利用剩餘空閒區域;
  • 原生支持磨損平衡、掉電保護功能 ;
  • ENV 支持增量升級,固件升級後 ENV 也支持升級;
  • 支持大數據存儲模式,長度無限制。占用 Flash 超過 1 個扇區的資源可以直接存入 ENV(即將在 V4.1 支持);
  • 支持數據加密,提升存儲的安全性,物聯網時代的必備功能(即將在 V4.2 支持);
  • 支持數據壓縮,減低 Flash 占用(即將在 V4.3 支持);
V4.0 設計及內部原理,V4.0 遷移指南等更多內容請繼續閱讀下面的文檔章節

資源占用

最低要求: ROM: 6K bytes RAM: 0.1K bytes

支持平台

目前已移植硬體平台有stm32f10x與stm32f4xx系列的片內Flash,SPI Flash,這些也是筆者產品使用的平台。其餘平台的移植難度不大,在項目的設計之初就有考慮針對所有平台的適配性問題(64位除外),所以對所有移植接口都有做預留。移植只需修改\easyflash\port\ef_port.c一個檔案,實現裡面的擦、寫、讀及列印功能即可。

文檔

  • API 文檔:\docs\zh\api.md
  • 移植文檔:\docs\zh\port.md
  • V4.0 遷移指南:\docs\zh\v4_migrate.md
  • V4.0 ENV 功能設計與實現:\docs\zh\design.md

許可

採用 MIT 開源協定,細節請閱讀項目中的 LICENSE 檔案內容。

版本更新

V1.04.20:新增支持裸機及STM32F4平台
V1.06.10:新增日誌保存功能
V1.07.10:新增掉電保護功能
V2.02.11:新增類型轉換外掛程式
V3.0.0 :新增增量升級功能

相關詞條

熱門詞條

聯絡我們