EasyFlash 是一款開源的輕量級嵌入式Flash存儲器庫,主要為MCU(Micro Control Unit)提供便捷、通用的上層應用接口,使得開發者更加高效實現基於的Flash存儲器常見應用開發。該庫目前提供 三大實用功能 :
EasyFlash不僅能夠實現對產品的 設定參數 或 運行日誌 等信息的掉電保存功能,還封裝了簡潔的增加、刪除、修改及查詢方法, 降低了開發者對產品參數的處理難度,也保證了產品在後期升級時擁有更好的擴展性。讓Flash變為NoSQL(非關係型資料庫)模型的小型鍵值(Key-Value)存儲資料庫。
該庫封裝了IAP(In-Application Programming)功能常用的接口,支持CRC32校驗,同時支持Bootloader及Application的升級。
非常適合應用在小型的不帶文件系統的產品中,方便開發人員快速定位、查找系統發生崩潰或死機的原因。同時配合EasyLogger(我開源的超輕量級、高性能C日誌庫,它提供與EasyFlash的無縫接口)一起使用,輕鬆實現日誌的Flash存儲功能。
更多詳細介紹、使用場景及使用說明請點擊:Github 或 OSChina 進行查看。
本次更新日誌如下:
新增 適合環境變量功能的類型轉換插件;
新增 設置環境變量後立刻保存的方法;
優化 環境變量保存邏輯;
修復 日誌功能中的部分 bug;
本次更新重點是類型轉換插件(Types),目前 EasyFlash 會將環境變量以字符串形式存儲於 Flash 中,在這種模式下,對於非字符串類型的環境變量在使用時,就必須得增加額外的字符串轉換代碼。設計 Types 插件就是為了方便用戶在使用 EasyFlash 時,以更加簡單的方式去操作各種類型的環境變量。
主要支持的類型包括:C 的 基本類型 、 數組類型 以及 結構體類型 。對於結構體類型, Types 插件內部採用 struct2json 庫進行轉換,所以項目中需要依賴 struct2json 庫。
基本方法如下:
/* 獲取基本類型環境變量 */int boot_count = ef_get_int("開機次數");/* 獲取數組類型環境變量 */int temp_record[100];ef_get_int_array("溫度記錄", temp_record);/* 獲取結構體類型環境變量 */ef_get_struct("張三學生", &student, stu_get_cb);
更多更詳細的使用方法,請參考源碼中的說明文檔(點擊打開)