NAND FLASH丢数据问题!!!

[复制链接]
10427|9
 楼主| jshong 发表于 2009-12-21 22:19 | 显示全部楼层 |阅读模式
遇到NAND FLASH丢失数据的问题,一时没有什么好的解决办法,向各位寻求帮助,请明白的兄弟指点一下。

1、FLASH型号:K9F1G08UOB(128Bytes);
2、MCU带有NAND FLASH控制器;
3、发生概率:200分之一左右,也就是两百台机器会出现一台FLASH丢数据的情况。
4、在工厂内部老化、测试均没有FLASH丢数据的情况,丢数据的情况都是发生在用户手中且都是产品刚到用户手中不久发生的。
5、将丢数据的FLASH通过编程器将其内的数据读出,发现都是第0个BLOCK内的数据丢失,第0个BLOCK全变为0XFF;
6、代码中没有擦除FLASH的动作。
7、初步怀疑是上电或掉电IO乱动作引起的,但还没有办法验证。
johnwjl 发表于 2009-12-21 22:37 | 显示全部楼层
1# jshong

顶一下。
古道热肠 发表于 2009-12-21 23:19 | 显示全部楼层
试试写保护引脚.
xymxym 发表于 2009-12-22 09:54 | 显示全部楼层
1.打开或者增加单片机的低电压复位
2.不要把数字写在BLOCK0,嘿嘿!
大道至简 发表于 2009-12-22 11:01 | 显示全部楼层
关注一下
ejack 发表于 2009-12-22 12:56 | 显示全部楼层
4L的方法很直接……也应当很有效……

2、MCU带有NAND FLASH控制器;

MCU是否有从Flash Boot的功能?
 楼主| jshong 发表于 2009-12-22 13:04 | 显示全部楼层
FLASH BLOCK0是BOOT区!
 楼主| jshong 发表于 2009-12-22 21:28 | 显示全部楼层
各位路过的大虾请给出一点建议呀!!!
wangkj 发表于 2009-12-22 21:33 | 显示全部楼层
找block0保证没问题的片子。
tulipyyf 发表于 2014-9-25 16:34 | 显示全部楼层
楼主解决了吗?我也遇到这个问题,
天天运行的2440核心板,今天突然开机显示“Wrong Linux kernel",不知道为什么?求解
2440核心板上使用的是 K9F2G08  我自己怀疑是不是程序运行的时候,在某种情况下误写入FLASH 的内核区域,导致开机检测内核错误导致的  K9F2G08在驱动上没有写保护。
K9F2G08在驱动上没有写保护。
希望大家一块看看是什么原因。  
2440 理论上运行时不会操作到K9F2G08的内核区域的。

本人在根文件系统上执行的应用程序,在QT中使用SQLITE数据库,是不是操作数据库时会偶然写入K9F2G08时遭到写入错误地址,写到内核区域呢?

BOOTLOADER是好的 ,仍然能运行BOOTLOADER,重新写一下内核又好了,不知道什么原因  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

46

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部