WINCE上的NANDFLASH文件损坏问题

Linux_lee 2012-03-09 01:37:06
设备上有个分区专门存储应用程序的一些配置文件,这些文件有时候会损坏,更严重的甚至文件系统也出现问题,不过这个概率不高,但是测试时还是会出现,尤其是在突然掉电的情况。这里想征求一下大家的想法,看有什么好的方法降低这种出错的几率,希望是从软件的角度提出改善的方法。谢谢!
...全文
1146 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
gooogleman 2013-10-17
  • 打赏
  • 举报
回复
这个问题最好别用nandflash ,用iNand会好点。
wsw54535 2013-10-11
  • 打赏
  • 举报
回复
引用 15 楼 wsw54535 的回复:


补充说明:由于该方案需要对系统底层进行大改,几乎相当于一个全新方案。故一般不对外承接项目。以上思路供各位朋友借鉴。
谢谢!
wsw54535 2013-08-19
  • 打赏
  • 举报
回复
wince文件损坏问题描述:
基于WINCE 6.0 5.0的车载终端(wince 5.0 6.0 arm9 arm11),如汽车行驶记录仪、GPS行驶记录仪、GPS导航仪、集成度高的车载影音娱乐设备等,相信当终端数量比较大的时候(批量1000台以上),都将遇到一个问题:当突然断电或磁盘整理时,偶尔会发生文件损坏现象(已排除硬件问题)。
有几种情况
1.丢失单个文件或单个文件损坏
2.整个磁盘NandFlash全部被标记成了坏块
3.有些文件的FDT被损坏,导致wince崩溃
不管是TFAT文件系统、不管是MLC还是SLC,大量出货这个问题跑不掉。

三重措施为产品保驾护航
1. 文件损坏自动恢复——无惧任意情况突然掉电
鸿泉文件系统将NandFlash中文件根据是否常用,隔离存储。
文件写入双备份,系统进行读写操作时,会校验两个文件是否一致,如果发现文件损坏将自动恢复。 【参考RAID技术】
同时解决NandFlash莫名其妙丢失文件的问题
2. NandFlash手动还原——一键恢复出厂状态设置
当文件损坏不可逆转,系统支持手动恢复至出厂状态。
3. wince系统注册表虚拟化
解决注册表整理带来的问题。
jonsenwu 2013-08-19
  • 打赏
  • 举报
回复
之前有碰到过注册表文件损坏的情况,注册表文件损坏后就进入不了系统,后来解决方法是格式化注册表分区,你的备份文件损坏可以使用多份存储方式。
okvictor_20082003 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]
硬件方法:加电源检测芯片(如MAX814)检测主供电,在电源检测芯片之后加一个二极管和一个大电容,当电源检测芯片发出电源故障中断后及时保存数据

软件方法:在NandFlash驱动中打开纠错机制(每Page中最多可以纠正“1位”的错误)
多留备份,文件加入CheckSum或者CRC校验机制
[/Quote]
lineuser 2012-03-29
  • 打赏
  • 举报
回复
支持分两个区, 分主区 和 备份区
zhengmeifu 2012-03-09
  • 打赏
  • 举报
回复
可以检测一下是否有在写flash,若有则禁止断电。我就是在电源端有个单片机在检测,控制电源不能随便断开的。
Linux_lee 2012-03-09
  • 打赏
  • 举报
回复
问了下FAE,FLASH驱动不支持TFAT,晕!
catcw 2012-03-09
  • 打赏
  • 举报
回复
硬件方法:加电源检测芯片(如MAX814)检测主供电,在电源检测芯片之后加一个二极管和一个大电容,当电源检测芯片发出电源故障中断后及时保存数据

软件方法:在NandFlash驱动中打开纠错机制(每Page中最多可以纠正“1位”的错误)
多留备份,文件加入CheckSum或者CRC校验机制
JNU_kinke 2012-03-09
  • 打赏
  • 举报
回复
加入TFAT也是必要的。
JNU_kinke 2012-03-09
  • 打赏
  • 举报
回复
启用flash的CRC检验,很大程度上可以避免lz的问题
Linux_lee 2012-03-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 paul_chao 的回复:]

1. 加入 TFAT
2. 一次寫3個檔案當做備份, 到時再來投票.

Paul, Chao @ Techware
[/Quote]
先谢谢回复:)。
1:TFAT就是在pb中加入对应的选项吧?我先试试
2:我们现在的做法是出错手动还原,但到用户手上的话,这样似乎不太人性化,有没有可以自动检测错误并还原的方法呢?
paul_chao 2012-03-09
  • 打赏
  • 举报
回复
1. 加入 TFAT
2. 一次寫3個檔案當做備份, 到時再來投票.

Paul, Chao @ Techware
月之海 2012-03-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 91program 的回复:]
没啥好办法,控制断电:在写文件的时候。

否则,一定会出现 LZ 所说的情况。
[/Quote]
同意1楼的说法。同时选用 SLC的nandflash,应该会比MLC的nandflash文件损坏概率小些。
91program 2012-03-09
  • 打赏
  • 举报
回复
没啥好办法,控制断电:在写文件的时候。

否则,一定会出现 LZ 所说的情况。
woshi_ziyu 2012-03-09
  • 打赏
  • 举报
回复
没什么好的办法
David_Hu 2012-03-09
  • 打赏
  • 举报
回复
采用备份的方法,一个A 一个B ,每当检测到A坏了的情况,删除A ,用B 还原

19,520

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧