各位好:
我用DM368EVM开发板,jffs2的文件系统,通过uboot烧录进去,第一次启动完全正常,没有任何错误,但当运行一段时间,再重启,会打印如下错误:
JFFS2 notice: (1001) check_node_data: wrong data CRC in data node at 0x00de3d54: read 0xa842ff4b, calculated 0x4dcc10f.
请问,这个是为什么?能修复吗?
kooking:
这个不是错误啊,属于正常现象~
JFFS2 on NAND flash uses a page buffer. It is flushed to the flash when it is full, or when you do fsync, sync or umount.Well obviously a node was partly written to flash and the end of the node remained in the cache and was never written. This means you lost some data。It is a warning only. The remainder of the file system will probably still work. Only the last operation s) before reboot are lost.If I umount / before rebooting, I don't have one more error message at the next reboot.This is correct procedure if you don't want to lose any data.如果不想出现这个警告,可以采用fsync、sync或者umount操作将不满足页缓冲的数据强制写入文件系统。
merlin holland:
回复 kooking:
但是当我在程序里,用system()函数调用busybox的命令时,有时候就会出现I/O error,好想是原系统文件的部分数据被破坏掉了。而且程序里每一秒是调用了一次sync的
kooking:
回复 merlin holland:
调用什么命令出现这样的错误,发个log 看看