大家好:
        我现在遇到这样一个问题,大家帮忙分析一下,看是什么问题;1、将可以正常启动的Flash,使用编程器(SmartPro 5000U)做镜像,建立工程;
2、使用烧录器烧录Flash,micron的MT29F4G08ABADAWP,烧写操作都提示成功;但是烧写的Flash概率性的启动不了(10片,其中4片有问题),跟踪打印信息提示找不到文件系统;(在Kernel下分区如下:boot,parameter,kernel,FS,user1,user2);
3、其中,系统是Linux,做镜像的Flash,uboot通过串口写入,kernel在Uboot下通过指令从FTP下载烧写,文件系统在NFS(网络文件系统)解压缩包写入;
4、同时,烧录器应该是没有问题的,使用此烧录器烧写另外一个产品(wince系统)的另一个型号的Flash,则基本都可以正常启动。产生这种现象的原因可能是什么呢?看工程文件,发现配置操作下的注册表文件不正确(工程下配置操作下的分区列表 和 实际在kernel下的分区不一致),如下图所示:
 
因此做了以下实验:
1、将工程下分区表修改为kernel下分区表配置,烧录了10片,都可以正常启动;但是烧录很慢(原来1'36"左右,现在接近15分钟);
2、将修改好分区表的过程烧写进Flash后,使用此Flash重新做镜像,工程中的分区表仍然是错误的;所以有以下疑问:
1、此问题确实是由于分区表引起的吗?这些分区表从哪里得到的?怎么修改才行?
2、原来有问题的分区表烧写很快,看进度条,后面部分数据应该是跳过没有烧写;为什么修改分区表后,会导致烧写很慢?(修改分区表后,烧写时,进度条是均匀走动的)

解决方案 »

  1.   

    Bad clock 是怎么处理的,如果bad clock 没有处理,有可能位置刚好影响到
      

  2.   

    Check Sum值是不是一样,
      

  3.   

    没有找到问题的根本原因,没找到根本解决的方案。最后是添加了一个备份分区,一旦发现启动不了,就拷贝备份分区数据到正常启动分区,但是只是解决了kernel启动不了的问题,一旦UBL和uboot启动不了,仍然会存在此问题,不过从现象看,解决了很大一部分,大大的降低了概率;