1.移植JFFS2的文件系统时出现下图所示的错误,从里可以看到flash中程序内核没有找到jffs2文件系统的文件标志0x1985,同时从地址0x00就开始出现,这里可以说明你的程序编译存在以下几个问题:
1).文件系统不是JFFS2的,如何确认的你的文件系统是否为JFFS2的文件系统呢,将文件系统镜像以HEX形式打开,看看里面有没有0x85,0x19这样的数据,尤其是在文件的起始位置.如果没有说明文件系统编译有问题。如果后面的0x***** instead中的数为0x8519,说明在编译镜像时大小端配置错误,请在mkfs.jffs2命令上加入-l或者-b
2).文件系统被覆盖或者被别的重新刷写啦,例如下图所示的,我的文件系统被我的内核跟文件系统地址出现了冲突,所以需要将内核区域的地址空间改大,一般情况下这种情况很少出现。
2.如果操作系统在启动时出现以下的错误:
JFFS2 error: (1) jffs2_build_inode_pass1: child dir "2.6.21" (ino #432) of dir ino #431 appears to be a hard link
JFFS2 error: (1) jffs2_build_inode_pass1: child dir "kernel" (ino #433) of dir ino #432 appears to be a hard link
JFFS2 error: (1) jffs2_build_inode_pass1: child dir "kernel" (ino #434) of dir ino #433 appears to be a hard link
说明Flash的文件系统区没有被擦除,请手动擦除文件系统的地址空间。
3.如果出现下面的错误,说明你的Flash空间不够,或者Flash配置不正确。我出现下面的错误的原因是我使用的是Winbond的W25Q128BV,我的内核却不能正确识别它,然后将其识别为W25Q32BV,这样就导致我的Flash空间严重不足
jffs2_read_dnode() asked for 4096 bytes at 114688 from 3241-byte node
jffs2_read_dnode() asked for 4096 bytes at 118784 from 3241-byte node