Lightweight IoT device information storage solution: KV/IAP/LOG. | 轻量级物联网设备信息存储方案:参数存储、在线升级及日志存储 ,全新一代版本请移步至 https://github.com/armink/FlashDB
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
armink 31cf0cce1d 1、【优化】Flash环境变量代码,提高写入缓存的效率。
Signed-off-by: armink <armink.ztl@gmail.com>
11 years ago
demo 1、【优化】Flash环境变量代码,提高写入缓存的效率。 11 years ago
docs 1、【更新】API文档及Demo说明文档。 11 years ago
flash 1、【优化】Flash环境变量代码,提高写入缓存的效率。 11 years ago
.gitattributes 1、【增加】git版本控制; 11 years ago
LICENSE 1、【修改】开源协议为GPL v3.0 11 years ago
README.md 1、【完善】部分说明文档。 11 years ago

README.md

EasyFlash 使用说明


1、介绍

EasyFlash是一款开源的轻量级嵌入式Flash存储器库主要为MCU(Micro Control Unit)提供便捷、通用的上层应用接口使得开发者更加高效实现基于的Flash存储器常见应用开发。该库目前提供 两大实用功能

  • Env 让变量轻松实现掉电保存,支持 写平衡 模式,无需担心变量长度、磨损平衡等问题

使用 键值对(key-value) 方式将变量存储到Flash中。在产品上能够更加简捷的实现 设定参数运行日志 等信息掉电保存的功能。

  • IAP 在线升级再也不是难事儿

该库封装了IAP(In-Application Programming)功能常用的接口支持CRC32校验同时支持Bootloader及Application的升级。

1.1、文件结构

源文件 描述
\flash\src\flash_env.c Env常规模式相关操作接口及实现源码
\flash\src\flash_env_wl.c Env磨损平衡模式相关操作接口及实现源码
\flash\src\flash_iap.c IAP 相关操作接口及实现源码
\flash\src\flash_utils.c EasyFlash常用小工具例如CRC32
\flash\src\flash.c 目前只包含EasyFlash初始化方法
\flash\port\flash_port.c 不同平台下的EasyFlash移植接口及配置参数
\demo\stm32f10x\non_os stm32f10x裸机的demo
\demo\stm32f10x\rtt stm32f10x基于RT-Thread的demo
\demo\stm32f4xx stm32f4xx基于RT-Thread的demo

1.2、资源占用

最低要求: ROM: 6K bytes     RAM: 0.5K bytes + (Env大小)

Demo平台STM32F103RET6 + RT-Thread 1.2.2 + Env(2K bytes)
实际占用: ROM: 6K bytes     RAM: 2.6K bytes

1.3、支持平台

目前已移植硬件平台有 stm32f10xstm32f4xx 系列的片内Flash这个也是笔者产品使用的平台。其余平台的移植难度不大在项目的设计之初就有考虑针对所有平台的适配性问题64位除外所以对所有移植接口都有做预留。移植只需修改 \flash\port\flash_port.c 一个文件,实现里面的擦、写、读及打印功能即可。

欢迎大家 fork and pull request(Github|OSChina|Coding) 。开源软件的成功离不开所有人的努力,也希望该项目能够帮助大家降低开发周期,让产品更早的获得成功。

2、流程

2.1、环境变量

下图为通过控制台(终端)来调用环境变量的常用接口,演示了环境变量 "temp" 从创建到保存,再修改,最后删除的过程。这些接口都支持被应用层直接调用。

easy_flash_env

2.2、在线升级

下图演示了通过控制台来进行IAP升级软件的过程使用的是库中自带的IAP功能接口演示采用的是串口+Ymodem协议的方式。你还也可以实现通过CAN、485、以太网等总线来实现远程网络更新。

easy_flash_iap

3、文档

具体内容参考\docs\下的文件。

4、版权

采用 GPL v3.0 开源协议,细节请阅读项目中的 LICENSE 文件内容。