摘要: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.

点击关注,第一时间了解华为云新鲜技术~

带你尝鲜LiteOS 组件EasyFlash的更多相关文章

  1. 一起玩转玩转LiteOS组件:TinyFrame

    摘要:TinyFrame是一个简单的用于解析串口(如 UART.telnet.套接字等)通信数据帧的库. 本文分享自华为云社区<LiteOS组件尝鲜-玩转TinyFrame>,作者:Lio ...

  2. 微信团队分享:Kotlin渐被认可,Android版微信的技术尝鲜之旅

    本文由微信开发团队工程是由“oneliang”原创发表于WeMobileDev公众号,内容稍有改动. 1.引言   Kotlin 是一个用于现代多平台应用的静态编程语言,由 JetBrains 开发( ...

  3. 玩转LiteOS组件:玩转Librws

    摘要:Librws是一个跨平台的websocket客户端,使用C语言编写. 本文分享自华为云社区<LiteOS组件尝鲜-玩转Librws>,作者: W922 . 本期小编为大家带来Lite ...

  4. CabloyJS 4.12震撼发布,及新版教程尝鲜

    引言 凡是可以用 JavaScript 来写的应用,最终都会用 JavaScript 来写 | Atwood 定律 目前市面上出现的大多数与 NodeJS 相关的框架,基本都将 NodeJS 定位在工 ...

  5. 【翻译】五步快速使用LINQPad尝鲜StreamInsight

    StreamInsight  学习地址:http://www.cnblogs.com/StreamInsight/archive/2011/10/26/StreamInsight-Query-Seri ...

  6. 【响应式】foundation栅格布局的“尝鲜”与“填坑”

      提到响应式,就不得不提两个响应式框架--bootstrap和foundation.在标题上我已经说明白啦,今天给大家介绍的是foundation框架. 何为"尝鲜"?就是带大伙 ...

  7. Spring-Data-JPA尝鲜:快速搭建CRUD+分页后台实例

    前言:由于之前没有接触过Hibernate框架,但是最近看一些博客深深被它的"效率"所吸引,所以这就来跟大家一起就着一个简单的例子来尝尝Spring全家桶里自带的JPA的鲜 Spr ...

  8. 微信小程序“满月”:尝鲜之后你还用过它吗?

    距离 2017 年 1 月 9 日微信小程序上线,整整过去了一个月时间.和互联网时代每天出现的众多新鲜事物相似,小程序甫一诞生,立即占据了各大科技媒体网站头屏并引起社交圈的兴奋讨论.由于背靠微信,纷纷 ...

  9. 基于 Blazui 的 Blazor 后台管理模板 BlazAdmin 正式尝鲜

    简介 BlazAdmin 是一个基于Blazui的后台管理模板,无JS,无TS,非 Silverlight,非 WebForm,一个标签即可使用. 我将在下一篇文章讨论 Blazor 服务器端渲染与客 ...

随机推荐

  1. 菜鸡的Java笔记 第二十二 - java 对象多态性

    本次只是围绕着多态性的概念来进行讲解,但是所讲解的代码与实际的开发几乎没有关系,而且多态一定是在继承性的基础上才可以操作的,        而本次将使用类继承的关系来描述多态的性质,实际的开发中不会出 ...

  2. [cf1491F]Magnets

    首先,只需要找到一个有磁性的位置,就可以通过$n-1$次判断其余磁铁是否有磁性,因此也就是要在$\lfloor\log_{2}n\rfloor+1$次中找到一个有磁性的位置 有一个$n-1$次的做法, ...

  3. 关于前端项目cookie的获取

    最近项目在做切换,2.0要升级到3.0,遇到跨域问题,使用的是nginx 进行对端口拦截请求其他地址,另外有的服务还要登录权限,之前没看到有这个,后来加上获取cookie的请求 var v3_toke ...

  4. Mybatis类型转换BUG

    案例:mybatis框架的使用中是否遇到过前台传入数据后mybatis后台并不执行sql的情况呢? 比如:前台传入一个状态var flag //空字符,0,1 然后你用int接收,到mybatis框架 ...

  5. 《重学Java高并发》Sempahore的使用场景与常见误区

    大家好,我是威哥,<RocketMQ技术内幕>一书作者,荣获RocketMQ官方社区优秀布道师.CSDN2020博客执之星Top2等荣誉称号.目前担任中通快递技术平台部资深架构师,主要负责 ...

  6. 【2020五校联考NOIP #2】矩阵

    咕咕咕到现在~ 题面传送门 题意: 给出一个 \(n\times n\) 的矩阵 \(A\).要你求有多少个 \(n\times n\) 的矩阵 \(B\) 满足: 每一行都是 \(1\) 到 \(n ...

  7. 洛谷 P7515 - [省选联考 2021 A 卷] 矩阵游戏(差分约束)

    题面传送门 emmm--怎么评价这个题呢,赛后学完差分约束之后看题解感觉没那么 dl,可是现场为啥就因为种种原因想不到呢?显然是 wtcl( 先不考虑"非负"及" \(\ ...

  8. 睡眠或者重启windows,无法ssh连接或者pingVMware的虚机

    睡眠后无法直接ssh重连VMware主机问题 这个问题我在win8上出现过,win10看了下同事可以正常连,不知道其他有没有问题. 解决方法: 1.关闭vmnet8和vmnet0里面的 npcap 功 ...

  9. ssm框架整合 — 更新完毕

    1.spring整合mybatis 数据表自行搭建 ,我的结构如下: 1).导入依赖 <!-- spring整合mybatis的依赖 --> <!-- 1.spring需要的依赖 - ...

  10. Python3的类注意事项

    参考: https://www.runoob.com/python/python-object.html https://www.runoob.com/w3cnote/python-extends-i ...