当系统挂在USERDATA 分区时,会出现下面的错误(后边的log信息)。如果分区不跨地址0x10000000,就不会有这样的错误。
Log如下:
[ 22.660522] yaffs: dev is 32505871 name is "mtdblock15"
[ 22.665771] yaffs: passed flags ""
[ 22.669128] yaffs: Attempting MTD mount on 31.15, "mtdblock15"
[ 23.330200] yaffs tragedy: Bad object type, -1 != 15, for object 268435201 at chunk 61568 during scan
[ 23.339630] Partially written block 964 detected
[ 23.344451] Partially written block 964 detected
[ 23.349273] Partially written block 964 detected
……
[ 43.323150] DB error at address 0x102b0800
[ 43.327270] 0x00000000: 01 00 00 00 02 00 00 00 7e 3a 34 42 64 68 4a 43
[ 43.333862] 0x00000010: 05 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 43.340484] 0x00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 43.347076] 0x00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 43.353668] 0x00000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 43.360290] 0x00000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 43.366882] 0x00000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 43.373443] 0x00000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 43.380065] 0x00000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 43.386657] 0x00000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 43.393249] 0x000000a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 43.399841] 0x000000b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 43.406463] 0x000000c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 43.413055] 0x000000d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 43.419647] 0x000000e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 43.426239] 0x000000f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 43.432830] 0x00000100: 00 00 00 00 00 00 00 00 00 00 c2 18 a0 00 00 00
[ 43.439422] 0x00000110: 00 00 00 00 00 00 00 00 51 44 20 10 10 44 48 08
[ 43.446044] 0x00000120: 0c 44 44 20 00 00 00 00 2d db 7e 6a 3a 35 db fa
[ 43.452636] 0x00000130: 2c 40 ce 19 98 34 9b ff ea b0 a7 2a fe fa a2 f1
[ 43.459228] 0x00000140: cb 6b 73 4b 79 a7 34 35 52 7f 5b fd 3e 16 1d f5
[ 43.465820] 0x00000150: cd 18 9a 6e ff 67 86 99 be 8f b3 31 c6 a9 3d dd
……
[ 48.095184] yaffs tragedy:attempt to put data chunk into a non-file
[ 48.101470] ==>> yaffs bug: fs/yaffs2/yaffs_guts.c 3419
[ 48.123992] yaffs tragedy:attempt to put data chunk into a non-file
[ 48.130218] ==>> yaffs bug: fs/yaffs2/yaffs_guts.c 3419
[ 48.141418] yaffs tragedy:attempt to put data chunk into a non-file
……
……
解决:由于 nand 驱动中,对高位地址的选取错误导致。修改即可。