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.

DM365 Flash分区做U盘使用时总是出错



各位好:

         使用的DM365,将Flash的最后一个分区划分出来固定大小作为U盘使用,在使用过程中很容易出错,提示“无法复制XXX:数据错误(循环冗余检查)。”的错误信息(见附件“错误提示信息窗口.bmp”);串口打印“end_request: I/O error, dev mtdblock4, sector 623872”,"Buffer I/O error on device mtdblock4, logical block 623872","Buffer I/O error on device mtdblock4, logical block 623872"等信息(见附件“串口打印错误信息.bmp”);一旦出现错误,再拷贝数据,仍有相同错误提示出现;

在Uboot菜单下,使用“nand scrub和nand erase”命令擦除后就不再有此问题,但是反复拷贝数据后就又会很容易出现此类问题;

Linux的Kernel关于U盘的配置信息见附件截图;

为什么总是出现这样的错误信息呢?是哪里没有配置好么?求解,求分析。

错误配置信息截图.rar
  •  楼主的u-boot启动配置参数是什么样的呢

  • Uboot参数配置:

    setenv bootargs 'mem=70M console=ttyS0,115200n8 root=/dev/nfs rw nfsroot=192.168.1.106:/home/realtimedsp/workdir/filesys ip=192.168.1.3:192.168.1.106:192.168.1.1:255.255.255.0::eth0:off eth=00:40:01:2B:64:60 video=davincifb:vid0=OFF:vid1=OFF:osd0=480x272x16,4050K dm365_imp.oper_mode=0 davinci_capture.device_type=1 davinci_enc_mngr.ch0_mode=pal davinci_enc_mngr.ch0_output=LCD2'

    这个问题有可能和Uboot参数配置有关么?

  • 如果是从nand上启动,比如root=/dev/mtdblock3,那可能要增加一个参数rootfstype=yaffs2

    但楼主是从nfs启动的,可以试一下,启动后mount这个分区,直接在板卡上对这个区进行读写,会不会也有这样的问题

  •         我验证过,也有同样的现象。不过我昨天多次试验发现,貌似不是使用过程中容易产生坏块,而更像是坏块没有成功屏蔽,导致使用的时候出错;
            我用两片Flash,其中A片只有一个坏块在前面,B片有十多个坏块分布在不同的地方;当向A片U盘分区拷贝删除数据时都没有问题,但是向B片的U盘分区拷贝删除数据时,经常在同一个地方出错(根据打印信息看,其中有时候有些打印信息是相同的块);
           
            我在Uboot下使用nand scrub和nand erase命令擦除正片Flash,好像没有屏蔽;怎样才能够成功屏蔽掉这些坏块呢?用什么方法或者什么工具呢?