硬汉嵌入式论坛

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

[有问必答] 记录存储,会丢失数据或数据错乱

[复制链接]

36

主题

249

回帖

357

积分

高级会员

积分
357
发表于 2022-5-29 10:37:52 | 显示全部楼层 |阅读模式
image.png   请教坛友们点问题,如用st的IO检测信号变化,生成记录并保存。信号变化慢的话,数据读写都没问题,但是一旦信号变化快了(具体多快没法描述,比人手正常操作开关快十倍左右吧,差不多几十ms切换速度),记录存储的就有错乱,读出来的就错乱,,有没有什么好的结构或者处理方法?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
发表于 2022-5-29 17:12:28 | 显示全部楼层
这个有必要测试你的缓冲数据记录时间长短了,我估计你这flash记录存储数据时间跟不上io变换速度。
回复

使用道具 举报

36

主题

249

回帖

357

积分

高级会员

积分
357
 楼主| 发表于 2022-5-29 19:17:29 | 显示全部楼层
eric2013 发表于 2022-5-29 17:12
这个有必要测试你的缓冲数据记录时间长短了,我估计你这flash记录存储数据时间跟不上io变换速度。

嗯,,,还得再考虑考虑,,,感觉是不是这种存储结构有问题,或者缓存不够大。几十ms的变化的话,也不算快
回复

使用道具 举报

210

主题

1042

回帖

1682

积分

至尊会员

More we do, more we can do.

积分
1682
发表于 2022-5-29 22:43:38 | 显示全部楼层
使用的哪种存储器,NOR Flash?那我以它为例分析,写数据用时比较短,擦就比较慢了,我目前这颗最多达300ms。
回复

使用道具 举报

36

主题

249

回帖

357

积分

高级会员

积分
357
 楼主| 发表于 2022-5-30 14:57:01 | 显示全部楼层
emwin 发表于 2022-5-29 22:43
使用的哪种存储器,NOR Flash?那我以它为例分析,写数据用时比较短,擦就比较慢了,我目前这颗最多达300ms ...

嗯,谢谢回复!,,那比如说擦的慢,怎么处理可以最大程度减少丢失呢?
回复

使用道具 举报

334

主题

2031

回帖

3038

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3038
发表于 2022-5-30 15:18:35 | 显示全部楼层
本帖最后由 caicaptain2 于 2022-5-30 15:23 编辑
zhengwending 发表于 2022-5-30 14:57
嗯,谢谢回复!,,那比如说擦的慢,怎么处理可以最大程度减少丢失呢?

先缓存到RAM区,根据时间和空间的条件触发,比如满足一个扇区的大小,统一写Flash。不要几个字节就写一次。

一般的spi flash,擦除慢,因为至少是4KB;但是写入还行,一次是256字节。 Snipaste_2022-05-30_15-20-48.jpg

如果要求高,不能丢失任何字节,那么就得考虑其他存储器了。 比如铁电FRAM之类的。
回复

使用道具 举报

36

主题

249

回帖

357

积分

高级会员

积分
357
 楼主| 发表于 2022-6-2 21:11:32 | 显示全部楼层
caicaptain2 发表于 2022-5-30 15:18
先缓存到RAM区,根据时间和空间的条件触发,比如满足一个扇区的大小,统一写Flash。不要几个字节就写一次 ...

嗯,,谢谢回复,比如满足一个扇区了,写入,写入过程中又产生了记录,存到另一个缓冲器?双缓存?
回复

使用道具 举报

36

主题

249

回帖

357

积分

高级会员

积分
357
 楼主| 发表于 2022-6-2 21:21:01 | 显示全部楼层
image.png
回复

使用道具 举报

6

主题

86

回帖

104

积分

初级会员

积分
104
发表于 2022-6-10 14:03:15 | 显示全部楼层
你写数据 不加FIFO,当然丢了,最好办法写和读都写FIFO,1ms纪录都能写
回复

使用道具 举报

38

主题

194

回帖

318

积分

高级会员

积分
318
发表于 2022-6-27 16:21:28 | 显示全部楼层
1.想办法实现异步读写。
2.读写时候做校验,比如你是500个字节保存一次,那就写入的时候做CRC,再读出来,如果校验不通过再重写。

3.(完全不现实的突发奇想)我大学学的通信工程,信道传输的时候有个叫纠错码的东西,不知道这个是不是能用软件实现,执行效率高不高。
回复

使用道具 举报

19

主题

233

回帖

290

积分

高级会员

积分
290
发表于 2022-6-28 14:34:56 | 显示全部楼层
w25q这样的,写速度很快,只是改的话很慢。不用文件系统的话,可以事先擦除掉多个块,到时候写的话直接写就行了,把擦除这个耗时长的操作提到前面
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 22:13 , Processed in 0.225519 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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