OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4794|回复: 5

基于SPI(NOR) Flash的磨损平衡算法

[复制链接]

30

主题

104

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
456475
金钱
456475
注册时间
2014-8-23
在线时间
59 小时
发表于 2017-7-7 09:04:27 | 显示全部楼层 |阅读模式
本帖最后由 cl17726 于 2017-7-7 10:43 编辑

NOR也是有寿命的,毕竟不是无限,哪一天丢数据就爽了,我写了个简单的算法,可以做冗余,代价只有几个Block而已,RAM开销几十字节+Buffer,典型设计10Byte的Buffer都非常够用.

先看一眼.

img_595e2dab63cb7.png



比如我这个是16MBte的Flash,能用的是16MB - 4K - 少部分冗余(小于150K),非常节省.支持多次配置,多声明几个结构体就行.移植简单,硬件无关,只要做CRC计算的,Flash擦读写的,还有Malloc就可以了.

而且,操作跟一般Flash操作无区别,完全透明一层.初始化传入极少的参数就可以.(7个参数.)

img_595e2e0ad493e.png



磨损平衡几乎没额外时间开销(通过多次验证,均在数us时间内完成转换,测试芯片是STM32L476VG~).

磨损平衡,单文件实现~

如果需要学习,注释明白清楚~

img_595e2f02cceea.png


有BUG和可优化地方欢迎指针.


然后下载地址是~ 我的博客(更多详情) GitHub(下载)


PS:非要说,EEPROM也是有寿命的,但是EEPROM都比较小,管理起来也没那么费劲(同样也很少管理EEPROM),
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

51

主题

1455

帖子

3

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2613
金钱
2613
注册时间
2011-1-25
在线时间
176 小时
发表于 2017-7-7 09:11:48 | 显示全部楼层
回复 支持 反对

使用道具 举报

13

主题

314

帖子

0

精华

高级会员

Rank: 4

积分
713
金钱
713
注册时间
2012-7-20
在线时间
102 小时
发表于 2017-7-7 10:01:45 | 显示全部楼层
楼主有心了
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2018-2-22
在线时间
7 小时
发表于 2018-11-14 11:30:12 | 显示全部楼层
有心了,非常感谢,正好想看一看这方面的东西
回复 支持 反对

使用道具 举报

13

主题

633

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1331
金钱
1331
注册时间
2016-8-1
在线时间
229 小时
发表于 2018-11-14 11:31:08 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

2

主题

27

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
249
金钱
249
注册时间
2014-10-5
在线时间
37 小时
发表于 2019-1-7 10:36:03 | 显示全部楼层

谢谢分享
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-23 02:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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