|
|
|
|
@ -7,8 +7,10 @@
|
|
|
|
|
EasyFlash是一款开源的轻量级嵌入式Flash库,主要为MCU(Micro Control Unit)提供便捷、通用的上层应用接口,使得开发者更加高效实现基于的Flash常见应用开发。该库目前提供 **两大实用功能** :
|
|
|
|
|
|
|
|
|
|
- **Env** 让变量轻轻松松实现掉电保存,无需担心变量长度、对其等问题
|
|
|
|
|
|
|
|
|
|
使用 **键值对(key-value)** 方式将变量存储到Flash中,类似U-Boot的 `环境变量` ,使用方式与U-Boot一致。
|
|
|
|
|
- **IAP** 在线升级再也不是难事儿
|
|
|
|
|
|
|
|
|
|
该库封装了IAP(In-Application Programming)功能常用的接口,支持CRC32校验,同时支持Bootloader及Application的升级。
|
|
|
|
|
|
|
|
|
|
### 1.1、文件结构
|
|
|
|
|
@ -20,7 +22,7 @@ EasyFlash
|
|
|
|
|
|\flash\src\flash_utils.c |EasyFlash常用小工具,例如:CRC32|
|
|
|
|
|
|\flash\src\flash.c |目前只包含EasyFlash初始化方法|
|
|
|
|
|
|\flash\port\flash_port.c |不同平台下的EasyFlash移植接口及配置参数|
|
|
|
|
|
|\demo\stm32f10x |stm32f10x平台下的Demo|
|
|
|
|
|
|\demo\stm32f10x |stm32f10x平台下的demo|
|
|
|
|
|
|
|
|
|
|
### 1.2、资源占用
|
|
|
|
|
|
|
|
|
|
@ -33,9 +35,9 @@ Demoƽ̨
|
|
|
|
|
|
|
|
|
|
### 1.3、支持平台
|
|
|
|
|
|
|
|
|
|
目前已移植平台只有 `STM32F10X` 系列的片内Flash,这个也是笔者产品使用的平台。其余平台的移植难度不大,在项目的设计之初就有考虑对所有平台的适配性(64位除外),所以对所有移植接口都有做预留。移植只需修改 `port\flash_port.c` 一个文件,实现里面的擦、写、读及打印功能即可。
|
|
|
|
|
目前已移植平台只有 `STM32F10X` 系列的片内Flash,这个也是笔者产品使用的平台。其余平台的移植难度不大,在项目的设计之初就有考虑针对所有平台的适配性问题(64位除外),所以对所有移植接口都有做预留。移植只需修改 `\flash\port\flash_port.c` 一个文件,实现里面的擦、写、读及打印功能即可。
|
|
|
|
|
|
|
|
|
|
欢迎大家 *fork and pull request* 。开源软件的成功离不开所有人的努力,也希望该项目能够帮助大家降低开发周期,让产品更早的获得成功。
|
|
|
|
|
欢迎大家 **fork and pull request** 。开源软件的成功离不开所有人的努力,也希望该项目能够帮助大家降低开发周期,让产品更早的获得成功。
|
|
|
|
|
|
|
|
|
|
## 2、流程
|
|
|
|
|
|
|
|
|
|
|