硬汉嵌入式论坛

 找回密码
 立即注册
查看: 221|回复: 6
收起左侧

ST推出的Flash模拟EEPROM软件包,支持掉电恢复,支持CRC和ECC接口校验确保数据完整性(2026-03-17)

[复制链接]

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
121627
QQ
发表于 3 天前 | 显示全部楼层 |阅读模式
https://github.com/STMicroelectr ... emulation/tree/main

EEPROM模拟实用程序模块提供了一种稳健高效的方式,在STM32微控制器上使用Flash存储器模拟EEPROM。它支持多种应用场景,并通过CRC和ECC接口确保数据完整性。

描述与用法

描述
EEPROM模拟实用程序非常适合需要非易失性存储但没有专用EEPROM硬件的应用。

EEPROM模拟的主要特性包括:
1、模拟容量可配置,具有可变大小和Flash区域选择功能。
2、算法选项包括FLITF或NVM,符合设备限制和性能要求。
3、掉电恢复功能可在复位后恢复FLITF页面并清理损坏的NVM地址。
4、数据完整性选项提供CRC用于损坏检测,以及ECC(BCH)用于位错误纠正。
5、接口为可插拔式,提供Flash、CRC和ECC驱动程序及模板。

用法
启动EEPROM模拟可分为两个步骤:

第1步:EEPROM模拟初始化
通过调用EE_Init(ee_object_t *object, ee_erase_type erase_type)初始化EEPROM模拟。参数object是一个ee_object_t结构体,代表EEPROM模拟对象。该函数执行以下步骤:

1、初始化所有EEPROM模拟接口,假设硬件外设已初始化。
2、使用FLITF算法时将页面恢复到已知状态。
3、使用NVM算法时在复位操作后删除损坏的地址。

第2步:访问EEPROM变量
核心API提供了读取和写入不同大小变量的函数

1、使用EE_WriteVariableXbits()函数写入变量。
2、使用EE_ReadVariableXbits()函数读取变量。
回复

使用道具 举报

30

主题

435

回帖

525

积分

金牌会员

积分
525
发表于 3 天前 | 显示全部楼层
工作中实践了几年,针对Flash的应用要求抽象总结为以下几类
- 参数保存类:系统重要参数,需要安全无误地保存
- 日志记录类:需要快速写入,不能在代码插入位置有明显延迟
- 大块数据类:针对远程升级包地存储
- 类RAM类:快速读写,比如通信过程中使用某些索引值,因为通信数据包频繁,这种数据频繁被更改
回复

使用道具 举报

5

主题

203

回帖

218

积分

高级会员

积分
218
发表于 3 天前 | 显示全部楼层
以前用eeprom或者flash 模拟,现在产品直接使用小容量的铁电。成本也可以接受
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
121627
QQ
 楼主| 发表于 前天 09:48 | 显示全部楼层
回复

使用道具 举报

11

主题

748

回帖

781

积分

金牌会员

积分
781
发表于 前天 10:16 | 显示全部楼层
soga238 发表于 2026-3-17 21:22
以前用eeprom或者flash 模拟,现在产品直接使用小容量的铁电。成本也可以接受

+1
回复

使用道具 举报

0

主题

38

回帖

38

积分

新手上路

积分
38
发表于 前天 13:31 | 显示全部楼层
EEPROM 仿真软件包发布说明
目的
STM32Cube 使开发者能够实现设计上的成功。其中 全面的专业发展工具套件及嵌入式产品 软件组件,STM32Cube允许开发者进行区分 产品、优化设计周期并降低成本。STM32立方体 生态系统支持所有设计步骤,包括选择、配置, 开发、调试、编程和监控。STM32立方体 嵌入式软件提供现成可用的软件组件, 可以添加到项目中。它包含 STM32 外设驱动 API,具有 两层抽象、中间件、板驱动和示例。 有多个分销渠道,包括STM32CubeMX2 工具、ST官网和GitHub。所有嵌入式软件都附带 增强的在线文档,包含流程图和用户序列。

更多文档可在EEPROM获取 模拟软件包在线文档。

更新历史

2.0.0 / 2026年3月13日
主要变化
EEPROM仿真的首次正式发布。
目录
软件包
1.核心源代码与头部
2.EEPROM仿真算法(FLITF和NVM)
3.Flash接口(即用实现和模板)
4.CRC接口(即用实现和模板)
5.ECC 接口(现成实现和模板)
支持的设备和板子
  STM32C5系列。
已知的局限性
  使用 STM32CubeMX 工具进行配置和代码生成 即将上线。
开发工具链和 编译器
1.IAR 嵌入式工作台 ARM (EWARM) 工具链 V9.60.3 + ST-LINK
2.MDK-ARM Keil uVision V5.42
3.STM32CubeIDE for Visual Studio Code(GCC13编译器)
向后兼容性
没有。
依赖关系
没有。
回复

使用道具 举报

5

主题

234

回帖

249

积分

高级会员

积分
249
发表于 前天 14:00 | 显示全部楼层
用过好多好多年了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2026-3-20 03:59 , Processed in 0.300460 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表