使UBOOT支持烧录yaffs文件系统

之前一直使用临时的linux下载并烧录yaffs文件系统,最近闲来无事研究一下uboot直接烧录yaffs的功能。当然参考了网上很多人的经验,自己只是对应实践一下,并附上自己的一些理解。


下载Yaffs:

http://www.yaffs.net/using-git  点击use this URL:http://aleph1.co.uk/gitweb?p=yaffs2.git;a=snapshot;h=HEAD;
还可以使用linux命令git clone git://www.aleph1.co.uk/yaffs2 获取


首先必须清楚工作原理。
mkyaffsimage工具的ecc
uboot的ecc
linux的ecc
如果想让uboot烧录的yaffs文件系统可以被linux识别,那么ecc/oob一定要正确,这就要求我们必须要使mkyaffsimage的ecc算法以及oob布局与linux的完全一致,uboot的ecc和oob跟我们这个yaffs可以说完全无关,它的算法也跟另外二者差异很大,默认情况下,uboot会自动计算ecc然后填写oob区域,但是yaffs跟其他的image是有很大差别,它的image文件本身就包含了oob区域,所以说它会是512+16字节对齐的,所以uboot在烧写yaffs的时候,不需要计算ecc,而是直接将每页数据后面的16字节oob数据直接写进nand的oob区域即可。


1.修改uboot
uboot本身是不支持yaffs的烧录的,所以我们需要自己来追加命令实现之,需要修改一下几个文件:
common/cmd_nand.c
U_BOOT_CMD()宏中
"nand read[.yaffs]     - addr off|partition size\n"
"nand write[.yaffs]    - addr off|partition size - read/write `size' bytes starting\n"

在do_nand()中,实现yaffs烧录配置
else if(s != NULL && (!strcmp(s, ".yaffs") ))
{
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值