摘要: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相关推荐

  1. K3s初探:Rancher架构师带你尝鲜史上最轻量Kubernetes发行版

    发布不到两天,GitHub上Star数已近3000,这个业界大热的.史上最轻量的开源Kubernetes发行版,你试过了没? Rancher资深架构师来教你走出尝鲜第一步!使用教程在此! 前 言 昨天 ...

  2. 一分钟带你了解Huawei LiteOS组件开发指南

    摘要:本文将基于Huawei LiteOS系统,从组件定义开始带你走进组件开发指南. 本文分享自华为云社区<一分钟带你了解Huawei LiteOS之组件开发指南>,作者: Lionlac ...

  3. 前端如何获取联通积分_高交会来了!中国联通带你“尝鲜”最新5G应用

    字节吞吐获悉,11月11日,第22届中国国际高新技术成果交易会(简称"高交会")在深圳拉开帷幕.中国联通以"创新•与智慧同行"为主题,携5G+智慧冬奥.5G+慢 ...

  4. 手把手带你玩转LiteOS Ping组件

    摘要:本期小编为大家带来LiteOS开源版本Ping组件的使用说明,请跟随小编的步伐一起进入探索之旅吧! 本文分享自华为云社区<LiteOS组件尝鲜-玩转Ping>,作者:Lionlace ...

  5. 通用流量录制回放工具 jvm-sandbox-repeater 尝鲜 (四)——新版带界面 console 的使用

    本文作者陈恒捷是TesterHome社区主编,第十届MTSC大会上海站-开源专场出品人.先后在PP助手.PPmoney.荔枝等公司从事测试效能提升相关工作,在测试技术及效率提升方面有丰富的经验积累. ...

  6. vue 时间插件_Vue3 插件开发详解尝鲜版「值得收藏」

    作者:lishuai 转发链接:https://segmentfault.com/a/1190000022757326 前言 vue3.0-beta 版本已经发布了一段时间了,正式版本据说在年中发布( ...

  7. 玩转LiteOS组件:玩转Librws

    本文分享自华为云社区<LiteOS组件尝鲜-玩转Librws>,作者: W922  . 本期小编为大家带来LiteOS开源版本Librws 组件的使用说明,请跟随小编的步伐一起进入探索之旅 ...

  8. 快来一起玩转LiteOS组件:Curl

    本文分享自华为云社区<LiteOS组件尝鲜-玩转Curl>,作者:W922. 基本介绍 Curl是一个文件传输工具,常用于数据上传和下载,本demo基于Cloud_STM32F429IGT ...

  9. 一起玩转LiteOS组件:Pixman

    摘要:本文将以Pixman Demo为例,详细说明Pixman的功能. 本文分享自华为云社区<LiteOS组件尝鲜-玩转Pixman>,作者:Lionlace. 基本介绍 Pixman是由 ...

最新文章

  1. 如何在vscode运行php代码_如何提高 PHP 代码的质量?
  2. 【大牛云集】悉尼科技大学ReLER实验室介绍
  3. Linux 常用命令操作
  4. linux xargs 给命令传递参数 组合多个命令
  5. 零基础如何入门数据分析?
  6. memcached完全剖析–1. memcached的基础
  7. sts,eclipse里面配置tomcat
  8. 数据库索引的实现原理及查询优化
  9. ASP.Net新手项目经验谈
  10. sql相同顺序法和一次封锁法_不到75行代码,导出最高法指导案例到excel(一)...
  11. AD账户频繁被锁定-开启日志审核策略
  12. Android开源框架Universal-Image-Loader完全解析(三)
  13. ionic3学习之懒加载
  14. 2022考研复习第二十三周
  15. WPS 表格中单元格文字后插入公式
  16. 中国数码门锁市场趋势报告、技术动态创新及市场预测
  17. 线性规划——产销平衡
  18. vue报错 | Duplicate keys detected: ‘0’. This may cause an update error.
  19. 联想微型计算机功率,联想小新pro 13 2019 i7 突破功耗墙以后
  20. Java语言中的输入方法

热门文章

  1. openstack 云_使用OpenStack打造云事业
  2. ES6/07/Array的扩展方法,...扩展运算符,Array.from(),(arr.find(),arr.findIndex()和arr.includes())模板字符串,Set数据结构
  3. Bootstrap禁用某个按钮组
  4. CSS 参考资料/学习资料
  5. main函数的类型定义
  6. 设置ROS机器人避免行走到地图未知区域
  7. pcl中set程序_PCL中分割方法的介绍(3)
  8. 2能不用cuda_洗洁精不用花钱买,自己在家2毛钱能做一大瓶,效果比买的还好!...
  9. Flask之Flask实例有哪些参数
  10. react实现的点击拖拽元素效果