当前位置:  技术问答>linux和unix

yaffs2移植,用write.yaffs2命令唯独写不了77a000地址

    来源: 互联网  发布时间:2017-04-26

    本文导语:  移植环境:u-boot-2010.09 linux 3.0 FL2440开发板 yaffs2的内核分区在1a00000这里 tftp 30800000 rootfs.bin nand erase 30800000 a100000 800000 移植yaffs2文件系统时在u-boot下用write.yaffs2 命令写不了 write.yaffs2 30800000 a100000 77a000(77a000...

移植环境:u-boot-2010.09 linux 3.0 FL2440开发板

yaffs2的内核分区在1a00000这里

tftp 30800000 rootfs.bin
nand erase 30800000 a100000 800000

移植yaffs2文件系统时在u-boot下用write.yaffs2 命令写不了
write.yaffs2 30800000 a100000 77a000(77a000为文件的实际大小,nandflash是256M 工具mkyaffs2image-256M)这个地址.(注:没有出错提示 只是有NAND write: device 0 offset 0x1a00000, size 0x77a000) 接下来就停在那里了

我试了别的地址,是可以的,但是会出现 ttempt to write error length data!/n 的错误.
我的 nand_write_skip_bad 函数修改如下

#if defined(CONFIG_MTD_NAND_YAFFS2)
    if(nand->rw_oob==1)
    {
        size_t oobsize = nand->oobsize;
        size_t datasize = nand->writesize;
        int datapages = 0;

        if (((*length)%(nand->oobsize+nand->writesize)) != 0)
        {
            printf ("Attempt to write error length data!/n");
            return -EINVAL;
        }
        datapages = *length/(datasize+oobsize);
        *length = datapages*datasize;
        left_to_write = *length;
    }
#endif

这是部分的代码

试了两种工具,一种是网友提供的mkyaffs2image-128M
写的结果是Load address: 0x30800000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ######
done
Bytes transferred = 7710912 (75a8c0 hex)
nand erase a100000 800000
nand write.yaffs2 30800000 1a00000 75a8c0
NAND write: device 0 offset 0x1a00000, size 0x75b000
Attempt to write error length data!/n 7712768 bytes written: ERROR

另一种是FL2440商家提供的mkyaffs2image-256M
写的结果是:

Load address: 0x30800000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ######
Bytes transferred = 78939744 (77a000 hex)
nand erase a100000 800000
nand write.yaffs2 30800000 1a00000 77a000
NAND write: device 0 offset 0x1a00000, size 0x77a000
(注:就停在这里了,没有出错信息)

希望有经验的网友们能提个醒,指点下迷津,再此谢了!

|
1、Attempt to write error length data!/
这个是因为你传输的文件大小是Bytes transferred = 7710912 (75a8c0 hex)
而你烧写的大小是NAND write: device 0 offset 0x1a00000, size 0x75b000
并不是page+oob的整数倍,所以报错
2、将1的报错修正后,write.yaffs2 30800000 a100000 77a000这句如果还报错,就换个位置烧写试试,如果其他位置没报错,那确认下是不是烧写的大小超过flash大小了,或者是坏块没处理好

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 加载yaffs2文件系统失败
  • 是否有支持yaffs2文件烧写的Redboot
  • 给内核打yaffs2的问题
  • 请教yaffs2的问题。
  • 怎样测试yaffs2文件系统的稳定性
  • LINUX 2.6.20支持yaffs2文件系统的问题
  • Yaffs2 image 验证
  • yaffs2 文件系统求助
  • yaffs2和MLC 4G nand flash驱动问题
  • yaffs2 文件系统的使用问题
  • yaffs2文件系统启动问题
  • yaffs2 文件系统挂载使用出错
  • 加入yaffs2,编译内核显示error: unknown field `prepare_write' specified in initializer
  • 如何让把在linux中将nand flash的yaffs2文件系统转换为vfat格式的? 大侠帮忙啊,小弟拜谢!!
  • yaffs2 文件系统出错 无法删除文件
  • 挂载yaffs2错误:Kernel panic - not syncing: No init found. Try passing init
  • s3c2440-linux内核挂载启动不了yaffs2文件系统,请问怎么搞?两天快崩溃了。


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,