dongchong229248 发表于 2013-2-25 17:40
因为是公司领导的要求希望文件读写更快,所以公司要求使用ubi 文件系统!如果有商量的空间我也希望省事儿啊 ...
你把uboot源码下的include/movi.h的20行从
#define CopyMovitoMem(a,b,c,d) (((uint(*)(uint, ushort, uint *, int))(0x1B68))(a,b,c,d))
改为:
#define CopyMovitoMem(a,b,c,d) (((uint(*)(uint, ushort, uint *, int))(0x40004008))(a,b,c,d))
然后试一下。
你说的问题的原因应该是u-boot在内存中使用的实际长度大于了预设的长度引起的。这个修改太麻烦了。
换个做法,不用uboot自带的ubi烧写方式了,改用ubi工具制作好的针对Nand的镜像。
大致方法如下:
下载ubit的制作工具,编译好之后。
先制作一个ubi的镜像,比如aaa.ubi。
创建一个配置文件,名为ubinize.cfg,内容如下:
[ubifs]
mode=ubi
image=ubifs.img
vol_id=0
vol_size=192MiB
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize
然后执行命令ubinize -o aaa.ubi -m 2048 -p 128KiB -s 512 -o 2048 ubinize.cfg,
然后就可以将ubi镜像转换为符合Nand格式的镜像。
烧写方法:用nand write命令直接将这个镜像完整的写到Nand的root分区,启动即可。
至于参数方面,请参考命令对应的帮助文件。
|