带你尝鲜LiteOS 组件EasyFlash
Posted 华为云开发者社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带你尝鲜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打入源码中。
关于组件下载的详细流程请参考:LiteOS_Components: Huawei LiteOS组件仓库,主要存放组件的补丁及相关的sha256校验文件。
注:下载组件时,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.
以上是关于带你尝鲜LiteOS 组件EasyFlash的主要内容,如果未能解决你的问题,请参考以下文章