EasyFlash | 让让 Flash 成为小型成为小型 KV 数据库数据库
嵌入式开源项目精选专栏嵌入式开源项目精选专栏
本专栏由Mculover666创建,主要内容为寻找嵌入式领域内的优质开源项目,一是帮助开发者使用开源项目实现更多的功能,二是通过这些开源项目,学习大佬的代码及背后的实现
思想,提升自己的代码水平,和其它专栏相比,本专栏的优势在于:
不会单纯的介绍分享项目,还会包含作者亲自实践的过程分享,甚至还会有对它背后的设计思想解读不会单纯的介绍分享项目,还会包含作者亲自实践的过程分享,甚至还会有对它背后的设计思想解读。
目前本专栏包含的开源项目有:
cJSON | 一个轻量级C语言JSON解析器
paho | 支持10种语言编写mqtt客户端,总有一款适合你!
MultiButton | 一个小巧简单易用的事件驱动型按键驱动模块
letter-shell | 一个功能强大的嵌入式shell
EasyLogger | 一款轻量级且高性能的日志库
SFUD | 一款串行 Flash 通用驱动库
如果您自己编写或者发现的开源项目不错,欢迎留言或者私信投稿到本专栏,分享获得双倍的快乐!
1. EasyFlash
本期给大家带来的开源项目是 EasyFlash,可以让可以让 Flash 成为小型成为小型 KV 数据库(数据库(Key-Value)),作者armink,目前收获 975 个 star,遵循 MIT 开源许可协议。
EasyFlash是一款开源的轻量级嵌入式Flash存储器库,非常适合智能家居、可穿戴、工控、医疗、物联网等需要断电存储功能断电存储功能的产品,资源占用极低,并且支持各种 MCU 片上存储
器。
目前 EasyFlash 支持以下功能:
ENV:快速保存产品参数,支持 写平衡(磨损平衡) 及掉电保护功能;
IAP:在线升级;
LOG:无需文件系统,日志可直接存储在Flash上;
项目地址:https://github.com/armink/EasyFlash
2. 移植移植EasyFlash
2.1. 移植思路移植思路
在移植过程中主要参考两个资料:项目的readme文档和demo工程。
对于这些开源项目,其实移植起来也就两步:
① 添加源码到裸机工程中;
② 实现需要的接口即可(擦、写、读、打印);
2.2. 准备裸机工程准备裸机工程
本文中我使用的是小熊派IoT开发套件,主控芯片为STM32L431RCT6:
板载Flash型号为W25Q64JV,大小64Mbit,与STM32的QSPI接口相连: