硬汉嵌入式论坛

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

[FatFs] Nand+fatfs 保存文件发生随机错误位, 概率高

[复制链接]

14

主题

61

回帖

103

积分

初级会员

积分
103
发表于 2017-11-13 18:50:44 | 显示全部楼层 |阅读模式
平台是 STM32F429+MT29F4G08ABADA. RTOS使用的是FreeRTOS
Nand驱动增加了对Nand读写操作的互斥保护.
现象如下所述
图1 :&quotayStatus2
1.png
图2 &quotayStatus"
2.png

PayStatus2 中的2应为",
ascii表示

2:00110010:00100010
第四位错误.

图3 2q276974
3.png
图4 21277074
4.png


q:01110001
1:00110001
第六位错误


如此错误还有很多.发生这种问题应该如何修改呢

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107034
QQ
发表于 2017-11-14 01:26:00 | 显示全部楼层
你的NAND做坏块管理,擦写均衡和ECC没,另外可以给你的板子换一片新的NAND看下,可能现在用的已经不好用了。
回复

使用道具 举报

14

主题

61

回帖

103

积分

初级会员

积分
103
 楼主| 发表于 2017-11-14 10:22:34 | 显示全部楼层
发现这个问题时用的是原子的驱动, 主要是因为他的带ECC, 昨天晚上换成了armfly的驱动, 跑了一晚上貌似没发现问题! 但有两个问题, 一是没有ECC, 二是写文件巨慢, 41K文件需要7、8秒!
回复

使用道具 举报

14

主题

61

回帖

103

积分

初级会员

积分
103
 楼主| 发表于 2017-11-14 10:23:04 | 显示全部楼层

回 eric2013 的帖子

eric2013:你的NAND做坏块管理,擦写均衡和ECC没,另外可以给你的板子换一片新的NAND看下,可能现在用的已经不好用了。 (2017-11-14 01:26) 
发现这个问题时用的是原子的驱动, 主要是因为他的带ECC, 昨天晚上换成了armfly的驱动, 跑了一晚上貌似没发现问题! 但有两个问题, 一是没有ECC, 二是写文件巨慢, 41K文件需要7、8秒!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107034
QQ
发表于 2017-11-14 12:27:38 | 显示全部楼层

回 rgw5267 的帖子

rgw5267:发现这个问题时用的是原子的驱动, 主要是因为他的带ECC, 昨天晚上换成了armfly的驱动, 跑了一晚上貌似没发现问题! 但有两个问题, 一是没有ECC, 二是写文件巨慢, 41K文件需要7、8秒! (2017-11-14 10:23) 
换FlashFS就好了,参考此贴,我们自己做的那个NAND算法不够完善。

http://www.armbbs.cn/forum.php?m ... 613&fpage=4
回复

使用道具 举报

14

主题

61

回帖

103

积分

初级会员

积分
103
 楼主| 发表于 2017-11-14 19:51:06 | 显示全部楼层

回 eric2013 的帖子

eric2013:换FlashFS就好了,参考此贴,我们自己做的那个NAND算法不够完善。

http://www.armbbs.cn/forum.php?m ... 613&fpage=4  (2017-11-14 12:27) 
我感觉FlashFS性能应该会更好, 可惜我用GCC, 哪天急眼了我就把工程移植到MDK下
回复

使用道具 举报

14

主题

61

回帖

103

积分

初级会员

积分
103
 楼主| 发表于 2017-11-14 23:23:39 | 显示全部楼层
2.5.3 位反转
NAND Flash的位反转特性(Bit Fliping)是由于硬件自身的原理造成的,会导致偶尔的情况出现位反转的现象,可能是读写的干扰,也可能是周围环境的因素造成原有的某位从0变为1或者从1变为0。

这种情况有两种类型:

一种是物理单元的数据是正确的,只在读取出来的数据某位发生了变化,和物理单元保存的数据不一致。
一种是物理单元的数据已经是错误的,即使将读取出的数据通过某种方式进行了修正,物理单元本身的数据还是错误的,只有通过重新擦除写入才有可能修正。
这两种方式的错误在一定程度上都可以通过算法来进行修正,常用的算法就是ECC。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 07:15 , Processed in 0.171957 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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