帶你嘗鮮LiteOS 組件EasyFlash


摘要:EasyFlash是一個開源的輕量級嵌入式閃存庫。

本文分享自華為雲社區《LiteOS組件嘗鮮-玩轉EasyFlash》,作者:Lionlace 。

基本介紹

EasyFlash是一個開源的輕量級嵌入式閃存庫,它資源占用低,為MCU(微控制單元)提供了方便的應用接口,使得開發者實現基於Flash存儲器的應用開發更加輕松快捷,在智能家居、可穿戴、工控、醫療、物聯網等需要斷電存儲功能的產品領域都可以廣泛應用。

該庫目前主要提供如下功能:

  • Env(環境變量)快速保存產品參數;
  • 支持寫平衡模式(磨損均衡)及掉電保護。

EasyFlash不僅可以存儲設置參數及運行日志,提供掉電保護功能,同時封裝了添加、刪除、修改和查詢方法,幫助開發人員更輕松地處理產品參數。Easyflash同時可將Flash變為NoSQL(非關系型數據庫)模型的小型鍵值(Key-Value)存儲數據庫。

使用說明

使能 EasyFlash Demo

以Linux系統編譯環境和Cloud_STM32F429IGTx_FIRE開發板為例,拷貝Cloud_STM32F429IGTx_FIRE開發板的默認配置文件${platform}.config到在LiteOS工程的根目錄下,並重命名為.config。

cp tools/build/config/Cloud_STM32F429IGTx_FIRE.config .config

在LiteOS工程的根目錄下執行make menuconfig命令,並勾選以下相關配置,使能。

EasyFlash Demo:
   Demos  --->
        Utility Demo  --->
               [*] Enable EasyFlash Demo

勾選EasyFlash Demo后,自動使能其依賴的EasyFlash組件。保存並退出menuconfig后,自動執行components/download.sh腳本。

  • 從互聯網下載EasyFlash-3.3.0源代碼。
  • 從gitee的LiteOS_Components組件倉庫下載對應的patch包,並把該patch打入源碼中。

關於組件下載的詳細流程請參考:https://gitee.com/LiteOS/LiteOS_Components#%E5%9C%A8%E7%BA%BF%E7%BB%84%E4%BB%B6%E4%B8%8B%E8%BD%BD%E6%B5%81%E7%A8%8B

注:下載組件時,Linux環境可以訪問互聯網,並已安裝git工具。

編譯運行 EasyFlash Demo

在LiteOS工程根目錄下執行以下命令進行編譯:

make clean ; make -j

編譯結束后,在out/Cloud_STM32F429IGTx_FIRE/lib目錄下生成libeasyflash.a和libef_demo.a,系統鏡像文件為out/Cloud_STM32F429IGTx_FIRE/Huawei_LiteOS.bin。

燒錄系統鏡像文件到Cloud_STM32F429IGTx_FIRE開發板,上電復位后可以看到串口輸出Demo運行結果日志如下所示。

********Hello Huawei LiteOS********
LiteOS Kernel Version : 5.1.0
build date : Nov 22 2021 17:13:30
**********************************
OsAppInit
cpu 0 entering scheduler
app init!
Hello, welcome to liteos demo!
[SFUD]Find a Winbond W25Q256JV flash chip. Size is 33554432 bytes.
[SFUD]W25Q256JV flash device is initialized successfully.
[Flash]EasyFlash V3.3.0 is initialized successfully.
[Flash]You can get the latest version on https://github.com/armink/EasyFlash .
Huawei LiteOS # Ready to write Event.
Save env, "TickCount"=2007
Ready to write Event.
Save env, "TickCount"=4007
Ready to write Event.
Save env, "TickCount"=6007
Ready to write Event.
Save env, "TickCount"=8007
Get Env, TickCount=8007
Swtmr delete.
Mutex delete.
Event destroy.
Easyflash task delete.

 

點擊關注,第一時間了解華為雲新鮮技術~


免責聲明!

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



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