This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

dm368evm jffs2

各位好:

           我用DM368EVM开发板,jffs2的文件系统,通过uboot烧录进去,第一次启动完全正常,没有任何错误,但当运行一段时间,再重启,会打印如下错误:

JFFS2 notice: (1001) check_node_data: wrong data CRC in data node at 0x00de3d54: read 0xa842ff4b, calculated 0x4dcc10f.

请问,这个是为什么?能修复吗?

  • 这个不是错误啊,属于正常现象~

    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操作将不满足页缓冲的数据强制写入文件系统。

  • 但是当我在程序里,用system()函数调用busybox的命令时,有时候就会出现I/O error,好想是原系统文件的部分数据被破坏掉了。而且程序里每一秒是调用了一次sync的

  • 调用什么命令出现这样的错误,发个log 看看