请教uClinux系统读写NORFlash中JFFS2文件系统出CRC错误的解决办法
时间:2009-10-14
来源:互联网
制作文件系统时放入的文件统统完好可任意使用(!),但是上电后,系统中向挂载的文件系统中写入文件(例如cp一个文件)则以一定概率报CRC错误。
Node CRC 5f472996 != calculated CRC 95c3a322 for node at 00dde8c0 诸如此类
也有Date CRC …… 的错误。最后一位地址没错上电后从00d……开始依次递减,整个flash空间的地址都有可能而不仅限于一段。
当然,报了错误的文件都无法正常使用。

当文件系统中有错误的文件后,重新挂载文件系统则会报
jffs2_scan_inode_node(): CRC failed on node at 0x005bd5dc: Read 0xffffffff, calculated 0xa9a35337 诸如此类
真诚的求助!。。。
可供参考的信息如下:
用的自制开发板,基本仿造Altera公司的成品板,FPGA用的EP2S90F1020I4,NIOSII的cpu, Flash是AM29LV128MH
在内核源码的mtd/maps/altera.c中重新划分了flash分区,共16M,前2M放image,后14M放jffs2文件系统
文件系统生成命令为: mkfs.jffs2 -r myjffs2/ -o nios2.jffs2 -e 0x00010000 --pad=0x00e00000
与芯片手册对应,加也加过-s,以及搭配过各种其他数据。也试过将image和jffs2的分区隔开(文件系统大小缩小,空出的flash空间不用),亦或是flash中只放文件系统。
烧写flash之前单独擦过整块flash(事实上用altera公司自带的烧写flash命令nios2-flash-programmer.exe自己会在烧写前进行擦除)。
uClinux-dist版本为20070130,打了uClinux-dist-20070130-nios2-02.diff.gz的补丁。make menuconfig 时将跟jffs2相关的配置都打开了。
使用Altera公司自带的memtest.c对flash进行逐块(共256块)的逐比特写1再读取看是否为1,写0再读取看是否为0,没有错误。
随着cpu主频降低,该错误现象的出错概率越来越小。20MHz时完全消除错误。
[ 本帖最后由 010151176 于 2009-10-14 12:09 编辑 ]
作者: 010151176 发布时间: 2009-10-14
没有人知道怎么解决么。。。
作者: 010151176 发布时间: 2009-10-15
是否清楚问题发生过写入时, 还是写入后?
使用哪一类的写命令? word write? write buffer? 执行写命令后,有没有等待写命令执行成功?
作者: yidou 发布时间: 2009-10-15
驱动不是我写的,uclinux的mtd实现的
不能断定是写入时还是写入后发生的
我想uclinux应该会等待写成功吧。。。
作者: 010151176 发布时间: 2009-10-20
作者: 010151176 发布时间: 2009-10-23
作者: gigabyte 发布时间: 2009-10-23
那你知道uclinux源码中哪个程序文件跟flash读写有关呢?
作者: 010151176 发布时间: 2009-10-27
我的邮箱[email protected]
作者: samozhishui 发布时间: 2011-01-03
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28