HI3521D 烧录128M nand flash文件系统过程-一定要注意flash的容量

1.nand flash信息:

SPI Nand(cs 0) ID: 0xef 0xaa 0x21 Name:"W25N01GV"
Block:128KB Page:2KB Chip:128MB*1 OOB:64B ECC:4bit/512 

2.准备工作

编译好的uboot,kernel,rootfs
我使用的是海思的u-boot-hi3521d.bin,uImage_hi3521d,rootfs_hi3521d_2k_4bit.yaffs2

3.使用HiTool-Hi3521D工具,使用配置如下:

在这里插入图片描述

xml文件:

<?xml version="1.0" encoding="GB2312" ?>
<Partition_Info>
<Part Sel="1" PartitionName="fastboot" FlashType="nand" FileSystem="none" Start="0" Length="1M" SelectFile="E:\work\vmShare\image_uclibc\u-boot-hi3521d.bin"/>
<Part Sel="1" PartitionName="kernel" FlashType="nand" FileSystem="none" Start="1M" Length="4M" SelectFile="E:\work\vmShare\image_uclibc\uImage_hi3521d"/>
<Part Sel="1" PartitionName="rootfs" FlashType="nand" FileSystem="yaffs" Start="5M" Length="96M" SelectFile="E:\work\vmShare\image_uclibc\rootfs_hi3521d_2k_4bit.yaffs2"/>
</Partition_Info>

烧录成功,然后打开串口终端,上电发现只启动了uboot,打印printenv,发现bootargs不对,设置bootargs:

setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=yaffs2 rw mtdparts=hinand:1M(boot),4M(kernel),96M(rootfs),27M(test)'
        setenv bootcmd 'nand read 0x82000000 0x100000 0x400000;bootm 0x82000000'
        sa

系统正常启动。

用linux命令查看:df -h

Filesystem                Size      Used Available Use% Mounted on
/dev/root                96.0M     13.2M     82.8M  14% /
tmpfs                    28.6M      4.0K     28.6M   0% /dev

第一次尝试的错误,参考

4)烧写文件系统
        mw.b 82000000 ff 2000000
        tftp 82000000 rootfs_hi3521d_2k_4bit.yaffs2
        nand erase 500000 2000000
        nand write.yaffs 82000000 500000  96d200    #注意:96d200为rootfs文件实际大小(16进制)

烧录成功,但是文件系统启动不起来,必须修改 96d200 这个数字。改为实际大小,烧写的时候就出错,
Attempt to write error length data

Uboot代码:
if(((*length)%(nand->oobsize+nand->writesize)) != 0 )
{
    printf("Attempt to write error length data\n")
    return -EINVAL;
}
对于128M的NAND Flash来说,nand->oobsize = 64,nand->writesize = 2048,
所以写入NAND Flash的数据应该是2112(=2048 + 64)字节的整数倍。

改写实际大小后,能正常烧录系统了。

第二个错误:
文件系统大小设置,按照参考文档,64M的flash 设置为32M,所以当设置为32M的时候,df -h 查看只有32M。所以现在改为了98M,查看就是98M。
————————————————
版权声明:本文为CSDN博主「ACoderLife」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:《HI3521D 烧录128M nand flash文件系统》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值