硬汉嵌入式论坛

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

[SD/SDIO] 突然想到一个问题,SD卡的数据写入,有没有必要读出来做个校验

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2020-12-18 11:11:13 | 显示全部楼层 |阅读模式


实际项目中,好像从来没有关心过这个问题。感觉以后应用可以关注下这方面的问题。




回复

使用道具 举报

36

主题

2039

回帖

2147

积分

至尊会员

积分
2147
发表于 2020-12-18 11:25:57 | 显示全部楼层
这个问题最简单的案例,比如电脑端文件复制粘贴是否会做校验。
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

6

主题

636

回帖

654

积分

金牌会员

积分
654
QQ
发表于 2020-12-18 15:52:07 | 显示全部楼层
感觉没有必要
回复

使用道具 举报

3

主题

1222

回帖

1231

积分

至尊会员

积分
1231
发表于 2020-12-18 16:32:42 | 显示全部楼层
数据看你用来做什么了,关键数据,一定要回读确认的。
回复

使用道具 举报

61

主题

62

回帖

245

积分

高级会员

积分
245
发表于 2020-12-18 17:21:49 | 显示全部楼层
基于二进制文件自己定义一个文件格式,读、写、改加个MD5的机制。windows .txt文件有时候都一堆不可打印字符的乱码
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2020-12-18 20:41:26 | 显示全部楼层
byccc 发表于 2020-12-18 11:25
这个问题最简单的案例,比如电脑端文件复制粘贴是否会做校验。

电脑上复制粘贴,好像一般都不做。不过现在很多网站的文件倒是提供了MD5,方便用户下载后校验
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2020-12-18 20:41:46 | 显示全部楼层
morning_enr6U 发表于 2020-12-18 16:32
数据看你用来做什么了,关键数据,一定要回读确认的。

是的,确认下靠谱。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2020-12-18 20:43:55 | 显示全部楼层

遇到了一些文件完整性检测问题,现在怕有时候文件系统写入的数据和文件原始的数据有几个字节的错误,而不知道。

有时候平时用户都正常,偶尔来这么一次挺闹心的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2020-12-18 20:44:37 | 显示全部楼层
vzhaodan 发表于 2020-12-18 17:21
基于二进制文件自己定义一个文件格式,读、写、改加个MD5的机制。windows .txt文件有时候都一堆不可打印字 ...

对,现在就是考虑加个MD5做文件完整性检测
回复

使用道具 举报

2

主题

180

回帖

186

积分

初级会员

积分
186
发表于 2020-12-19 08:56:07 | 显示全部楼层
每次回读是必须的 不然来一下很难受
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2020-12-19 10:54:39 | 显示全部楼层
已经整上MD5完整性校验。
回复

使用道具 举报

0

主题

26

回帖

26

积分

新手上路

积分
26
发表于 2020-12-21 14:42:57 | 显示全部楼层
SDIO的传输上本身有CRC校验。

不过RAM中数据本身被打坏,以及传输到SD卡中,但SD卡还末真正从RAM中写入到FLASH,
或是FLASH本身坏了,这个是校验不出来的。

需要更高可靠,可以过段时间再读出来校验,同时使用日志型的文件系统,而非FAT。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2020-12-22 10:03:48 | 显示全部楼层
aozima 发表于 2020-12-21 14:42
SDIO的传输上本身有CRC校验。

不过RAM中数据本身被打坏,以及传输到SD卡中,但SD卡还末真正从RAM中写入 ...

主要是怕那种数据数据写入错了,而文件系统还提示写入成功了。所以打算从传输前做好MD5,全部写入后,都读出来做个MD5校验。

FAT也有日志型的,像RL-FlashFS。同时他也支持嵌入式文件系统(非FAT)
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2023-5-17 14:17:26 | 显示全部楼层
如果写入比较频繁或者比较大的数据,写入后再读出来做校验的话,可能会让系统卡顿。有什么优化方案吗 ?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2023-5-17 17:53:31 | 显示全部楼层
Wismy 发表于 2023-5-17 14:17
如果写入比较频繁或者比较大的数据,写入后再读出来做校验的话,可能会让系统卡顿。有什么优化方案吗 ?

我们现在是写入完成,关闭这个文件后做一次MD5,这样的话,就是偶尔读一下。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 19:12 , Processed in 0.211970 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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